Debian - obtém todas as dependências atualizadas quando elas 'não serão instaladas'

4

Eu tenho tentado instalar o Percona Toolkit no meu servidor Debian (wheezy). Eu baixei de acordo com as instruções: wget percona.com/get/percona-toolkit.deb

em seguida, instalou-o sudo dpkg -i percona-toolkit.deb

Mas me disseram que faltavam dependências que não estavam instaladas e não seriam instaladas.

Eu tenho baixado esses um por um, mas cada um parece ter uma dependência ausente dele próprio. Também notei que a maioria deles está instalada, mas o kit de ferramentas requer uma versão posterior. Em um caso, a única versão que encontrei sugeriu que ele foi projetado para a próxima versão do Debian.

Até agora eu fiz o download:

libio-socket-ssl-perl_2.002-2_all.deb
libnet-ssleay-perl_1.65-1+b1_amd64.deb
libterm-readkey-perl_2.30-4+b2_amd64.deb

e agora quer

perl (>= 5.20.0-4)
perlapi-5.20.0
libc6 (>= 2.14)

Existe uma maneira fácil de baixar / instalar o sistema de uma só vez, e é provável que ele cause problemas de estabilidade se eu instalar versões superiores ao padrão já instalado?

UPDATE - saída de apt-get -f install :

sudo apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages will be REMOVED:
  libio-socket-ssl-perl libnet-ssleay-perl percona-toolkit
0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
3 not fully installed or removed.
After this operation, 7,319 kB disk space will be freed.
Do you want to continue [Y/n]? y
(Reading database ... 26051 files and directories currently installed.)
Removing percona-toolkit ...
Removing libio-socket-ssl-perl ...
Removing libnet-ssleay-perl ...
Processing triggers for man-db ...
    
por IGGt 25.03.2015 / 17:17

2 respostas

4

Primeiro, tente instalar pelo que falhará.

dpkg -i percona-toolkit.deb

Em seguida, faça o seguinte para instalar e corrigir as dependências ausentes.

apt-get install --fix-missing -f

Em seguida, tente novamente instalar o pacote .deb

dpkg -i percona-toolkit.deb
    
por 25.03.2015 / 17:25
3

Primeiro, execute apt-get -f install para tornar o APT feliz com o estado atual do sistema. Ter pacotes parcialmente instalados ou semi-removidos ou dependências quebradas tende a colocar o APT em um estado em que ele não fará o que você disser, mesmo que isso seja teoricamente possível, porque isso não afetaria os pacotes quebrados. / p>

dpkg é uma ferramenta de baixo nível que faz apenas o que você diz explicitamente. Verifica dependências, mas é incapaz de satisfazê-las. apt-get e outras ferramentas APT são ferramentas de alto nível que gerenciam dependências, entre outras coisas. Por exemplo, se você disser apt-get para instalar um pacote, ele também baixará automaticamente as dependências do pacote; mas se você disser dpkg para instalar um pacote (que você deve fornecer em um arquivo local) e as dependências necessárias não estiverem instaladas, ele apenas sinalizará um erro.

Quando você instala pacotes de terceiros manualmente com dpkg , primeiro é necessário instalar as dependências. Você pode ver o que um arquivo deb depende do comando

dpkg-deb -I percona-toolkit.deb

Veja a linha Depends: e instale os pacotes listados lá. Esta é uma lista separada por vírgula; Se alguns nomes de pacotes estiverem separados por | , você precisará instalar apenas um deles. Verifique também a linha Recommends: , que lista pacotes que não são necessários para todos, mas são muito úteis ou são necessários para um dos recursos do pacote.

Alternativamente, você pode iniciar a instalação com

dpkg -i percona-toolkit.deb

veja quais pacotes ele está faltando e (assumindo que esses pacotes são fornecidos pela distribuição) use imediatamente apt-get para instalá-los. Então, no seu caso:

apt-get install libio-socket-ssl-perl libnet-ssleay-perl libterm-readkey-perl
apt-get -f install

(O segundo comando se encarrega de terminar a instalação do percona-toolkit que foi interrompido no meio devido a falta de dependências.)

Se você tiver vários arquivos deb que não são fornecidos pela sua distribuição e eles têm dependências entre si, instale-os na ordem dada por suas dependências ou passe-os todos em uma única linha de comandos dpkg -i .

    
por 26.03.2015 / 01:33