
안녕하세요 :) 우분투를 사용하여 소프트웨어를 다운로드하는 방식에 따라 소프트웨어 업데이트가 어떻게 다릅니까? 예를 들어 apt-package 관리자를 사용하여 수동으로 다운로드하거나 /etc/apt/sources.list에 일부 저장소를 추가하는 경우입니다. 플랫팩이나 스냅을 사용하여 소프트웨어를 다운로드할 수도 있습니다.
sudo apt update를 호출하면 실제로 어떤 일이 발생하나요? 어떤 저장소가 검사됩니까?
답변1
Ubuntu에 소프트웨어 패키지를 설치하는 방법에는 여러 가지가 있으며 그 중 일부는 언급하지 않았습니다. 완전한 답변을 제공하기 위해 모든 내용을 설명하고 싶습니다.
패키지 관리자를 통한 설치, 기본 리포지토리
패키지 관리자( apt
, 또는 무엇 apt-get
이든 상관없음 aptitude
)에는 소프트웨어를 다운로드할 수 있는 위치 목록이 있습니다. 이 소프트웨어는 일반적으로 신뢰할 수 있고 작동하는 것으로 알려져 있으며 대부분 잘 유지 관리됩니다. 이러한 위치를 "저장소"라고 합니다. 저장소의 URL은 /etc/apt/sources.list
. 을 실행할 때 apt update
패키지 관리자는 저장소를 쿼리하여 사용 가능한 소프트웨어 패키지를 파악합니다. 정보를 로컬 캐시에 저장합니다.
로 패키지를 설치할 때 apt install
패키지 관리자는 로컬 캐시를 확인하여 패키지를 다운로드할 위치를 결정합니다. 그런 다음 패키지를 다운로드합니다. 패키지는 DEB 형식의 아카이브로 제공됩니다. 아카이브는 로컬 파일 시스템에 압축이 풀립니다. 또한 패키지에는 새로 설치된 소프트웨어를 설정하기 위해 한 번 자동으로 실행되는 일부 코드가 포함될 수 있습니다.
apt upgrade
또는 로 소프트웨어를 업데이트하면 apt dist-upgrade
기존 패키지의 새 버전이 다운로드됩니다. 현재 버전이 시스템에서 제거됩니다.패키지 관리자는 어떤 파일이 어떤 패키지에서 제공되었는지 알기 때문에 어떤 파일을 제거해야 하는지 알고 있습니다.그러면 위에서 설명한 대로 새 버전이 설치됩니다.
패키지 관리자, 사용자 정의 리포지토리를 통한 설치
에 URL을 추가하여 기본 저장소를 확장하는 것도 가능합니다 /etc/apt/sources.list
. 단, 이러한 날짜를 /etc/apt/sources.list.d/
사용해야 합니다. 패키지 관리자는 이를 기본 저장소처럼 간주합니다. 설치, 제거 및 업데이트는 동일하게 작동합니다. 사용자 정의 저장소를 추가할 때 사용자는 주의해야 합니다. 이는 시스템용으로 만들어져야 합니다.
참고 사항: 개인적인 경험으로 볼 때, 하나의 Ubuntu 릴리스에서 다음 릴리스로 업그레이드하기 전에 기본이 아닌 저장소에 설치된 모든 패키지를 제거하는 것이 좋습니다.
패키지 관리자를 통한 설치, 수동 다운로드
DEB 파일을 수동으로 다운로드할 수도 있습니다. 를 통해 패키지를 설치할 수 있습니다 dpkg -i
. 패키지 관리자는 이 패키지가 어디서 왔는지 모르기 때문에 이 패키지를 업데이트하지 않습니다.
스냅을 통한 설치
snapcraft는 Debian 기반 Ubuntu뿐만 아니라 모든 Linux 배포판과 호환되도록 설계된 패키지 관리자의 대안입니다. 스냅 패키지는 시스템에 압축이 풀리지 않습니다. 게다가 소프트웨어는 마운트되고(내용이 직접 표시됨) 시스템 내부의 통제된 환경(샌드박싱 및 가상 머신을 생각해 보세요)에서 실행됩니다. 스냅을 제거하면 패키지가 마운트 해제되고 제거됩니다. 업데이트는 유사하게 발생합니다.
완전 수동 설치
또한 여러 파일을 다운로드하여 하드 드라이브의 적절한 위치에 배치할 수도 있습니다. 사용자 정의 소프트웨어는 종종 /opt에 들어갑니다. 바이너리(또는 이에 대한 링크)는 의 디렉터리에 설치됩니다 $PATH
. 이렇게 하면 소프트웨어에 쉽게 액세스할 수 있습니다. 패키지 관리자는 이 소프트웨어에 대해 아무것도 모릅니다. 업데이트도 수동으로 설치해야 합니다. 소프트웨어에 자동 업데이트 기능이 있는 경우도 있습니다. 맞춤형 소프트웨어 /usr/local
는 /usr
. 후자는 자신이 하고 있는 일을 실제로 알지 않는 한 수행해서는 안 됩니다. 맞춤형 소프트웨어는 패키지 관리자가 제어하는 소프트웨어와 심각하게 충돌할 수 있습니다.
유제:
apt-get을 사용한 Ubuntu 소프트웨어 업데이트
Apper를 통해 패키지를 업데이트하는지, Debian의 소프트웨어 센터를 통해 패키지를 업데이트하는지에 따라 차이가 있나요?
답변2
배포자가 제공한 소스에서만 소프트웨어를 설치하는 것이 좋습니다. 수행 중인 작업을 정확히 알고 있는 경우에만 수동으로 리포지토리를 추가하거나 패키지 또는 기타 소프트웨어를 수동으로 설치하세요. 질문의 내용은 다음과 같습니다 sudo apt update
. 구성한 모든 리포지토리에서 사용 가능한 최신 패키지를 가져옵니다. 스냅이나 플랫팩에도 동일하게 적용됩니다. 중앙 저장소에서 설치한 후에는 와 유사한 방식으로 업데이트를 받게 됩니다 apt update
.
답변3
apt update
/etc/apt/sources.list
에 있는 모든 파일에 있는 리포지토리에서 사용 가능한 패키지 목록을 업데이트합니다 /etc/apt/sources.list.d/
. apt
최신 버전의 패키지를 알 수 있도록 이를 먼저 실행하는 것이 중요합니다 .
apt upgrade
실제로 설치된 패키지는 최신 버전을 통해 설치되었으며 apt
해당 패키지의 원본 저장소가 위 위치에 있는 경우 사용할 수 있는 최신 버전이 있는 설치된 패키지를 업그레이드합니다.
저장소가 다르고 의 캐시/데이터베이스 에 없기 때문에 패키지는 snap
업그레이드 flatpak
되지 않습니다 .apt
apt
답변4
apt update
모든 소프트웨어 소스를 확인하므로 이것이 배포판의 저장소와 추가한 PPA입니다. AFAIK에는 flatpak이 포함되지 않지만( flatpak update
이 경우 사용) distro가 설치하는 방식인 경우 snap을 포함할 수 있습니다. 수동으로 설치한 것(.deb 또는 기타 설치 수단 다운로드)은 물론 그런 방식으로 확인되지 않습니다.
그러나 Ubuntu에는 자체 업데이트 정책이 있다는 점을 명심하십시오. 배포판의 일부는 배포판의 수명이 다할 때까지 업데이트되고("기본" 저장소), 일부는 업데이트를 거의 또는 전혀 받지 못합니다("유니버스" 저장소 및 기타)(그리고 대부분의 경우). 스냅 설치 패키지는 "기본"에 없습니다).