[Linux] Debian 계열 패키지 관리 툴: apt, apt-get

2023. 1. 26. 22:05·Computer/Linux
728x90
728x90

https://medium.com/@juhyun.kim/ubuntu%EC%97%90%EC%84%9C-apt-get-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-4021cca7a255

apt (apt-get, apt-cache)

apt는

Debian 계열의 Linux에서 패키지 관리 SW로서,

Package Management System (패키지관리시스템, Package Manager)의

High Level Command Line Interface를 제공한다.

 

달리 말하면 apt-get과 apt-cache와 같은 APT tool을 보다 쉽게 사용할 수 있게 해 줌.

  • apt-get이나 apt-cache에서는 보다 세밀한 작업 지정을 할 수 있는 option들을 제공.
    • apt 이전부터 존재하던 명령어들로 apt 보다 좀더 세밀하게 제어할 수 있음
    • 기본적으로 apt 보다 간략한 출력을 제공하며 script나 automation등에 이용됨.
  • apt는 보다 많이 사용되는 작업을 사용자가 보다 쉽게 수행할 수 있는 interface제공: 보다 직관적인 출력 형식을 제공함.

Commands

많이 사용되는 commands는 다음과 같다.

apt apt-get, apt-cache description
apt install <package_name> apt-get install <package_name> 패키지 <package_name>을 설치
apt remove <package_name> apt-get remove <package_name> 패키지 <package_name>을 제거
apt purge <package_name> apt-get purge <package_name> 패키지 <package_name>을
설정파일 포함하여 완전 제거
apt update apt-get update 패키지 설치를 위한
repository 관련 정보 갱신.
apt upgrade apt-get upgrade 업그레이드 가능한 모든 패키지 업그레이드.
apt clean apt-get clean 설치를 위해 다운로드된
.deb 패키지설치 파일들을 제거
(/var/cache/apt/archive청소)
apt search <package_pattern> apt-cache search <package_pattern> 패키지를 repository에서 검색
apt show <package_name> apt-cache show <package_pattern> 패키지의 주요정보 출력
apt autoremove apt-get autoremove 불필요해진 패키지 제거
apt list --installed | grep <pkg_pattern> dpkg -l | grep <pkg_pattern> apt-get, apt-cache엔 없음.
특정 패키지의 설치 유무를 확인

 

apt는 데비안 계열 리눅스(Ubuntu 등)에서 사용하는 패키지 관리 도구로, 다음과 같은 역할을 수행:

  1. 저장소 참조: /etc/apt/sources.list 파일과 /etc/apt/sources.list.d/ 디렉토리 내의 파일들에 명시된 원격 저장소(Repository) 주소를 참조함.
  2. 자동화: 사용자가 요청한 패키지를 찾아서 다운로드하고, 설치 과정을 자동으로 진행.
  3. 의존성 해결: 설치하려는 패키지가 작동하기 위해 필요한 다른 패키지(의존성)들을 자동으로 파악하여 한꺼번에 설치함.
  4. 관리: 실제 설치는 하위 도구인 dpkg를 통해 이루어지며, apt는 이를 상위에서 편리하게 관리해 주는 High Level Frontend.
apt는
apt-get, apt-cache, dpkg등의 여러 도구의 기능을
통합한 high level interface를 제공함.

 


설치 가능 버전 확인 및 설치, 버전 고정 명령어 사용법

앞서의 표와 달리 이들은 따로 다룬다.

패키지 관리시 생각보다 특정 버전을 지정해 설치해야 하는 경우가 있고, 버전을 고정해야 하는 경우가 있기 때문임


설치 가능한 모든 패키지 버전 리스트 확인하기

 

다음의 두 명령어 중 하나를  사용한다.

apt list -a <pkg>
apt-cache policy <pkg>

 

실행 예: npm (Node Package Manager) 의 설치 가능 버전 확인함.

현재 apt 레포지토리에 9.2.0~ds1-3 단 하나의 버전 만 등록됨.


특정 버전 지정하여 설치하기

 

다음의 두 명령어 중 하나를  사용한다.

apt install <pkg>=<ver>
apt-get install <pkg>=<ver>

 

실행 예: vim 을 버전을 지정하여 설치 (epoch=2 : version=9.1.1230 - revision=2).


패키지를 현재 버전으로 고정하기

이 경우, 업데이트 등에서 제외됨

apt-mark hold <pkg>

 

예제: vim을 현재 버전으로 고정하기

고정 해제는 unhold를 사용함

 


기타 options

-y :

  • 설치 등을 할 때, 모든 사용자 입력에 대해 자동으로 "Yes"를 입력되도록 해주는 option.
  • 대량의 packages를 설치할 때 유용.

-s :

  • simulation 수행.
  • 설치나 삭제등의 해당 처리가 system에 미치는 영향을 미리 보기 위해 사용.
  • 실제 설치하지 않고 어떤 변경사항이 발생하는지 확인하는 용도.

--print-uris :

  • package를 설치하지 않고,
  • 해당 package를 다운로드 할 수 있는 URI (Unified Resource Identifier) 와 파일 크기등의 정보를 출력.
  • off-line installation을 위한 정보 수집용.

-qq :

  • error message 외에 모든 출력을 생략하는 quiet level 2.
  • 기본적으로 -y를 의미하기 때문에 -d, --print-uris, -s와 같은 옵션 사용 없이 -qq를 사용하는 것은 권하지 않음.

 


dpkg (Debian Package)

레드햇의 rpm 명령어에 해당하는

Debian 계열의 Linux의 패키지 관리 시스템에 대한 low level CLI 를 제공해 주는 SW.

 

패키지 설치 파일인 패키지이름_버전-서브버전-architecture종류.deb를 시스템에 설치해 주는 SW임.

dpkg option description
dpkg -i <package_file> --install <package_file>를 설치.
dpkg -l --list 뒤에 package name의 패턴을 인자로 주면
해당 package가 설치되었는지 검색하고,
인자가 없으면 모든 설치된 리스트를 출력
dpkg -L <package_name> --listfiles <package_name>을 가지는 패키지 관련 파일이
어디에 설치되었는지 출력
dpkg -P <package_name> --purge <package_name>을 가지는 패키지 제거
dpkg -S <file_name> --search <file_name>의 file을 설치한 패키지를 출력.
dpkg -I <package_file> --info <package_file>의 정보를 출력.

 

semantic versioning에 대한 보다 자세한 내용은 다음 접은 글을 참고

더보기

https://ds31x.tistory.com/346

 

[Etc] SW Version: Semantic Versioning + packaging.version

1. Semantic Versioning SystemSemantic Versioning (SemVer) 시스템에 따라,소프트웨어에서 major와 minor, patch (or micro) 버전을 구분하여 버전을 매김.Python에서는 PEP 440 에서 버전 표기 방식을 지정하고 있으며 SemVe

ds31x.tistory.com



더 읽어보면 좋은 URL들

https://ds31x.tistory.com/514

 

APT Pinning

APT Pinning 은 특정 패키지나 저장소의 우선순위를 직접 설정하는 강력한 기능을 가리킴.APT Pinning 의 목적은 패키지가 의도치 않게 업데이트되거나 다운그레이드되는 것을 방지하는 것임.APT Pinning

ds31x.tistory.com

https://ds31x.tistory.com/149

 

[Homebrew] 사용법 요약본

Homebrew 사용법 요약 brew --versionbrew의 버전을 출력함.brew updatebrew를 최신버전으로 업데이트.brew upgradebrew의 모든 Formula package를 upgradecask package들은 제외됨.단, --greedy 옵션을 사용할 경우,cask도 포함

ds31x.tistory.com

https://ds31x.tistory.com/334

 

[Utils] winget 간단 사용법

winget은 CLI Windows Package Manager임.SW 설치,업데이트,제거등등을 쉽게 수행할 수 있음https://dsaint31.me/mkdocs_site/CE/ch15/ce15_2_5_package_management/ BME228Package Management : apt, yum, brew 등등 SW들의 경우 다양한 기

ds31x.tistory.com

https://dsaint31.me/mkdocs_site/CE/ch15/ce15_2_5_package_management/

 

BME

package Package Management : apt, yum, brew 등등 SW들의 경우 다양한 기존 라이브러리에 의존할 수 밖에 없는데, 해당 라이브러리들도 계속해서 버전이 올라가기 때문에 이들 의존성을 관리해주는 건 쉬운

dsaint31.me


외부 URLs

https://www.lesstif.com/lpt/apt-apt-get-24445574.html

 

apt(apt-get) 사용법

Ubuntu 14 이상은 apt-get 대신 apt 명령어 사용을 권장하고 있습니다.

www.lesstif.com

https://weftnwarp.kr/site-it/?p=6267

 

데비안(Debian), 우분투(Ubuntu) 패키지 관리 – apt-get 명령 사용법 – 씨실과 날실 – IT

🕒 예상 읽기 시간: 55 분 가량 / 포스트 조회 수: 410 참조 링크 관련 참조 링크 없음 이 글은 티스토리 블로그 https://wnw1005.tistory.com에서 옮겨온 글입니다. 3. apt-get 옵션 (Options) apt-get의 단일 패키

weftnwarp.kr

https://medium.com/@juhyun.kim/ubuntu%EC%97%90%EC%84%9C-apt-get-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-4021cca7a255

 

Ubuntu에서 apt-get 명령어 사용하기

Ubuntu 입문자를 위해 정리해요

medium.com

 

 


 

728x90

'Computer > Linux' 카테고리의 다른 글

[Linux] Network Setting  (1) 2023.02.07
[Linux] 화면 캡쳐 단축키  (0) 2023.01.30
[Linux] nano Editor 간단 사용법  (0) 2023.01.10
[Linux] KakaoTalk 설치 (Linux Mint 21.1)  (0) 2023.01.09
Linux : zip  (1) 2022.09.19
'Computer/Linux' 카테고리의 다른 글
  • [Linux] Network Setting
  • [Linux] 화면 캡쳐 단축키
  • [Linux] nano Editor 간단 사용법
  • [Linux] KakaoTalk 설치 (Linux Mint 21.1)
dsaint31x
dsaint31x
    반응형
    250x250
  • dsaint31x
    Dsaint31's blog
    dsaint31x
  • 전체
    오늘
    어제
    • 분류 전체보기 (795)
      • Private Life (16)
      • Programming (212)
        • DIP (116)
        • ML (41)
      • Computer (121)
        • CE (54)
        • ETC (31)
        • CUDA (3)
        • Blog, Markdown, Latex (4)
        • Linux (12)
      • ... (369)
        • Signals and Systems (115)
        • Math (177)
        • Linear Algebra (33)
        • Physics (43)
        • 인성세미나 (1)
      • 정리필요. (61)
        • 의료기기의 이해 (6)
        • PET, MRI and so on. (7)
        • PET Study 2009 (1)
        • 방사선 장해방호 (5)
        • 방사선 생물학 (3)
        • 방사선 계측 (9)
        • 기타 방사능관련 (3)
        • 고시 (9)
        • 정리 (18)
      • RI (0)
      • 원자력,방사능 관련법 (2)
  • 블로그 메뉴

    • Math
    • Programming
    • SS
    • DIP
  • 링크

    • Convex Optimization For All
  • 공지사항

    • Test
    • PET Study 2009
    • 기타 방사능관련.
  • 인기 글

  • 태그

    linear algebra
    random
    Term
    cv2
    function
    fourier transform
    Vector
    numpy
    SS
    signal_and_system
    math
    Programming
    opencv
    SIGNAL
    Python
    ML
    인허가제도
    Probability
    Optimization
    signals_and_systems
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dsaint31x
[Linux] Debian 계열 패키지 관리 툴: apt, apt-get
상단으로

티스토리툴바