Como fazer o download do APT e de todas as dependências dele?

4

Estou tentando baixar o APT e todas as suas dependências para poder usar o dpkg para instalar o APT offline. Como você não pode simplesmente usar apt-get download apt , a abordagem que tomei é tentar gerar uma lista de dependências que eu possa usar manualmente apt-get download package-name para recuperar.

Eu tentei estes:

apt-cache showpkg package-name

apt-cache depends packagename

dpkg -I pkg-name1_version.deb

Eles não funcionam corretamente. Eu preciso de uma maneira de listar não apenas as dependências do APT, mas também as dependências de dependência; a árvore inteira. De acordo com " sudo apt-get install apt --reinstall ", o APT tem 302 depenências + subdependências. As listas geradas usando as respostas que encontrei aparecem apenas para listar o primeiro nível de dependências, porque elas são muito curtas.

    
por please delete me 06.07.2014 / 22:06

4 respostas

2

Ou eu estou gravemente errado, ou há algo fundamentalmente errado com apt tendo 302 dependências + sub-dependências. Como qualquer declaração de distribuição pode ser leve se depender de apt , então? Pelo menos, no meu laptop, reinstalar apt não menciona nenhuma dependência, então não tenho certeza de onde você obteve esse número. Eu preparei um script para verificar. No Ubuntu 14.04, eu recebo 24 dependências:

dpkg gcc-4.8-base gcc-4.9-base gnupg gpgv install-info libacl1 libapt-pkg4.12 libattr1 libbz2-1.0 libc6 libgcc1 liblzma5 libpcre3 libreadline6 libselinux1 libstdc++6 libtinfo5 libusb-0.1-4 multiarch-support readline-common tar ubuntu-keyring zlib1g

Eu aprendi sobre apt-rdepends : link

Eu instalei e executei, filtrou as dependências, classificou e comparou para encontrar a mesma lista que eu obtive com o script. Portanto, posso concluir com segurança que esses são todos os pacotes que você precisa instalar apt . Eu acho que um desses gcc-4.[89] pode ser ignorado dependendo de qual você deseja instalar. Note que esta lista foi reduzida do Ubuntu 12.04, na qual executar este script (em um servidor) me deu 28 dependências:

coreutils debconf dpkg gcc-4.6-base gnupg gpgv install-info libacl1 libapt-pkg4.12 libattr1 libbz2-1.0 libc6 libc-bin libgcc1 liblzma5 libreadline6 libselinux1 libstdc++6 libtinfo5 libusb-0.1-4 multiarch-support perl-base readline-common tar tzdata ubuntu-keyring xz-utils zlib1g

Presumivelmente, os pacotes foram reduzidos. A falta de dependência em coreutils e debconf é surpreendente, devo dizer.

Em uma nota secundária, concordo com esse bug dado na página apt-rdepends man:

  apt-rdepends exists.  This functionality should really reside in apt-
   cache itself.

A ferramenta apt-cache fornece quatro comandos relevantes que Braiam , gramática não ortodoxa e eu tenho discutido:

  • depends : lista as dependências (avançadas). Isso também inclui todos os pacotes recomendados e também inclui pacotes nas seções Breaks , Conflicts e Substitui . Nós só precisamos olhar para os pacotes Depends e Pre-Depends .
  • rdepends : há um confronto de nomenclatura infeliz com apt-rdepends . Tanto o apt-rdepends como o meu script acima verificam as dependências r ecursivamente , enquanto o comando apt-cache está procurando r everse dependências - pacotes que dependem do pacote em consideração. Use este comando para verificar possíveis quebras causadas por um pacote, dependendo de uma versão específica do que você está mudando.
  • showsrc : Esse comando fornece informações sobre o pacote de origem que foi usado para construir um pacote. Um único pacote fonte pode ser usado para construir múltiplos pacotes binários - cada um dos quais pode ou não depender dos outros. apt , por exemplo, depende de libapt-pkg , mas não de libapt-inst , os quais são fornecidos pelo apt source package . Use este comando para obter informações sobre outros pacotes que você deve instalar, que podem não ser dependências, mas que podem ser necessários para maior utilidade,
  • showpkg : Este comando, entre outras coisas, lista as dependências reversa e direta. As dependências reversas estão listadas em uma lista simples, mas as mais avançadas são um pouco desordenadas - eu ainda não tenho certeza do que os números significam. Em qualquer caso, os comandos individuais depends e rdepends são mais claros.

Assim, se precisarmos examinar todos os pacotes dos quais um pacote pode depender direta ou indiretamente, apt-rdepends é o que precisamos.

    
por muru 07.07.2014 / 00:52
2

Existem apenas 4 pacotes com os quais você deve se preocupar: libapt-pkg4.12 , apt-utils , libapt-inst1.5 e apt . As outras dependências dos pacotes apt são padrão para todas as instalações do Ubuntu. Por que eu digo apenas esses 4 pacotes?

apt-cache showsrc apt
[...]
Package-List: 
 apt deb admin important arch=any
 apt-doc deb doc optional arch=all
 apt-transport-https deb admin optional arch=any
 apt-utils deb admin important arch=any
 libapt-inst1.5 deb libs important arch=any
 libapt-pkg-dev deb libdevel optional arch=any
 libapt-pkg-doc deb doc optional arch=all
 libapt-pkg4.12 deb libs important arch=any

Como você pode ver, os únicos pacotes que realmente vêm de fontes apt e são importantes são esses.

Através do pacote libapt-pkg4.12 é bastante estável (não existe uma versão experimental no momento, todos os outros pacotes têm uma nova versão) é recomendado que você os instale todos juntos.

Lembre-se também que produto desta atualização, você pode quebrar as dependências reversas de todos os pacotes. Primeiro, faça apt-cache rdepends libapt-pkg4.12 apt-utils libapt-inst1.5 apt e verifique qualquer pacote que dependa de uma versão específica do apt.

    
por Braiam 07.07.2014 / 01:02
1

Você pode usar o Cubo nesse caso. O Cube faz o download de aplicativos e de todas as suas dependências, e você pode definir se deseja usar o apt-get ou o dpkg para instalá-los. Basta selecionar o dpkg como instalador padrão ao invés do apt-get em "Configurações = > Preferências = > Guia Instalador"

Confira este tutorial para saber mais: link

    
por Camicri 08.07.2014 / 05:28
1

O Xubuntu inclui na instalação base apt-offline para contornar esta situação, desde que você já tenha o apt no lugar. Ele determina quais dependências precisam ser baixadas e mapeadas para que você não tenha problemas com esses pacotes de download. O conjunto de documentação on-line contém um capítulo sobre como usar a ferramenta .

    
por Stephen Michael Kellat 08.07.2014 / 05:39

Tags