LabHub

패키지 관리 · apt 실전 · 실습

apt 로 패키지 다루기

LabHub 에서 이어서 보기

목표

apt 로 검색·설치·제거를 하고, hold 와 pin 으로 버전을 붙잡는 것까지 손에 익힙니다. 이 실습이 끝나면 apt-cache policy 출력만 보고 "왜 이 버전이 뽑혔는지" 설명할 수 있습니다.

왜 중요한가

apt 는 저장소에 실시간으로 물어보지 않습니다. /var/lib/apt/lists/ 에 캐시된 색인만 보고 판단하고, 같은 패키지가 여러 저장소에 있으면 우선순위로 고릅니다. 이 구조를 알면 "저장소에는 있는데 안 보인다"(색인이 낡음)와 "사내 미러를 넣었는데 공식에서 받아온다"(우선순위가 같음)가 한 번에 설명됩니다. 이 실습 환경에는 인터넷이 없고 /opt/localrepo 오프라인 저장소만 있으므로, 모든 설치가 그 저장소에서 일어납니다.

단계

1. /root/pkg 디렉터리를 만들고, apt-cache policy 의 전체 출력을 /root/pkg/policy.txt 로 저장하세요.
2. tree 라는 패키지를 검색해 결과를 /root/pkg/search-tree.txt 로 저장하세요. 결과 안에 이름이 정확히 tree 인 줄이 있어야 합니다.
3. tree설치 후보 버전만 한 줄로 /root/pkg/tree-version.txt 에 적으세요. (예: 2.1.1-2ubuntu3)
4. treencdu 두 패키지를 설치하세요.
5. cowsay 를 설치하고, 그 의존성 중 Depends 줄만 골라 /root/pkg/cowsay-depends.txt 로 저장하세요.
6. htop 을 설치한 뒤 업그레이드 대상에서 제외(hold)하고, 그 사실을 /root/pkg/hold.txt 로 저장하세요.
7. /etc/apt/preferences.d/labhub.pref 를 만들어 htop 패키지를 우선순위 1001 로 고정하세요. Package, Pin, Pin-Priority 세 줄이 모두 있어야 합니다.
8. /root/pkg/report.txt 를 만드세요. 앞에서 설치한 tree, ncdu, htop, cowsay 네 패키지에 대해 이름 버전 형식으로 한 줄씩 쓰고, 마지막 줄HOLD=<hold 걸린 패키지 이름> 을 적으세요.

참고

단계 8개

  1. 작업 디렉터리와 저장소 확인
  2. 패키지 검색하기
  3. 설치 후보 버전 확인
  4. 패키지 설치하기
  5. 의존성 목록 뽑기
  6. 업그레이드에서 제외하기
  7. 핀 파일로 우선순위 지정
  8. 설치 상태 보고서