/ var / cache / apt / archives /에 deb 파일이있는 이유는 무엇입니까? 파일이

왜 deb 파일이 /var/cache/apt/archives/있습니까?

어떤 경우에 deb 파일이 해당 디렉토리로 다운로드 되었습니까?



답변

배경 정보

우분투와 우분투의 기반이되는 데비안에는 일반적으로 “패키지 관리자”라고하는 두 가지가 있습니다 : dpkg, APT.

dpkg패키지를 설치 및 제거하고 설치된 패키지 및 버전에 대한 데이터베이스를 유지 관리하는 프로그램입니다. 패키지를 설치할 때 .deb아카이브 파일 에서 설치 합니다. 이 아카이브는 패키지가 배포되는 방식입니다.

dpkg파일을 복사 (또는 삭제)하고 데이터베이스를 업데이트하는 것 이상으로 설치 스크립트와 제거 스크립트를 실행합니다. 꽤 세련된 것으로 간주 될 수 있습니다. 그러나 그것이하지 않는 것은 패키지를 찾아 다운로드 하는 것 입니다.

APT는 패키지를 찾아서 다운로드 dpkg하고 설치, 업그레이드 및 제거에 적합하게 실행 됩니다. APT는 본질적으로 하나의 소프트웨어가 아니지만 필수적인 부분을 제공 하는 apt 패키지가 있습니다.

APT에는 다양한 도구로 액세스하는 핵심 기능을 제공 하는 라이브러리 ( libapt-pkg )가 포함되어 있습니다. 와 같은 일부 도구 apt-getapt 패키지 에서도 제공됩니다 . 다른 도구는 별도로 설치됩니다. APT는 또한 핵심 라이브러리 및이를 사용하는 프로그램의 작동 방식을 제어하는 ​​다양한 구성 파일을 제공합니다.

또한 APT는 어떤 소프트웨어 소스가 어떤 버전의 패키지를 제공하는지에 대한 데이터를 저장하고 검색 하는 시스템 이며 이러한 데이터를 사용하여 패키지 설치 및 업그레이드와 같은 패키지 관리 작업을 자동으로 수행하는 시스템입니다. 여기에는 다른 패키지가 작동 하는 데 필요한 패키지를 추적 하고 이러한 종속성을 만족시키기 위해 적절한 패키지를 자동으로 선택하여 설치하는 것이 포함됩니다.

예를 들어, 초콜릿 둠 패키지 apt-get를 설치 하도록 유틸리티에 지시하면 다른 패키지가 설치되어 있어야 작동하며 자동으로 검색하여 설치합니다.

$ sudo apt-get install chocolate-doom
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  doom-wad-shareware libmikmod3 libsdl-mixer1.2 libsdl-net1.2 libsdl1.2debian
Recommended packages:
  doom-engine
The following NEW packages will be installed:
  chocolate-doom doom-wad-shareware libmikmod3 libsdl-mixer1.2 libsdl-net1.2
  libsdl1.2debian
0 upgraded, 6 newly installed, 0 to remove and 1 not upgraded.
Need to get 0 B/2,846 kB of archives.
After this operation, 8,626 kB of additional disk space will be used.

Software Center, Software Updater / Update Manager 및 Synaptic과 같은 그래픽 도구는와 유사한 기능을 수행합니다 apt-get. 의 조합을 통해 – 그들은 또한 APT 시스템을 사용 의 규칙을 관찰 하고 핵심 라이브러리가 제공하는 기능을 활용 그는 (보통은) 가지 방식으로, 원하는 / S 어떤 사용자를 제공, 패키지가 설치되어있는 –to 변화 (보통) 계속 작동합니다.

/var/cache/apt/archives폴더 사용 방법 및시기

apt-get, aptitude, 소프트웨어 센터 , 시냅틱 , 소프트웨어 업데이터 / 업데이트 관리자 또는 기타 패키지 관리 유틸리티 다운로드 패키지 (다른 패키지가에 따라 다름) 구성에서 소프트웨어 소스 와 그들을 설치, 다운로드 패키지 (즉, 뎁 아카이브 파일 설치 위치)에 저장됩니다 /var/cache/apt/archives.

디스크에 .deb 파일이 있고 .deb 파일을 설치하면 해당 파일 dpkg의 복사본이 만들어지지 않습니다 /var/cache/apt/archives. 그러나 자동 의존성 해결 및 패키지 검색 의 APT 시스템 을 사용하거나 구현하는 프로그램이 패키지를 다운로드 할 때 저장합니다.

자동으로 다운로드 된 패키지의 .deb 파일은에 저장되어 설치 /var/cache/apt/archives되지만 실제로 해당 위치로 직접 다운로드되지는 않습니다. 대신, 불완전한 (즉, 진행중인) .deb 파일 다운로드가 존재하고 완료되면 /var/cache/apt/archives/partial이동됩니다 /var/cache/apt/archives.

.deb 패키지 파일은 /var/cache/apt/archives나중에 사용하기 위해 필요한 경우 설치가 성공한 후에도 캐시 된 상태로 유지 됩니다. 그러나으로 다시 필요하지 않을 정도로 오래된 .deb 파일을 안전하게 제거 sudo apt-get autoclean하거나으로 캐시 된 .deb파일을 완전히 지울 수 있습니다 sudo apt-get clean. 자세한 내용 man apt-get은 참조하십시오.

sudo apt-get autoclean명령 실행 여부를 판별 할뿐만 아니라 기능 및 유사한 명령을 설명하기 위해 플래그 로 실행하여 조치를 시뮬레이트 할 수 있습니다 -s. 그것은이 플래그를 통과하는 것이 가장 좋습니다 전에autoclean (또는 어떤 다른) 액션 동사. 실제 변경 사항이 없기 때문에 일반적으로를 sudo사용할 때 유틸리티를 루트로 실행할 필요는 -s없습니다.

예를 들어, 내 시스템에서 :

$ apt-get -s autoclean
NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree
Reading state information... Done
Del libubsan0 4.9.1-15ubuntu1 [83.7 kB]
Del cups-server-common 1.7.5-3 [519 kB]
Del python2.7 2.7.8-9 [205 kB]
Del g++-4.9 4.9.1-15ubuntu1 [17.4 MB]
Del libstdc++-4.9-dev 4.9.1-15ubuntu1 [1,121 kB]
    ....

나열된 패키지는 제거 되지 않습니다 . 대신 캐시 된 .deb 파일 만 삭제됩니다. (실제로는 시뮬레이션 이었기 때문에 해당 명령을 실행할 때 전혀 발생하지 않았습니다.)

다른 다운로드 파일

dpkg(APT 등을 통해) 통해 설치된 소프트웨어 는 실제로 제공하는 .deb 파일에서 실행되지 않습니다. 배경 정보 섹션에 언급 된대로 .deb 파일이 추출됩니다. 이것이 제거 할 수 있고 설치된 패키지가 계속 작동하는 이유입니다.

.deb 패키지에서 설치 한 시스템 전체의 파일은 현재 위치로 다운로드되는 것이 아니라 해당 파일을 제공하는 .deb 파일에서 추출됩니다. 일부 구성 파일의 경우).

그러나 .deb 파일은 패키지 관리 유틸리티에서 다운로드 한 유일한 파일이 아닙니다. 패키지가 존재하는 위치에 대한 정보를 제공하는 다른 파일이 종종 다운로드됩니다.

예를 들어, 내가 실행할 때 sudo apt-get update출력에는 다음과 같은 줄이 포함됩니다.

Get:13 http://us.archive.ubuntu.com utopic/main i386 Packages [1,341 kB]

이는 http://us.archive.ubuntu.com/ubuntu/dists/utopic/main/binary-amd64/Packages.bz2 와 같은 파일 이 다운로드되어 사용 가능한 패키지에 대한 정보로 APT 데이터베이스를 업데이트하는 데 도움 이됨을 의미 합니다 ( 특정 소프트웨어 소스의 버전). /var/lib/apt/list디렉토리 에서 패키지 파일 및 기타 해당 파일을 찾을 수 있습니다 . 거기에 저장된 사본에는 us.archive.ubuntu.com_ubuntu_dists_utopic_main_binary-amd64_Packages이러한 파일이 많을 수 있으므로 와 같은 고유 한 이름이 지정됩니다 .

apt-cache구체적으로 물었습니다 . 패키지 데이터베이스를 쿼리하지만 시스템을 변경하거나 파일을 다운로드하지는 않습니다.

소프트웨어 센터 전용 다운로드 파일

Ubuntu Software Center는 특정 APT (또는 dpkg) 기능 과 관련이없고 자체 용도로 데이터를 다운로드 할 때 해당 데이터를에 저장합니다 /var/cache/software-center.

예를 들어, 내 시스템 (및 대부분의 시스템)에서 해당 폴더에는 xapian하위 폴더가 있습니다 .

ek@Ilex:/var/cache/software-center/xapian$ ls
flintlock       postlist.baseB  record.baseB    spelling.baseB  termlist.baseB
iamchert        postlist.DB     record.DB       spelling.DB     termlist.DB
postlist.baseA  record.baseA    spelling.baseA  termlist.baseA

소프트웨어 센터는 Xapian 을 사용 하여 빠른 검색을 위해 정보를 색인화합니다.

기타 관련 유틸리티 용 다운로드 파일

APT 시스템과 함께 작동하는 일부 추가 유틸리티는 작업의 일부로 파일을 다운로드하고 저장합니다. apt-fileUbuntu에는 기본적으로 설치되지 않지만 apt-file 패키지 에서 설치 될 수 있습니다 .

apt-file로컬에 설치되지 않은 패키지의 경우에도 어떤 패키지가 제공하는 파일에 대한 정보를 저장합니다. 압축 Contents파일 을 다운로드하여 패키지 내용에 대한 다음 정보를 얻습니다 .

$ sudo apt-file update
Downloading complete file http://us.archive.ubuntu.com/ubuntu/dists/utopic/Contents-amd64.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 29.6M  100 29.6M    0     0   856k      0  0:00:35  0:00:35 --:--:--  832k

apt-file update루트로 실행 되면 (위와 같이)이 파일이 /var/cache/apt/apt-file디렉토리 로 다운로드됩니다 . 이것을 발견하기 위해 나는 달렸다.

$ sudo updatedb
$ locate Contents-amd64
/var/cache/apt/apt-file/us.archive.ubuntu.com_ubuntu_dists_utopic-proposed_Contents-amd64.gz
/var/cache/apt/apt-file/us.archive.ubuntu.com_ubuntu_dists_utopic_Contents-amd64.gz

이 게시물에 제공된 정보는 Ubuntu의 패키지 관리 유틸리티에 의해 다운로드 및 저장되는 여러 데이터 파일의 예를 제공하지만 이러한 파일이 사용 및 저장되는 전체 인스턴스 목록으로 간주해서는 안됩니다.