리눅스 파일 캐릭터셋 포스팅(http://www.erider.co.kr/125)에서 잠시 언급했던 패키지 관리자중 apt 사용법에 대해 알아 보려고 합니다.
페도라(redhat 계열, CentOS) : yum, rpm
아치 리눅스 : pacman
MAC OS : homebrew, MacPorts
apt는 Advanced Packaging Tool의 약자입니다.
이름만 들어도 패키지 매니저 툴이라는걸 알 수 있죠
apt의 패키지 목록은 인터넷에 있는 리포지토리(repository, 저장소)에 저장되어 있는데 여기서 파일을 가져오거나 검색할 수 있습니다.
패키지 리스트의 최신 정보를 내 pc로 가져오는 명령이 있습니다.
sudo apt-get update
입니다.
대부분 패키지 파일을 설치하기 전에 그런 패키지가 있는지 검색을 해보는데
이때 사용하는 명령이 apt-cache 입니다.
Mysql 과 관련된 패키지를 검색해보고 싶으면
apt-cache search mysql
을 입력하면 됩니다.
원하는 패키지명을 찾았다면 다면 이제 설치를 해보도록 합시다.
‘mysql’ 이라는 패키지명을 찾았고 이를 설치하려면
sudo apt-get install mysql
을 입력하면 된다.
패키지의 설치는 슈퍼유저만 가능하기에 sudo 명령으로 슈퍼유저 권한으로 실행한다.
혹시 패키지 설치 중 종속성과 관련된 사항은 패키지 관리자가 알아서 설치해준다. 그래서 패키지 매니저를 사용하는 이유이기도 하다.
한번에 여러 패키지를 설치하고 싶을 때는 한칸 띄우고 계속 적으면 됩니다.
sudo apt-get install mysql php apache
이런 식으로 적으면 됩니다.
설치한 패키지를 삭제하고 싶을 때는 어떻게 할까요?
sudo apt-get remove mysql
이라고 하면 된다.
그런데 삭제와 관련 명령이 하나 더 있습니다.
sudo apt-get purge mysql
라는 것입니다.
remove와 purge의 차이는 설정 파일을 같이 제거할 것인가 안 할 것인가의 차이다.
Remove는 설정파일을 남겨두고 purge는 모든 것을 깨끗이 삭제한다.
필요없는 파일을 알아서 삭제해주는 명령도 있습니다.
sudo apt-get autoclean
을 하면 더 이상 필요없는 파일들을 삭제한다.
가끔 종속성이 바뀌어 더 이상 필요없는 패키지를 제거하는 명령도 있습니다.
sudo apt-get autoremove
명령이다.
이미 설치된 패키지들이 버전업이 되었을 때 이를 한번에 버전을 올리는 명령도 있습니다.
sudo apt-get upgrade
입니다.
그렇다면 나는 특정 패키지만 버전을 올리겠다 할 경우는 어떻게 할까요?
sudo apt-get install mysql
입니다.
처음 설치하는 명령과 동일하죠?
버전업이 되었으면 재설치하고 이미 최신 버전이면 업그레이드 할 필요가 없다고 하고 종료됩니다.
그리고 컴파일 설치 시 특정 파일이 필요한데 이 파일이 어떤 패키지에 들어 있는지 몰라 패키지를 설치할 수 없을 때 파일을 찾을 수 있는 있는 apt-file 명령도 있습니다.
Apt-file 을 사용하기 위해서 별도로 설치를 해야 한다.
sudo apt-get install apt-file
로 패키지를 설치한다.
sudo apt-file update
저장소를 업데이트 한다.
apt-file -l search evince
로 파일이 어느 패키지에 있는지 검색하여 설치하면 된다. (sudo 가 안 붙은 이유는 일반 검색은 슈퍼유저 권한이 필요없기 때문이다)
이중 내가 설치하지 않은 목록을 보고 싶으면
apt-file list evince
를 입력하면 된다.
리눅스, 유닉스에서는 명령어 사용법에 대해 모를 때는 ‘man 명령어’를 입력하면 아주 자세한 설명과 함께 사용법을 알 수 있습니다. 단, 영어로 너무 자세히 나와서 읽기 싫어지는 것이 문제죠.
이럴때는 ‘명령어 -h’ 또는 ‘명령어 -help’ 또는 ‘명령어 –help’ 정도 입력해보면 간단한 사용법과 옵션 설명을 볼 수 있습니다.
패키지 관리 그렇게 어렵지 않죠?
윈도우에서 클릭하는 것에 비하면 조금 어렵게 느껴지지만 몇 번 해보면 어렵지 않습니다.