윈도우에서는 내가 원하는 프로그램을 설치하려면 압축 파일을 받아 .msi나 .exe 파일을 실행하면 된다. 이는 마이크로소프트 에서 제공하기 때문이다. 하지만 리눅스에서는 다양한 배포판과 버전이 존재하기 때문에 원하는 프로그램(소프트웨어)를 실행하기 위해서는 해당 소스토코드를 해당 환경에서 컴파일 해야 한다. 그래서 해당 배포판 환경에 맞추어 미리 빌드한 실행파일을 압축한 것을 사용한다. 그게 바로 패키지이다. 데비안 리눅스에서는 .deb 형태의 파일로 존재하고, 레드헷 리눅스에서는 .rpm 형태의 파일로 존재한다.
패키지 관리자 – apt (Advanced Package Tool)
apt는 패키지 리포지토리를 관리하는 패키지 관리자이다. 우리가 apt 를 사용하더라도 backend 에서는 apt-get 으로 동작한다.
apt [COMMAND]
- apt update : 원격 리포지토리에 있는 패키지 리스트를 로컬로 가져와 저장소 패키지 목록을 업데이트
- apt list : 리포지토리 패키지 목록 출력 (로컬 캐쉬)
- apt list –installed : 설치된 패키지 목록 출력
- apt list –upgradeable : 업그레이드(업데이트) 가능한 목록 출력
- apt search
: 리포지토리 검색 (로컬 캐쉬) - apt show
: 패키지 정보 표시 - apt install
: 리포지토리 내의 패키지 설치 - apt remove
: 설치된 패키지 삭제 (바이너리 파일만 삭제하고 설정파일은 유지) - apt purge : 설치된 패키지 삭제 + 설정파일 삭제
- apt autoremove : 더 이상 사용되지 않는 패키지 삭제 (업그레이드 이후 dependency 또한 업그레이드되어 더 이상 참조되지 않는 패키지)
- apt upgrade : 패키지 버전 업그레이드(업데이트)
- apt full-upgrade : 패키지 업그레이드 과정에서 삭제가 필요하다면 그 또한 수행하며 업그레이드(업데이트) - 잘 사용되지 않음
apt 관련 모든 설정들은 /etc/apt에 있다.
- /etc/apt/sources.list : 패키지를 가져오기 위한 목록
- /etc/apt/sources.list.d/ : 추가적인 소스 리스트
- /etc/apt/apt.conf : APT 설정 파일 (메뉴얼)
- /etc/apt/apt.conf.d/ : 추가적인 APT 설정 파일 (각종 데몬들이 추가/관리)
- /var/cache/apt/archives/ : 패키지 파일을 가져온 저장소
- /var/lib/apt/lists/ : 상태 저장소
/etc/apt/apt.conf.d/10periodic 파일에는 주기적으로 업데이트 되는 것들에 대한 관리를 할 수 있다.
패키지 리포지토리 정보들을 확인하려면 /etc/apt/sources.list를 확인하면 된다.
참고로 우분투 소프트웨어 리포지토리 유형은 다음과 같다.
- main : 공식(Official) 지원, 오픈소스 소프트웨어
- universe : 커뮤니티 지원 (Community maintained), 오픈소스 소프트웨어
- restricted : 공식(Official) 지원, 비-오픈소스 소프트웨어 (주로 디바이스 드라이버 등)
- multiverse : 미지원(Unsupported), 비-오픈소스 소프트웨어 상용 소프트웨어 (영상/사진, 음악/DVD 플레이어 등)
수동으로 패키지를 추가하면 /etc/apt/sources.list.d 경로에 저장된다.
어떤 프로세스나 데몬들이 동작하면서 동적으로 생성되는 파일들은 /var 밑에 생성된다.
패키지 유틸리티 – dpkg (Debian package manager)
chrome 같이 인터넷에서 수동으로 다운받은 패키지(확장자 .deb, .dpkg)를 설치하기 위해서 dpkg를 사용한다.
- dpkg -i
: 설치 (install) - dpkg -r
: 삭제 (remove) - dpkg -P
: 설정파일포함 삭제 (purge) - dpkg -l : 설치된 패키지 목록 출력 (list)
- dpkg -s
: 설치할 패키지 검색 (리포지토리로부터 search) - dpkg -S
: 설치된 패키지의 설치 위치 - dpkg -I
: 설치할 패키지의 정보 보기 (information) - dpkg -c
: 설치할 파일의 내용물 미리 살펴보기 (contents) - dpkg -x
: 패키지 파일의 압축 풀기 (extract) - dpkg -X
: 패키지 파일의 압축 내용을 보여주며 풀기 (extract)
운영체제 시스템 업그레이드
운영체제 시스템을 업그레이드 하기 위해서는 /etc/update-manager/release-upgrades 파일의 가장 빝에 Prompts=lts로 변경해주어야 한다. 그후에 아래 순서대로 진행하면 된다.
$ cat /etc/update-manager/release-upgrades
$ sudo apt update
$ sudo apt upgrade
$ sudo do-release-upgrade