사용자 도구

사이트 도구


linux:apt

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
linux:apt [2021/10/15 08:01]
kwon37xi [cache clean]
linux:apt [2023/02/19 16:31] (현재)
kwon37xi [다음 패키지를 과거 버전으로 유지합니다:]
줄 4: 줄 4:
   * [[linux:ubuntu:package_management|Ubuntu 패키지 관리]]   * [[linux:ubuntu:package_management|Ubuntu 패키지 관리]]
   * [[linux:apt_offline|apt-offline]]   * [[linux:apt_offline|apt-offline]]
 +  * [[linux:deb_get|deb-get]]
 +  * [[linux:aptitude|aptitude]]
 +  * [[linux:nala|nala]]
 +  * [[linux:debian:makedeb_mpm|makedeb / mpm]]
 +
 +===== 설치 =====
 +<code sh>
 +sudo apt install <packagename>
 +
 +sudo apt install <packagename>=<version>
 +# apt-mark hold 로 버전 고정
 +</code>
  
 ===== 검색 ===== ===== 검색 =====
줄 50: 줄 62:
  
 ===== 특정 패키지의 저장소 정보 ===== ===== 특정 패키지의 저장소 정보 =====
 +  * 존재하는 모든 버전과 해당 저장소 목록을 볼 수 있다.
 <code sh> <code sh>
 apt-cache policy [package-name] apt-cache policy [package-name]
줄 70: 줄 83:
  
 ===== apt-mark ===== ===== apt-mark =====
-  * 특정 버전으로 고정+  * 특정 버전으로 고정. 업그레이드를 망지한다.
  
 <code sh> <code sh>
-# 현재 설치 버전으ㄹ 고정+# 현재 설치 버전으로 고정
 sudo apt-mark hold jenkins sudo apt-mark hold jenkins
  
 # 고정 풀기 # 고정 풀기
-sudo apt-mark unhold jenkins+sudo apt-mark unhold jenkins 
 + 
 +# 고정 목록 
 +sudo apt-mark showhold
 </code> </code>
 +  * 기타 방법 - [[https://askubuntu.com/questions/18654/how-to-prevent-updating-of-a-specific-package|updates - How to prevent updating of a specific package? - Ask Ubuntu]]
 +  * ''synaptic''에서 **Package -> Lock Version** 메뉴로도 가능.
 +<code sh>
 +# 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>
 +</code>
 ===== Aptik ===== ===== Aptik =====
   * http://www.teejeetech.in/2014/09/aptik-v16.html   * http://www.teejeetech.in/2014/09/aptik-v16.html
줄 85: 줄 114:
 ===== Pinning ===== ===== Pinning =====
   * [[https://help.ubuntu.com/community/PinningHowto|Pinning HowTo]]   * [[https://help.ubuntu.com/community/PinningHowto|Pinning HowTo]]
 +
 +===== apt-key =====
 +<code sh>
 +man apt-key 8
 +</code>
 +  * ''apt-key'' 명령은 deprecated 상태라고 보면 된다. 아래와 같은 명령을 사용한다면 후자로 변경해줘야 한다.
 +<code sh>
 +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
 +</code>
 +  * 명시적 ''signed-by'' 키의 경우 **''/etc/apt/keyrings/''** 아래에 저장하고 repository source 파일에 ''deb [signed-by=/usr/share/keyrings/filename.gpg] ...'' 처럼 지정해준다.
 +  * ASCII armored 파일의 경우 파일 확장자가 **''.asc''** 여야 한다.
 +  * Open PGP 바이너리의 경우(''%%gpg --dearmor%%'' 로 저장했거나) **''.gpg''** 확장자로 저장해야 한다.
  
 ===== CheatSheet ===== ===== CheatSheet =====
줄 95: 줄 137:
   * [[http://www.hackgnar.com/2016/01/creating-remote-apt-package.html|hackgnar: Creating Remote APT Package Repositories on Github]]   * [[http://www.hackgnar.com/2016/01/creating-remote-apt-package.html|hackgnar: Creating Remote APT Package Repositories on Github]]
   * [[https://pmateusz.github.io/linux/2017/06/30/linux-secure-apt-repository.html|Personal DEB Package Repository using GitHub Pages | Building Pyramids]]   * [[https://pmateusz.github.io/linux/2017/06/30/linux-secure-apt-repository.html|Personal DEB Package Repository using GitHub Pages | Building Pyramids]]
 +
 +===== 가장 빠른 미러 찾기 =====
 +  * [[https://linuxconfig.org/how-to-select-the-fastest-apt-mirror-on-ubuntu-linux|How to select the fastest apt mirror on Ubuntu Linux - Linux Tutorials - Learn Linux Configuration]]
 +
 +===== 다음 패키지를 과거 버전으로 유지합니다:  =====
 +  * ''The following packages have been kept back:''
 +  * 설치돼 있는 패키지의 의존성에 어떤 변경이 발생해서 제대로 변경된 의존성을 설치하고 다른 것은 제거 하는 등의 작업이 일어날 때 발생하는 오류.
 +  * [[https://askubuntu.com/|apt - "The following packages have been kept back:" Why and how do I solve it? - Ask Ubuntu]]
 +
 +==== 신규 패키지와 함께 업그레이드 ====
 +  * 신규 설치 패키지를 보여주며 업그레이드한다. 그런데 지워야 할 패키지가 있을 경우에는 작동하지 않는 듯 하다.
 +<code sh>
 +sudo apt-get --with-new-pkgs upgrade
 +
 +</code>
 +
 +==== 명시적 install ====
 +  * upgrade 가 안되는 패키지를 명확하게 다시 ''apt install <package>'' 로 설치명령을 내리면 어떤 패키지의존성이 변경되었고 무엇을 더 설치하고 무엇을 지우는지 등이 나온다. 이를 확인하고서 설치 여부를 결정하면 된다.
 +
 +<code sh>
 +sudo apt install package1 package2 ...
 +
 +다음의 추가 패키지가 설치될 것입니다 :
 +  <어쩌구 저쩌구>
 +다음 패키지를 지울 것입니다:
 +  <어쩌구 저쩌구>
 +계속 하시겠습니까? [Y/n] <-- 선택하면 됨.
 +</code>
 +
 +==== 강제 업그레이드 ====
 +  * 신규 의존성을 모두 강제로 업그레이드한다.
 +  * 다소 위험할 수도 있다.
 +<code sh>
 +sudo apt dist-upgrade
 +</code>
  
 ===== 참조 ===== ===== 참조 =====
linux/apt.1634252499.txt.gz · 마지막으로 수정됨: 2021/10/15 08:01 저자 kwon37xi