본문으로 바로가기

post by WHITEHATS

웹기반 정보보안 엔지니어 과정 160218 12번째강의 - 2




11.소프트웨어 관리


11.소프트웨어 관리

의존성 : 하나의 프로그램이 동작하기 위해서 다른 프로그램의 도움이 필요한 경우
윈도우는 지원해주나 리눅스는 관리자가 직접 설정해줘야된당

•용도
     - 운영체제를 설치할 때 초기에 설치되는 기본프로그램 외 관리자나 사용자가 추가로필요한 소프트웨어를 설치할 필요가 있음
     - 사용자의 설치를 도와주는 프로그램 및 설치 방법

•종류
     - RPM(Redhat Package Manager)
     - yum
     - source code compile



11.소프트웨어 관리 명령어 (rpm)

•용도
     - 패키지 배포 및 관리 프로그램
     - 사용자가 미리 확보한 패키지 파일을 이용하여 원하는 프로그램을 설치하는 방식

•장점
     - 패키지의 설치 및 제거가 편리함
     - 패키지의 업그레이드가 편리함
     - source code compile 방법 보다 설치 속도가 빠름
     - 설치할 패키지를 검증 할 수 있음
     - 질의를 통해 패키지의 자세한 정보 확인이 가능 함

•단점
     - 사용자가 직접 필요한 패키지를 확보해야 함
          -- rpm 서버(pbone.net), 설치 CD등을 통해 확보 함
     - 사용자가 직접 의존성을 해결해야 함

•사용법(질의를 통한 패키지 정보 확인)
     - [root@localhost~]# rpm –q [옵션]
     




11.자주 사용되는 rpm 확인 명령

•시스템에 설치된 rpm 패키지의 목록 확인(전체)
     -[root@localhost~]# rpm –qa

•특정 패키지의 설치 여부 확인
     -[root@localhost ~]# rpm –qa | grep [패키지 이름]
     -[root@localhost ~]# rpm –q [패키지 이름]

•특정 파일을 포함하고 있는 패키지 확인
     -[root@localhost ~]# rpm –qf [파일 이름]

•설치된 패키지에 포함되어 있는 파일 목록 출력(전체)
     -[root@localhost ~]# rpm –ql [패키지 이름]

•설치된 패키지의 파일 상태 체크
     -[root@localhost ~]# rpm –qs [패키지 이름]

•사용법(패키지 설치)
     - [root@localhost~]# rpm [옵션] [rpm 패키지 이름]
     




11.자주 사용되는 rpm 설치 명령

•일반적인 패키지 설치
     -[root@localhost ~]# rpm –ivh [패키지 파일]

•설치되어 있는 패키지 교체
     -[root@localhost ~]# rpm –ivh [패키지 파일] --replacepkgs

•의존성 에러가 발생한 경우 무시하고 설치
     -[root@localhost ~]# rpm –ivh [패키지 파일] --nodeps -> 이거 쓰지 말아랑! 실행 안될수도 있엉 

•의존성 에러가 발생한 경우 의존성이 있는 패키지를 먼저 설치한 후 자동으로 설치
     -사용자가 직접 의존성의 순서에 따라서 설치해야 함
     -[root@localhost ~]# rpm –ivh [패키지 파일] --aid

•기존의 설치되어 있는 패키지를 업그레이드
     -지정된 패키지가 설치되지 않은 경우에는 “-ivh” 옵션으로 동작 함
     -[root@localhost ~]# rpm –Uvh [패키지 파일]

•사용법(패키지 삭제)
     - [root@localhost ~]# rpm –e [옵션] [rpm 패키지 이름]
     


     실습 시작!!~!!

     

     시디에 disk1.iso 파일 넣어져 있는지 확인부터 한다!
     우측 위에 있는 시디모양 오른쪽 클릭해서 connect 눌러준다!!
     그리고 마운트를 시켜준다
     
     

     
     


     

     이게 disk1.iso 파일의 내용이다!~

     

     ls누르면 쭈루루루룩 나온다 파일들
     
     

     뒤에 어떤패키지가 들어와야 될지 모르니까~
     
     

     a는 전체 패키지 정보 보여달라~

     

     grep을 이용해서 필터링도 가능!!

     

     패키지 이름 알고 있으면 q뒤에 파일이름 쓰면됨..

     

rpm패키지 상세보기

근데 rpm 패키지가 설치되어있어야 상세정보 확인가능!!


     

     openssh 설치하는데 필요한 설치파일 목록들을 확인할수 있다. (의존성 때문!!!!!)

     vsftpd 패키지를 설치해보겠다.
     

     일단 패키지 목록에 설치되 있는지 찾아볼라고 했는데 없당...

     

     어? vsft있다!!

     

     이게 설치 하는 명령어 이다. -ivh
     만약 제대로 설치 되어있지 않으면 재설치를 해야한다... 
     

     근데 이미 있다고 하네.. 그럼 덮어쓰기 설치를 해야겠다.

     그래서 뒤에 --replacepkgs를 넣고 엔터 하면 재설치가 이루어진다.!!

     

     이번엔 gcc c++를 설치해볼려고 한다. 찾아봤는데 검색된다!!

     

     그래서 설치를 해보려고 하는데 오류가 뜬다. ㅠㅠ
     의존성 문제라고 설명되어있다. ㅠㅠ
     그 이전에 다른 패키지를 설치를 해야 한다는 뜻임....
     뭘 설치해야되는지는 아래 친절하게 설명해주심..

     

     맨아래 있다 !!
     
     

     이것도 의존성에 걸림 ㅠㅠ

     

     검색 나온다!!

     

     얘도 의존성 오류 ㅠㅠ 저거도 찾아보자

     

     ? 어 ? 찾았는데 안나와 ㅠㅠ

     

     라이브러리 파일은 lib 빼고 검색해보자 !! 오 나온당~

     

     설치 ㄱㄱ
     
     

     다시 cpp설치해보니까 잘된당~~ 오 다행임!
     이제 gcc 설치해보자!!

     

    설치 안댐 ㅠㅠ

     

     찾아봅시당
     

     저거 ppl 파일 찾아보자

     

     맨아래 있다 ppl 설치하장~
     
     

     ppl 설치됬당 이제 cloog 파일 설치하자

     

     cloog 패키지 설치됨ㅇㅇ
     
     

     이제 gcc-4.47~ 설치해보려고 하는데 또 의존성 걸린다 libstdc를 찾아보자
     
     

     찾았다 맨 아래에 있넹 ㅇㅇ
     

     libstdc++-devel 패키지 깔자 ~~
     
     

     하 다깔았다 ㅠㅠ gcc-c++
     힘들구나 rpm 설치하는거... 그래서 쉽게설치하기 위해 yum명령어를 이용해 패키지를 사용한다!!



11.소프트웨어 관리 명령어 (yum)

•용도
     - 패키지 배포 및 관리 프로그램
     - 네트워크에 존재하는 패키지 서버(repository)로부터 필요한 패키지를 다운하여 설치까지 완료 함

•장점
     - rpm의 의존성 문제를 해결 함
     - 패키지를 별도로 확보할 필요가 없음
     - 자동화 되어 있는 설치 및 삭제를 지원
     - update된 패키지를 검사하여 최신 패키지를 설치 함

•단점
     - 네트워크 연결이 반드시 필요 함
     - repository에서 서비스를 중단하면 서비스를 받을 수 없음
     - 불필요한 패키지가 설치될 가능성이 있음 (그래서 실무에서는 yum 보다 rpm방식을 더 선호한다)



11.yum의 repository관리

•환경설정 파일 경로
     - /etc/yum.repos.d/CentOS-Base.rep

•관리 항목
     - mirrolist
     - #baseurl

•mirror list 정보 확인
     


•잘 알려진 국내 mirror server
     - baseurl=http://centos.mirror.cdnetworks.com/$releasever/os/$basearch/
     - baseurl=http://data.nicehosting.co.kr/os/CentOS/$releasever/os/$basearch/
     - baseurl=http://ftp.daum.net/centos/$releasever/os/$basearch/
     - baseurl=http://mirror.khlug.org/centos/$releasever/os/$basearch/

중간에 tabtab 하면 파일 내용들이 나옴

이런식으로 쭉나옴 !!




11.yum의 repository 관리

•분류
     


•세부 항목
     

     baseurl 이 가장중요하다!!!


     

enabled 0이면 사용하지 않는다.

gpgcheck는 원본 그대로의 패키지다 변형이 있었다 없었다 체크하는게 gpgcheck다. 1이면 체크한다. 0이면 체크하지 않는다.

gpgkey 값으로 기존의 패키기랑 비교한다!!

미러서버가 제대로 동작하지 않을때 값을 변형해서 설정해줄 수 있다.



11.소프트웨어 관리 명령어 (yum)

•사용법
     - [root@localhost~]# yum [옵션] [mode(command)] [패키지 이름] -> yum --help도움말 제공

     

     

이렇게 해서 패키지를 검색할 수 있당 !!

이제 설치를 해보자@@!


만약 이름뒤에 *붙여주면 저 이름의 패키지를 모두 설치해준다.


뒤에 공백주고 다른 패키지 이름도 쓰면 다 받아준당!!


이미 설치되어 있다고도 알려준다!

그럼 패키지 지우고 재설치 해보자~


지울 건지 물어본다~

y로 지우자

그리고 다시 설치하자!

설치할껀지 또 물어본다 y 엔터!


gpg키 값을 선택할꺼냐 뭐 이런식으로 물어보는데 y엔터 

그럼 성공적으로 완료!!


아까 설치했던 vsftpd 삭제해보겠다~

중간에 -y 옵션을 넣어주면 중간에 나오는 확인을 모두 yes 처리하겠다는 옵션이다.

엔터치면 삭제 완료 !!!!!!!!!!




11.소프트웨어 관리 (source code compile)

•용도
     - rpm으로 제공되지 않는 프로그램의 설치해야 할 때 사용 함
     - 일반적으로 소스코드 내부에 주석으로 설치방법이 명시되어 있거나, readme 또는install 이라는 파일을 통해 설치 방법을 제공 함
     - 컴파일러가 반드시 필요 함
          -- C 컴파일러(gcc 패키지), C++ 컴파일러(gcc=c++ 패키지)

•장점
     - 설치가 진행될 때 전체 과정을 제어할 수 있음
     - 소프트웨어를 설치할 때 세부 환경설정 및 설치 경로 지정이 가능 함

•단점
     - 컴파일 환경을 미리 준비해야 함
     - 정확한 방법을 숙지하지 않으면 설치 시 에러가 많이 발생 함
     - 설치 및 관리 시간이 오래 걸림
     - 검증되지 않은 불법 소프트웨어가 설치 될 가능성이 있음



11.source code compile 설치순서

•준비 단계
     - 컴파일러 설치 : gcc, gcc-c++, glibc(또는 glibc*)

•설치를 원하는 소프트웨어의 source code 확보
     -직접 다운로드 또는 wget을 이용한 다운로드
     -wget 사용법
          --[root@localhost ~]# wget [소프트웨어의 다운로드 웹 주소]

•설치
     -컴파일 환경설정
         --[root@localhost ~]# ./configure
               ---소프트웨어 설치를 위한 시스템의 환경정보 설정 단계
               ---도움말 확인 : configure --help
     -컴파일
          --[root@localhost ~]# make
               ---정상적으로 컴파일을 완료한 후에 설치파일을 실행 해야 함
               ---오류가 발생했을 때 실패한 컴파일 삭제 : make clean
     -컴파일 된 소프트웨어 설치
          --[root@localhost ~]# make install

     apache 웹서버를 설치해보겠다!
     

     다운로드 메뉴 클릭!

     

     http 아래 있는 링크 클릭


     


     


     deps는 의존성을 가지고 있는 패키지의 소스를 다 가지고 있당

     7.2mb 해당링크 우클릭에 바로가기 복사 클릭!


     

     

     

     

     

     

     엔터!

     

     install 파일하고 readme 파일 제공한다 ~!!
     메뉴얼 문서같은거임..  라이센스도 존재한다!
     컨파일 환경설정인 configure도 존재 한다!!!
     ./configure 를 치고 엔터!!
     주르르륵 나온다
     
     

     make는 실행파일 만들고 있는 상태를 보여준다 !!!
     실행파일 구성중..!! 
     오동작 하면 make clean을 쳐주면 다시 지워지고
     ./configure를 치고 make 다시 쳐준다!!!!!!

     

     
     


그다음 root로 로그인!! (vmware)

     
     자신 아이피 쳐주면 웹서버로 들어가진다 !!!!


하얀모자 whitehat



}