apt | description |
---|---|
$ apt update | $ sudo apt update는 실제로 패키지를 업데이트하닌게 아닌, /etc/apt/sourcelist /etc/apt/sourcelist.d/* |
$ apt update --fix-missing | - |
apt upgrade 관련 | description |
---|---|
$ apt upgrade [pkg] | 하지만, dependency check를 하지 않음 [pkg] 를 명시하지 않으면, 설치된 패키지 전부를 업그레이드한다.distro release의 라이프사이클 기간 동안 사용한다 2025년까지 패키지를 업그레이드할 수 있다. |
$ apt full- upgrade |
|
$ apt install <pkg> | |
$ apt --fix-broken install | - |
$ apt install -f <pkg> | - |
$ apt install --reinstall | - |
$ apt install --upgrade | - |
apt list 관련 | Description |
---|---|
$ apt list | 레파지토리에 등록된 패키지 이름만을 조회 설치 안된 것도 포함 |
$ apt list --installed | 설치된 패키지 리스트 |
$ apt list --upgradable | 설치된 패키지 중 업그레이드 대상 패키지 목록 조회 |
$ apt list --all-versions | 패키지의 모든 버전 목록 조회 |
$ apt search | 패키지 이름, 텍스트 다 찾음 설치 되지 않은 것도 검색하는 것임 |
패키지 정보관련 | Description |
---|---|
$ apt show <패키지> | 패키지에 관한 간단한 정보를 출력 버전, 패키지 크기, 카테고리, 체크섬 등 패키지에 관한 정보 확인 |
$ apt-cache showpkg <패키지> | 좀더 자세한 패키지 정보 |
$ apt download <패키지> | 해당 패키지 다운$ apt download <pkg> |
3rd Party Package List 등록 | Description |
---|---|
$ add-apt-repository -y ppa:linuxuprising/shutter $ sudo apt update $ sudo apt install shutter | ppa:linuxuprising/shutter 저장소 추가 |
$ add-apt-repository -y ppa:linuxuprising/shutter | 저장소 제거 명령 |
dpkg | description |
---|---|
$ dpkg -i <pkg.deb> | pkg.deb 패키지 설치 설치-i 를 install의 약자라고 기억하자. |
$ dpkg -l | 설치된 패키지 목록 출력 |
$ dpkg -l <패키지> | 해당 패키지 설치 상태 |
$ dpkg -s <패키지> | 해당 패키지 '상세'정보 |
$ dpkg -S <검색할 Path> | 경로명이 포함된 패키지 검색 |
$ dpkg -r <패키지> | 해당 패키지삭제 |
$ dpkg -P <패키지> | 해당 패키지와 설정 정보 모두 삭제 |
$ dpkg <-r | -P> --force-depends <package_name> | 패키지 디펜던시를 무시하고 삭제 |
$ dpkg -x <.deb> <dst dir> | 해당 .deb 파일을 지정한 디렉토리에 풂 |
$ dpkg -x <src.deb> <dst dir>
lsb-release
받아서 풀어보기$ apt download lsb-release
lsb-release_11.1.0ubuntu2_all.deb
$ dpkg -x ./lsb-release_11.1.0ubuntu2_all.deb ./lsb-release
lsb-release 디렉토리 확인
➜ lsb-release tree .
.
└── usr
├── bin
│ └── lsb_release
├── lib
│ ├── python2.7
│ │ └── dist-packages
│ │ └── lsb_release.py -> ../../../share/pyshared/lsb_release.py
│ └── python3
│ └── dist-packages
│ └── lsb_release.py -> ../../../share/pyshared/lsb_release.py
└── share
├── bug
│ └── lsb-release
├── doc
│ └── lsb-release
│ ├── README.Debian
│ ├── changelog.gz
│ └── copyright
├── man
│ └── man1
│ └── lsb_release.1.gz
└── pyshared
└── lsb_release.py
파일명_버전-리비전_아키텍처.deb
apt
패키지 저장소Ubuntu, Debian는 패키지와 패키지에 대한 정보를 저장하고 있는 서버인 apt 패키지 저장소 개념을 가지고 있다.
/etc/apt/sources.list
파일에 패키지 변경사항 및 추적/etc/apt/source.list
에 적힌대로 관리한다.deb http://kr.archive.ubuntu.com/ubuntu/ bionic main restricted
deb-src http://kr.archive.ubuntu.com/ubuntu/ bionic main restricted
/etc/apt/source.list
에 보통은 공식 아카이브를 사용 할 것임http://archive.ubuntu.com/ubuntu/
-> http://mirror.kakao.com/ubuntu/
로 변경하자vim
명령 시, /
문자 조심하고.. 그냥 아래와 같이 바꾸는 명령으로 바꾸자.:$s/archive.ubuntu.com/mirror.kakao.com/g
/etc/apt/sources.list.d
/etc/apt/sources.list.d
디렉터리에 가면 추가적으로 따로 패키지 저장소를 더할 수 있다.
위 사진은 proposed 라는 App의 패키지 저장소가 저장되어 있는 것임(proposed.list
라는 파일로)
<app_name>.list
형식으로 추가한다.deb http://ports.ubuntu.com/ubuntu-ports/ focal-proposed main restricted
jenkins
install 예:
$ wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
OK
$ sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
# /etc/apt/sources.list.d/jenkins.list
# deb http://pkg.jenkins.io/debian-stable binary/
~/.gnupg/
에 저장된다.$ sudo apt update
$ sudo apt install jenkins
$ sudo apt-get install software-properties-common dirmngr apt-transport-https
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
~/.gnupg/
에 저장된다.sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://mirror.yongbok.net/mariadb/repo/10.5/ubuntu focal main'
$ sudo apt update
$ sudo apt install mariadb-server
$ sudo add-apt-repository -y ppa:linuxuprising/shutter
$ sudo apt update
$ sudo apt install shutter
$ sudo add-apt-repository --remove ppa:linuxuprising/shutter
Skipping
architecture 문제/etc/apt/source.list
dists/focal
i386
이 없다.i386
에서 찾나보다.[arch=amd64]
로 지정하자/etc/apt/source.list
apt
명령어$ apt update
/etc/apt/sourcelist
, /etc/apt/sourcelist.d/*
의 패키지 리스트를 최신 업데이트하는 것$ sudo apt update
$ apt update
의 processsources
에서, 패키지 정보를 다운로드한다./etc/apt/source.list
, /etc/apt/source.list.d
$ apt update --fix-missing
$ apt upgrade
$ sudo apt upgrade
$ apt full-upgrade
apt upgrade | apt full-upgrade |
---|---|
패키지를 제거하지 않고 제거가 필요한 경우 old 패키지 업그레이드를 건너뛴다. | 최신 버전의 패키지 업그레이드의 성능향상을 위해 old 패키지를 제거할 수 있다. |
safer option | caution needed |
distro release의 라이프사이클 기간 동안 사용한다.
| distro release의 라이프사이클이 끝난 경우 사용된다.
|
sudo apt upgrade는 아래의 출력이 보인다.
위의 경우, software_X가 1.2.2 버전이 내 컴퓨터에 설치되어 있는데, 새로운 버전 1.3.1이 설치할 수 있다. 이경우 sudo apt upgrade할 경우, software_X는 1.3.1 version으로 업데이트된다.
반대로, apt full-upgrade 명령은, apt package manager에게 필요한 경우 패키지를 삭제하라는 의미를 내포한다.
$ apt upgrade <Package>
$ apt dist-upgrade
$ sudo apt dist-upgrade
$ apt install
$ apt install --reinstall
$ apt install --upgrade
$ apt list
$ sudo apt list
$ apt list --installed
★$ sudo apt ist --installed
$ apt --upgradable list
$ sudo apt --upgradable list
$ apt --all-versions list
$ sudo apt --all-versions list
$ apt search
$ sudo apt search [PACKAGE]
$ apt show <패키지>
$ apt-cache showpkg <패키지>
$ apt download <패키지>
: 해당 패키지 다운deb
$ dpkg -i <.deb>
: deb 설치$ dpkg -i PACKAGE.deb
-i
를 install의 약자라고 기억하자.$ dpkg -l
: 설치된 패키지 목록 출력$ dpkg -l
$ dpkg -l <패키지>
: 해당 패키지 설치 상태$ dpkg -l apt
$ dpkg -s <패키지>
: 해당 패키지 '상세'정보$ dpkg -s apt
$ dpkg -S <검색할 Path>
: 경로명이 포함된 패키지 검색$ dpkg -r <패키지>
: 해당 패키지삭제sudo dpkg --remove --force-remove-reinstreq package_name
패키지 강제 삭제$ dpkg -P <패키지>
: 해당 패키지와 설정 정보 모두 삭제$ dpkg -x <.deb> <dst dir>
: 해당 .deb 파일을 지정한 디렉토리에 풂