Ubuntu APT를 이용하여 S/W 관리하기 기본 카테고리

Ubuntu Linux는 기본적으로 많이 쓰이는 2가지의 소프트웨어 관리기를 제공합니다. 하나는 APT(Advanced Package Tool)과 dpkg(Debian Package)가 바로 그것입니다. 물론 aptitude라는 관리기도 있습니다. 저의 경우 실상 Apache, WAS, DB등을 이용한 웹서비스용으로 리눅스를 사용하거나 Desktop대체용으로 사용하기 때문에 Console만 제공하는 환경에서 서버사용을 위한 몇몇 소프트웨어 관리명령어외엔 일반 데스크탑에서는 거의 그놈의 GUI화면을 이용하지만 확실히 소프트웨어 관리는 콘솔상에서 작업하는 것이 빠르고 더 직관적인것 같습니다.

하지만 실제 서버를 설치하거나 특별히 어떤 패키지를 설치할 때를 제외하고는 거의 특별한 작업이 없기때문에 어떤 패키지를 설치할때마다 검색하기 일수인데요. 간단하게 우분투의 APT를 이용한 소프트웨어 관리에 대하여 정리해 볼까 합니다.

APT Commands (주요 APT명령어)

sudo apt-get update
/etc/apt/source.list의 저장소를 참조하여 패키지 데이터베이스를 업데이트합니다. 즉, 저장소안의 업데이트할 수 있는 소프트웨어의 목록이나, 저장소자체를 추가했을때 해당저장소의 소프트웨어 목록을 업데이트 합니다. 따라서 우분투에서 제공하는 기본저장소외에 저장소를 추가하였을 경우 반드시 이 명령어를 입력해서 업데이트해 주어야 합니다. 가령, 새로운 저장소를 추가하려면 sudo vi /etc/apt/source.list를 명령한 후 하단에 새로운 저장소를 추가합니다. 그리고 source.list를 저장한 후  sudo apt-get update 명령어를 입력하여 저장소목록을 업데이트합니다. 일반적으로 우분투 서버 시스템에서 시스템의 모든 패키지를 업데이트하기 전에 수행하는 명령어이기도 합니다.(데스크탑버전의 경우 대부분 자동으로 소프트웨어를 업데이트하기 때문에 특별히 저장소를 추가하지 않은 이상 거의 사용할 일이 없습니다.)

sudo apt-get upgrade
설치되어 있는 모든 패키지를 조사하여 업데이트가 있는 경우 자동으로 업데이트 합니다.

sudo apt-get dist-upgrade
전체시스템을 새로운 버전으로 업그레이드 합니다. 일반적으로 의존성 문제 등을 고려하여 이 방법으로 새버전으로 업그레이드 하지 않습니다.

sudo apt-get install <package>
<package>를 다운로드하여 설치합니다. 자동으로 의존성문제 등을 고려하여 추가가 요구되는 패키지도 같이 다운로드하여 설치합니다.

sudo apt-get -d install <package>
<package>를 다운로드하여 /var/cache/apt/archives/에 저장합니다. 설치는 하지 않습니다.

sudo apt-get -f install
만일 다운로드한 패키지가 깨진 경우를 확인하기 위하여 검사하는 명령입니다.

sudo apt-get remove <package>
<package>를 삭제합니다. 의존성 문제를 자동으로 해결하면서 삭제하므로 매우 유용합니다. sudo apt-get --purge remove <package>와 같이 --purge옵션을 주면 설정파일은 삭제하지 않으므로 추후 해당 패키지를 다시 설치하면 이전 설정이 그대로 적용됩니다.

sudo apt-get autoclean
불완전하게 다운로드된 패키지 등을 자동으로 삭제합니다.

sudo apt-get clean
/var/cache/apt/archives에 저장된 패키지를 삭제합니다. sudo apt-get -d install <package>하여 다시 다운로드하여 저장할 수 있습니다.

sudo apt-cache pkgnames
시스템에 설치된 모든 패키지를 출력합니다.

sudo apt-cache show <package>
<packae>에 대한 정보를 출력합니다.

sudo apt-cache search <keyword>
/etc/apt/source.list에 저장된 저장소의 모든 패키지들에서 <keyword>를 검색합니다. 특정 패키지의 이름이 생각나지 않거나 일부만 아는 경우 유용합니다. 대소문자 구분이 없습니다.

sudo apt-cache depends <package>
<package>에 대한 의존성을 검사하여 추가적으로 다운로드해야 하는 패키지를 보여줍니다. 하지만 sudo apt-get install <package>하면 알아서 자동으로 다운로드하여 설치해 줍니다.

sudo apt-key list
APT에 저장된 gpg키 목록을 출력합니다. 일부 패키지의 경우 우분투 공식 저장소가 아닌 외부저장소에서 다운로드 받아야 하는 경우가 있는데 이때 해당 패키지의 서명키를 추가한 후 정상적인지 확인할때 쓰입니다.

sudo apt-key add <keyfile>
디지털서명키를 추가합니다.

지금까지 간단하게 APT 주요 설치/삭제 명령어를 알아보았습니다. 사실 이것만으로 대부분의 작업이 가능합니다. 저 역시 웹서비스용으로 우분투를 많이 이용하기 때문에 패키지를 삭제하고 추가하거나 하는 작업은 거의 없습니다. 이것만으로 충분합니다.(단, 우분투 데스크탑버전에서는 많은 패키지를 추가삭제합니다만, 사실 거의 GUI환경에서 우분투시넵틱관리자를 이용하기 때문에 콘솔에서는 거의 작업하지 않습니다.)

 일반적으로 서버를 관리한다고 볼때 시스템엔지니어의 입장에서 우분투는 sudo apt-get update; sudo apt-get upgrade와 같이 한줄로 작성하여 한방에 시스템의 패키지를 최신버전으로 업데이트관리할 수 있습니다. (한줄로 쓰려면 ;기호로 구분합니다.) 하지만 이 경우 자동으로 모든 패키지를 업데이트해버리기 때문에 특정 패키지만 업데이트하거나, VPS(가상서버 호스팅)와 같은 특수한 우분투커널을 운영하는 시스템에서 전체 패키지를 업데이트할 경우 심각한 시스템 커널패닉에 빠져버릴 위험이 있기 때문에 단독 시스템에 설치된 우분투 서버가 아니고서는 함부로 사용에 주의해야 합니다.

그렇다면 저와 같이 우분투 VPS를 이용하는 사람의 경우 최소한 시스템커널과는 다소 거리가 있는 apache라던가, mysql, php등과 관련된 패키지만이라도 보안상의 문제점을 최소화하기 위하여 최신버전으로 업데이트하고자 한다면 어떻게 해야 할까요?  

이런 경우 그냥 sudo apt-get install <pakage>하시면 됩니다. apache패키지라면 sudo install apt-get install apache2 하시면 됩니다. 이 경우 시스템에 이미 apache패키지가 이미 설치되어 있는 경우 이미설치되었다고 출력해 주며 새로운 업데이트가 있는 경우만 업데이트를 설치해 줍니다. 따라서 특정 패키지만 엡데이트하려면 그냥 패키지 설치명령과 동일하게 명령하시면 되겠습니다.

Leave Comments

댓글 쓰기 권한이 없습니다. 회원 가입후에 사용 가능합니다