전성빈의 사리사욕
[명령어] ubuntu / apt-get 본문
what is apt?
APT(Advanced Package Tool)는 Debian계열의 패키지 관리 프로그램인 dpkg와 상호작용하는 커맨드 라인 도구입니다.
apt-get
apt-get은 패키지에 대한 설치, 검색, 업데이트 및 삭제등 여러 작업을 수행합니다. 오래된 패키지를 사용하는것은 보안 이슈가 생길 수 있으니 패키지를 가급적 최신의 상태를 유지하는 것이 좋습니다.
apt-get은 시스템의 핵심 측면을 다루기 대문에 su 권한이 필요합니다. ubuntu 등에서 사용할 때는 sudo를 붙여줘야 합니다.
sudo apt-get update <package_name>
설치 되어있는 패키지들의 최신 버전이 있는지 확인합니다.
- Hit : 새로운 버전이 없습니다.
- Get : 새로운 버전에 대한 정보를 가져옵니다.
- Ign : 오류가 발생했거나 패키지가 최신 버전이므로 확인할 필요가 없음을 나타냅니다.
sudo apt-get upgrade
sudo apt-get upgrade <package_name>
sudo apt-get dist-upgrade
local에 위치한 패키지 DB에 있는 최신버전들을 설치합니다. update를 해주지 않았다면 최신 버전이 있더라도 설치하지 않습니다.
패키지 이름을 명시해줘 단일 패키지만을 업그레이드 할 수 있습니다.
dist-upgrade는 종속성을 지능적으로 처리합니다. 충돌이 일어나거나 패키지의 버전에 따른 문제가 생길때 가장 중요한 패키지를 업그레이드 합니다. 따라서 덜 중요한 패키지는 제거될 수 있습니다.
sudo apt-get install <package_name>
sudo apt-get install <package_1> <package_2> <package_3>
sudo apt-get install <package_name>=<version>
패키지를 설치합니다.
여러 개의 패키지도 한번에 설치할 수 있습니다.
이미 존재하는 패키지를 설치하려는 경우 로컬에 존재하는 패키지 DB을 확인하여 해당 패키지를 업그레이드합니다.
특정 패키지의 특정 버전도 설치할 수 있습니다.
sudo apt-get remove <package_name>
sudo apt-get purge <package_name>
sudo apt-get autoremove <pavcage_name>
시스템에서 패키지를 제거합니다. 패키지를 제거하지만 설정파일은 제거 하지 않기때문에 다음에 다시 설치하면 동일한 설정을 제공합니다.
purge를 사용하면 설정파일까지 같이 제거합니다.
autoremove는 연관된 패키지를 전부 삭제시킵니다. 사용하지 않는 패키지를 제거할 땐 유용하겠지만 한번 실수하면 돌이킬 수 있지만 엄청난 문제를 일으키니 주의를 해야합니다.
-복구-
apt-get의 로그를 분석하여 autoremove를 사용한 시간의 log를 분석하여 지워진 패키지의 이름을 모두 찾아낸 후 install을 통해 다시 설치해 주면 복구가 가능합니다.
apt-cache
apt-cache는 apt-get과 다르게 설치, 업데이트 등이 아닌 local에 존재하는 패키지DB에서 패키지에 관한 정보를 query하는데 사용합니다. 시스템을 건들지 않기때문에 관리 권한이 필요하지 않아 sudo를 명시할 필요가 없습니다.
apt-cache <search_term>
apt-cache showpkg
apt-cache show <package_name>
더욱 많은 기능은 man 명령어를 통해 알아 볼 수 있습니다.
man apt-get
man apt-cache
&&를 이용하여 여러 명령어를 한번에 사용 가능합니다.
sudo apt-get update && sudo apt-get upgrade
man apt-get && man apt-cache
출처 :
'백엔드 로드맵따라가기 > OS 및 일반적인 지식' 카테고리의 다른 글
[OS의 작동방식] 입출력 관리 (0) | 2020.08.12 |
---|---|
[OS의 작동방식] IPC (Inter Process Communication) (0) | 2020.08.12 |
[OS의 작동방식] 메모리 관리 (0) | 2020.08.11 |
[OS의 작동방식] 쓰레드란 (0) | 2020.08.11 |
[OS의 작동방식] 프로세스 관리 (0) | 2020.08.06 |