사용자 도구

사이트 도구


linux:apt

Linux apt (Advanced Packaging Tool) 및 Debian 계열 패키지 관리

설치

sudo apt install <packagename>
 
sudo apt install <packagename>=<version>
# apt-mark hold 로 버전 고정

검색

apt-cache search keyword

apt-file / package 소유 파일 목록

  • 어떤 파일이 어느 패키지에 들어있는지 여부를 찾아주는 툴
  • apt-file search 파일명
  • 이 전에 먼저 sudo apt-file update 로 데이베이스 생성해둬야함.
sudo apt-file update
 
apt-file list <package-name>
  • dpkg 명령으로 보기
dpkg -L <package-name>
 
# *.deb 파일의 컨텐츠 보여주기
dpkg -c <package-file.deb>

cache clean

# 캐시 삭제
sudo apt clean --dry-run # 일단 확인만
sudo apt clean
 
 
# 새 버전이 존재하는 패키지는 cache에서 지운다.
sudo apt autoclean --dry-run # 일단 확인만
sudo apt autoclean

fix-broken

  • dpkg 등으로 설치를 했는데, 그에 대한 의존성은 설치가 덜 됐을 때 덜 설치된 의존성을 보정해준다.
sudo apt-get --fix-broken install

특정 패키지의 의존성 목록

  • apt-cache showpkg [package-name] : 해당 패키지가 의존하는 패키지 목록
  • dpkg -I package.deb

특정 패키지의 저장소 정보

  • 존재하는 모든 버전과 해당 저장소 목록을 볼 수 있다.
apt-cache policy [package-name]

설치된 패키지 목록

apt list --installed

Upgrade 가능 목록

apt list --upgradable

unauthorized

sudo apt-get update --allow-unauthenticated

apt-mark

  • 특정 버전으로 고정. 업그레이드를 망지한다.
# 현재 설치 버전으로 고정
sudo apt-mark hold jenkins
 
# 고정 풀기
sudo apt-mark unhold jenkins
 
# 고정 목록
sudo apt-mark showhold
# dpkg
echo "<package-name> hold" | sudo dpkg --set-selections # hold
echo "<package-name> install" | sudo dpkg --set-selections # unhold
dpkg --get-selections # 상태 조회
dpkg --get-selections <package-name> # 특정 패키지 상태조회
dpkg --get-selections | grep "\<hold$" # hold 목록
 
# aptitude
sudo aptitude hold <package-name>
sudo aptitude unhold <package-name>

Aptik

Pinning

apt-key

man apt-key 8
  • apt-key 명령은 deprecated 상태라고 보면 된다. 아래와 같은 명령을 사용한다면 후자로 변경해줘야 한다.
wget -qO- https://myrepo.example/myrepo.asc | sudo apt-key add -
wget -qO- https://myrepo.example/myrepo.asc | sudo tee /etc/apt/trusted.gpg.d/myrepo.asc
  • 명시적 signed-by 키의 경우 /etc/apt/keyrings/ 아래에 저장하고 repository source 파일에 deb [signed-by=/usr/share/keyrings/filename.gpg] … 처럼 지정해준다.
  • ASCII armored 파일의 경우 파일 확장자가 .asc 여야 한다.
  • Open PGP 바이너리의 경우(gpg --dearmor 로 저장했거나) .gpg 확장자로 저장해야 한다.

CheatSheet

Repository

가장 빠른 미러 찾기

다음 패키지를 과거 버전으로 유지합니다:

신규 패키지와 함께 업그레이드

  • 신규 설치 패키지를 보여주며 업그레이드한다. 그런데 지워야 할 패키지가 있을 경우에는 작동하지 않는 듯 하다.
sudo apt-get --with-new-pkgs upgrade

명시적 install

  • upgrade 가 안되는 패키지를 명확하게 다시 apt install <package> 로 설치명령을 내리면 어떤 패키지의존성이 변경되었고 무엇을 더 설치하고 무엇을 지우는지 등이 나온다. 이를 확인하고서 설치 여부를 결정하면 된다.
sudo apt install package1 package2 ...
 
다음의 추가 패키지가 설치될 것입니다 :
  <어쩌구 저쩌구>
다음 패키지를 지울 것입니다:
  <어쩌구 저쩌구>
계속 하시겠습니까? [Y/n] <-- 선택하면 됨.

강제 업그레이드

  • 신규 의존성을 모두 강제로 업그레이드한다.
  • 다소 위험할 수도 있다.
sudo apt dist-upgrade

참조

linux/apt.txt · 마지막으로 수정됨: 2023/02/19 16:31 저자 kwon37xi