Por que existem arquivos deb em / var / cache / apt / archives /?


Respostas:


21

Informações básicas

Há duas coisas no Ubuntu (e no Debian, nas quais o Ubuntu se baseia) que são comumente chamadas de "gerenciador de pacotes" dpkg:, e APT.

dpkgé um programa que instala e remove pacotes e mantém um banco de dados de quais pacotes estão instalados, em quais versões. Quando instala pacotes, o faz a partir de .debarquivos compactados. Esses arquivos são a maneira como os pacotes são distribuídos.

dpkgfaz mais do que copiar (ou excluir) arquivos e atualizar seu banco de dados - ele também executará scripts de instalação e remoção. Pode ser considerado bastante sofisticado. Mas o que não fará é encontrar e baixar pacotes.

O APT localiza e baixa pacotes e é executado dpkgadequadamente para instalar, atualizar e removê-los. O APT não é realmente um software único, embora exista um pacote aptInstale o apt que forneça suas partes essenciais.

O APT inclui uma biblioteca ( libapt-pkg ) que fornece a funcionalidade principal, acessada por várias ferramentas. Algumas dessas ferramentas, como apt-get, também são fornecidas pelo pacote aptInstale o apt . Outras ferramentas são instaladas separadamente. O APT também fornece vários arquivos de configuração que controlam como sua biblioteca principal e os programas que a utilizam funcionam.

Mais do que isso, o APT é um sistema para armazenar e recuperar dados sobre quais fontes de software fornecem quais pacotes em quais versões e para agir com base nesses dados para executar automaticamente tarefas de gerenciamento de pacotes, como instalar e atualizar pacotes. Isso inclui acompanhar quais pacotes são necessários para que outros pacotes funcionem e escolher e instalar automaticamente pacotes apropriados para satisfazer essas dependências.

Por exemplo, quando digo ao apt-getutilitário para instalar o pacote chocolate-doomInstalar chocolate-doom , ele descobre quais outros pacotes precisam ser instalados para que funcionem e os recupera e instala automaticamente também:

$ 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.

Ferramentas gráficas como o Centro de Software, o Atualizador de Software / Gerenciador de Atualizações e o Synaptic executam funções semelhantes apt-get. Eles também usam o sistema APT - através de uma combinação de observação de suas regras e utilização da funcionalidade fornecida pelas bibliotecas principais - para alterar quais pacotes estão instalados, para dar ao usuário o que ele (geralmente) deseja, de tal maneira que as coisas (geralmente) continuam trabalhando.

Como e quando a /var/cache/apt/archivespasta é usada

Quando apt-get, aptitude, Software Center , Synaptic , Software Updater Update Manager / ou quaisquer outros pacotes de serviços públicos de gerenciamento de pacotes download (e os outros pacotes que dependem) de configurados fontes de software e instala-los, os pacotes baixados (ou seja, os ficheiros de arquivo .deb a partir do qual eles estão instalados) são armazenados /var/cache/apt/archives.

Se você possui um arquivo .deb no disco e o instala dpkg, isso não faz com que uma cópia seja feita /var/cache/apt/archives. Mas quando um programa que usa ou implementa o sistema APT de resolução automática de dependência e recuperação de pacotes baixa pacotes, é onde os armazena.

Embora os arquivos .deb para pacotes baixados automaticamente sejam armazenados e instalados a partir de /var/cache/apt/archives, eles não são realmente baixados diretamente nesse local. Em vez disso, existem downloads de arquivo .deb incompletos (ou seja, em andamento) /var/cache/apt/archives/partiale são movidos para /var/cache/apt/archivesquando terminar.

Os arquivos do pacote .deb permanecem em cache /var/cache/apt/archivesmesmo após a instalação bem-sucedida, caso sejam necessários para uso futuro. Mas você pode remover com segurança os arquivos .deb com idade suficiente, com pouca probabilidade de serem necessários novamente sudo apt-get autocleanou limpar completamente os .debarquivos em cache sudo apt-get clean. Veja man apt-getpara mais informações.

Para ilustrar a função sudo apt-get autocleane comandos semelhantes, bem como determinar se você deseja executá-los, você pode simular suas ações executando então com o -ssinalizador. É melhor passar esse sinalizador antes do autoclean(ou qualquer outro) verbo de ação. Normalmente, não é necessário executar um utilitário como root no sudouso -s, porque nenhuma alteração real está sendo feita.

Por exemplo, no meu sistema:

$ 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]
    ....

Os pacotes listados não seriam desinstalados ; em vez disso, apenas os arquivos .deb armazenados em cache seriam excluídos. (De fato, nenhum dos dois aconteceu quando eu executei esse comando, pois era apenas uma simulação.)

Outros arquivos baixados

O software instalado via dpkg(via APT ou de outra forma) não é realmente executado a partir do arquivo .deb que o fornece. Conforme observado na seção Informações de plano de fundo , os arquivos .deb são extraídos. É por isso que eles podem ser removidos e o pacote instalado continua funcionando.

Os arquivos em todo o sistema instalados a partir de pacotes .deb não são baixados para seus locais atuais - eles são extraídos dos arquivos .deb que os fornecem (ou talvez criados especialmente durante a instalação ou posteriormente, como é o caso). para alguns arquivos de configuração).

Mas os arquivos .deb não são os únicos arquivos baixados pelos utilitários de gerenciamento de pacotes. Frequentemente, outros arquivos são baixados que fornecem informações sobre onde existem pacotes.

Por exemplo, quando executo sudo apt-get update, a saída inclui linhas como:

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

Isso significa que um arquivo como http://us.archive.ubuntu.com/ubuntu/dists/utopic/main/binary-amd64/Packages.bz2 foi baixado e examinado para ajudar a atualizar o banco de dados do APT com informações sobre quais pacotes estão disponíveis ( e em que versões) dessa fonte de software específica. Você pode encontrar arquivos de pacotes e outros arquivos no /var/lib/apt/listdiretório As cópias armazenadas lá recebem nomes distintos us.archive.ubuntu.com_ubuntu_dists_utopic_main_binary-amd64_Packages, como , pois pode haver muitos desses arquivos.

Você perguntou apt-cacheespecificamente. Ele consulta o banco de dados do pacote, mas não faz nenhuma alteração no sistema nem baixa nenhum arquivo.

Arquivos baixados específicos para o Centro de Software

Quando o Ubuntu Software Center baixa dados para seu próprio uso, específicos e não relacionados à funcionalidade geral do APT (ou dpkg), ele os armazena /var/cache/software-center.

Por exemplo, no meu sistema (e na maioria dos sistemas), essa pasta contém uma xapiansubpasta:

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

O Software Center usa o Xapian para indexar informações para pesquisa rápida.

Arquivos baixados para outros utilitários relacionados

Alguns utilitários adicionais que funcionam com o sistema APT baixam e armazenam arquivos como parte de sua operação. apt-filenão está instalado por padrão no Ubuntu, mas pode ser instalado a partir do pacote apt-fileInstale o arquivo apt .

apt-filearmazena informações sobre quais arquivos são fornecidos por quais pacotes (mesmo para pacotes que não são instalados localmente). Ele obtém essas informações sobre o conteúdo dos pacotes baixando Contentsarquivos compactados :

$ 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

Quando apt-file updateé executado como root (como acima), esses arquivos são baixados no /var/cache/apt/apt-filediretório. Para descobrir isso, eu corri:

$ 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

Observe que as informações fornecidas nesta publicação fornecem vários exemplos de arquivos de dados transferidos e armazenados por utilitários de gerenciamento de pacotes no Ubuntu, mas não devem ser considerados uma lista exaustiva de instâncias em que esses arquivos são usados ​​e armazenados.


Obrigado. Faz apt-cache ou / e apt-filetambém baixa muitas coisas? Se sim, onde eles estão?
Tim

O que faz "Mas quando um programa que usa ou implementa o sistema APT de resolução automática de dependência e recuperação de pacotes baixa pacotes, é onde os armazena". significar?
Tim

@ Tim Expandi minha resposta consideravelmente, de uma maneira que espero que responda adequadamente a essas perguntas (e mais). Como sempre, seus comentários são bem-vindos - especialmente se algo não estiver claro.
Eliah Kagan

Obrigado "apt-cache consulta o banco de dados do pacote", o banco de dados está online ou no computador local? O apt-cache precisa de acesso à internet?
Tim

1
@Orian (Fico feliz que esta resposta tenha ajudado!) Você pode clicar na estrela da pergunta. Está logo abaixo da pontuação e das setas de votação da pergunta. Em seguida, a pergunta aparece na guia de favoritos do seu perfil . Somente perguntas podem ser adicionadas como favoritas. No caso desta resposta, atualmente é o único na questão. Outros podem ser publicados - embora você provavelmente deseje dar uma olhada neles também, pois às vezes novas respostas têm informações sobre novos desenvolvimentos em um tópico. Você pode usar os favoritos do seu navegador, que funcionam mesmo para obter respostas. Use o link de compartilhamento abaixo da resposta para abrir a página em uma resposta específica.
Eliah Kagan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.