작성일 : 18-03-16 21:32
[ubuntu 16.04 LTS] dpkg apt-get
 글쓴이 : theko
조회 : 251  
[Ubuntu] 패키지 툴 및 패키지 관리
패키지들은 패키지 툴을 이용해 설치하게 되는데 우분투에서 사용하는 패키지 툴에는 apt, dpkg, aptitude가 있다.
먼저 apt는 온라인 리포지토리에서 패키지를 다운로드받고 설치하는데 사용 된다. 이 때 보통 로컬환경(오프라인)상에서도 사용할 수 있지만 정상적으로 사용하기 위해서는 온라인 환경에서 사용하는 것이 좋다.
dpkg는 cd-rom이나 다른 디스크장치에 있는 .deb 파일을 제어하는 경우에 일반적으로 사용되며, dpkg 명령어는 시스템 소프트웨어에 대한 설정이나 설치 및 정보를 얻는데 사용되는 옵션을 가진다.
이제 각 패키지 툴에서 사용하는 명령어들을 하나하나 살펴보자.
1. apt
실질적으로 apt는 dpkg와 함께 동작한다. 하지만 필요한 소프트웨어의 검색, 다운로드, 설치, 업그레이드, 검사 등 대부분의 패키지 관리작업을 apt 단독으로 가능하다.
$ sudo apt-get update
:  /etc/apt/sources.list를 참조로 사용할 수 있는 패키지 DB를 업데이트 한다.
$ apt-cache search 키워드
: 패키지 데이터베이스 중 주어진 키워드를 대소문자 구분 없이 검색하여 키워드를 포함하는 패키지명과 해당 설명을 출력한다.
$ sudo apt-get install 패키지명
: 패키지명을 데이터베이스에서 찾아보고 해당패키지를 다운로드 받아 설치한다. 이 때 패키지의 신뢰성을 gpg키를 사용 검증한다.
$ sudo apt-get -d install 패키지명
: 패키지를 설치는 하지 않고 /var/cache/apt/archives/ 디렉토리에 다운로드 받는다.
$ apt-cache show 패키지명
: 주어진 패키지명에 해당하는 소프트웨어에 대한 정보를 본다.
$ sudo apt-get upgrade
: 설치 되어있는 모든 프로그램 패키지에 대한 최신 업데이트를 검사한 후, 다운로드 받아 설치한다.
$ sudo apt-get dist-upgrade
: 전체 시스템을 새로운 버젼으로 업그레이드 한다. 이때 패키지 삭제도 실시된다.
단, 일반적으로 사용되는 업그레이드 방법은 아님!
$ sudo apt-get autoclean
: 불안전하게 다운로드된 패키지나 오래된 패키지의 삭제.
$ sudo apt-get clean
: 디스크 공간 확보를 위해 /var/cache/apt/archives/ 에 캐쉬된 모든 패키지 삭제
$ sudo apt-get 옵션 remove 패키지명
: 해당 패키지와 그 설정파일을 삭제한다. (옵션에 --purge 를 넣으면 설정파일을 제외하고 삭제. 옵션 없을시 전부 삭제)
$ sudo apt-get -f install
: 깨어진 패키지를 위해 정상여부를 확인
$ apt-config -V
: 설치된 APT툴의 버전을 출력
$ sudo apt-key list
: APT가 알고 있는 gpg키 목록의 출력
$ apt-cache stats
: 설치된 모든 패키지에 대한 상태정보를 출력
$ apt-cache depends
: 패키지가 설치되어 있는지 여부에 관계 없이 그 의존성을 출력한다.
$ apt-cache pkgnames
: 시스템에 설치되어 있는 모든 패키지 목록을 보여준다.
2.dpkg
이 툴의 경우 APT보다는 낮은 수준에서 작업이 수행된다. APT는 우분투의 소프트웨어를 관리하기 위해 내부적으로 이 dpkg를 이용한다. 보통 APT명령 만으로 충분하지만... 시스템에 있는 특정 파일이 어떤 패키지에 포함되는지 등의 확인 작업을 수행하기위해 dpkg 명령이 필요한 것이다.
$ dpkg -C  .deb파일
: 주어진 .deb파일이 설치한 파일의 목록을 본다.(해당 파일이 있는 곳에서 실행하거나 파일명앞에 절대 경로를 붙여준다.)
$ dpkg -I  .deb파일
: 주어진 .deb파일에 대한 정보를 본다.
$ dpkg -P  패키지명
: 패키지에 대한 정보를 보여준다.
$ dpkg -S  파일명
: 파일명 또는 경로가 포함된 패키지들을 검색한다.
$ dpkg -l
: 설치된 패키지 목록을 보여준다.
$ dpkg -L  패키지명
: 이 패키지로부터 설치된 모든 파일목록을 볼수 있다.
$ dpkg -s  패키지명
: 주어진 패키지의 상태를 본다
$ sudo dpkg -i  .deb파일
: 주어진 파일을 설치한다.
$ sudo dpkg -r  패키지명
: 시스템에서 해당 패키지를 삭제한다. (단, 삭제시 파일들은 남겨둔다.)
$ sudo dpkg -P  패키지명
: 해당 패키지와 해당 패키지의 설정파일을 모두 삭제한다.
$ sudo dpkg -x  .deb파일  디랙토리
: 파일에 포함되어있는 파일들을 지정된 디렉토리에 풀어놓는다. 단, 주의 할점은 이명령시 해당 디렉토리를 초기화 시켜버리므로 주의하여야 한다!
3. aptitude
앞에서 배운 dpkg와 APT의 경우 제대로 사용하기 위해서는 좀더 많은 지식을 요구한다. 그에 비하여 aptitude의 경우 주요 패키지 작업 과정을 자동화하여 가능한 쉽게 작업할 수 있도록 해주므로 보다 쉽게 할 수 있다. 고로 보다 많이 사용하게 될 것이... 옳지만... 아직은 인터넷 상에서 APT나 dpkg를 사용한 패키지 설치 정보가 많다는 점에서... 장래에 많이 사용하게 될 듯하다^^
$ sudo aptitude
: 실행시 curses인터페이스로 시작된다. Ctrl+t를 사용하면 메뉴에 접근할 수 있으며, q키로프로그램을 종료 시킬 수 있다.
$ aptitude help
: 도움말 보기
$ aptitude search 키워드
: 해당 키워드와 일치하는 패키지를 보여준다.
$ sudo aptitude update
: APT리포지트로들로부터 사용 가능한 패키지를 업데이트 한다.
$ sudo aptitude upgrade
: 모든 패키지를 최신으로 업그레이드 한다.
$ aptitude show 패키지명
: 해당 패키지의 설치 여부에 관계 없이 주어진 패키지에 대한 정보를 보여준다.
$ sudo aptitude download 패키지명
: 해당 패키지를 설치하지는 않고 다운로드만 받는다
$ sudo aptitude clean
: /var/cache/apt/archives디렉토리에 다운로드되어 있는 모든 .deb파일을 삭제한다.
$ sudo aptitude autoclean
: /var/cache/apt/archives디렉토리에 있는 오래된 .deb파일을 전부 삭제한다.
$ sudo aptitude install 패키지명
: 해당 패키지를 시스템에 설치한다.
$ sudo aptitude remove 패키지명
: 시스템으로부터 주어진 패키지를 삭제 한다.
$ sudo aptitude dist-upgrade
: 모든 패키지를 가장 최신 버전으로 업그레이드 시킨다. 이때, 필요한 경우 패키지를 삭제하거나 추가 한다.
참고로, 위 내용 다 넘기고 요즘 우분투의 경우 '프로그램 > 추가/제거' 메뉴나 '시스템 > 관리 > 스넵틱스관리자' 에서 쉽게 패키지를 선택하고 설치하거나 삭제 할 수 있다. 아니면 .deb파일을 받아 마우스로 클릭만 해주면 자동으로 패키지 관리자가 실행되어 설치 하게 되어있다.
하지만, 위 내용을 알고 있어야 보다 깊은 단계로 나아갈 수 있고 또 보다 세부적인 관리, 추가, 삭제가 가능하기에 알아 두는게 좋다고 본다.
이 글은 http://tpholic.com/xe/5102649 에서 가져왔음을 밝힙니다.

 
 
 

miwit.com sir.co.kr DNS Powered by DNSEver.com DNS Powered by DNSEver.com