“sudo: apt-get: comando não encontrado.” depois de remover alguns pacotes

3

Recentemente eu executei este comando:

sudo apt-get remove debian-keyring debian-archive-keyring

Para evitar essa mensagem de erro:

WARNING: The following packages cannot be authenticated!
  openerp

Meu plano estava executando esses comandos:

sudo apt-get remove debian-keyring debian-archive-keyring
sudo apt-get clean
sudo apt-get update
sudo apt-get -y install debian-keyring debian-archive-keyring

Por acaso recebi essa mensagem de erro ao tentar continuar executando o código:

[ps193731]$ sudo apt-get clean
sudo: apt-get: command not found
[ps193731]$ sudo apt-get -y install debian-keyring debian-archive-keyring
sudo: apt-get: command not found

Como informações adicionais, estou adicionando esta informação:
Resultado de sudo dpkg --configure -a :

[ps193731]$ sudo dpkg --configure -a
dpkg: dependency problems prevent configuration of apt:
 apt depends on libstdc++6 (>= 4.6); however:
  Version of libstdc++6 on system is 4.4.5-8.
dpkg: error processing apt (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of libapt-pkg4.12:
 libapt-pkg4.12 depends on libstdc++6 (>= 4.6); however:
  Version of libstdc++6 on system is 4.4.5-8.
dpkg: error processing libapt-pkg4.12 (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 apt
 libapt-pkg4.12

Resultado de apt-cache policy libstdc++6 apt libapt-pkg4.12 :

[ps193731]$ apt-cache policy libstdc++6 apt libapt-pkg4.12
apt-cache: /usr/lib/libstdc++.so.6: version 'GLIBCXX_3.4.15' not found (required by apt-cache)
apt-cache: /usr/lib/libstdc++.so.6: version 'GLIBCXX_3.4.15' not found (required by /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12)

Resultado de dpkg -l libstdc++6 apt libapt-pkg4.12 :

[ps193731]$ dpkg -l libstdc++6 apt libapt-pkg4.12
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                       Version                    Description
+++-==========================-==========================-====================================================================
iU  apt                        0.9.7.9+deb7u1             commandline package manager
iU  libapt-pkg4.12             0.9.7.9+deb7u1             package managment runtime library
ii  libstdc++6                 4.4.5-8                    The GNU Standard C++ Library v3

Resultado de sudo dpkg -C :

[ps193731]$ sudo dpkg -C
The following packages have been unpacked but not yet configured.
They must be configured using dpkg --configure or the configure
menu option in dselect for them to work:
 apt                  commandline package manager
 libapt-pkg4.12       package managment runtime library

Conteúdo de /etc/apt/sources.list :

# Generated by ndn-autoupdate

deb http://debian.di.newdream.net/ squeeze ndn
deb http://debian.newdream.net/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb http://debian.newdream.net/ squeeze-updates main contrib non-free
deb http://www.backports.org/debian/ squeeze-backports main contrib non-free
deb http://nightly.openerp.com/7.0/nightly/deb/ ./

Eu também tenho o problema de instalar o libstdc ++ 6 versão 4.6 ou superior para o debian squeeze.
Porque não há libstdc ++ 6 versão 4.6 ou superior para o squeeze debian.
Como posso corrigir o comando apt para ser utilizável novamente?

    
por Akmal Dirgantara 08.02.2014 / 04:12

3 respostas

4

apt-get -s remove debian-keyring debian-archive-keyring
NOTE: This is only a simulation!
The following packages will be REMOVED:
  apt apt-show-versions debian-archive-keyring debian-keyring debtags
  python-software-properties python3-software-properties
  software-properties-common tasksel tasksel-data unattended-upgrades
  upgrade-system
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt debian-archive-keyring (due to apt)
0 upgraded, 0 newly installed, 12 to remove and 6 not upgraded.

Então, o que você fez ... você literalmente removeu o apt e ignorou o aviso, então o inferno se soltou. Nunca, remova coisas sem verificar e verifique novamente o que está sendo feito.

Então, para resumir:

Se você usa 32 bits:

wget http://ftp.us.debian.org/debian/pool/main/a/apt/apt_0.8.10.3+squeeze1_i386.deb http://ftp.us.debian.org/debian/pool/main/g/gcc-4.4/libstdc++6_4.4.5-8_i386.deb

se você usa 64 bits:

wget http://ftp.us.debian.org/debian/pool/main/a/apt/apt_0.8.10.3+squeeze1_amd64.deb http://ftp.us.debian.org/debian/pool/main/g/gcc-4.4/libstdc++6_4.4.5-8_amd64.deb

Faça o download do chaveiro:

wget http://ftp.us.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2012.4_all.deb

Agora remova e instale

sudo dpkg -P libapt-pkg4.12 apt
sudo dpkg -i libstdc++6_4.4.5-8_*.deb apt_0.8.10.3+squeeze1*.deb debian-archive-keyring_2012.4_all.deb

Verifique se tudo está bem:

sudo dpkg --configure -a
sudo apt-get check

Agora isso deve ser uma lição de vida. Não mexa com algo que não deve ser mexido.

Esta resposta é igualmente válida para qualquer distribuição baseada no Debian, apenas altere o nome do host do Debian para sua distribuição, por exemplo:

  • Ubuntu: http://mirrors.kernel.org/ubuntu/
  • Menta: http://packages.linuxmint.com/pool/

E o caminho correto, ou seja:

http://host/ubuntu/pool/main/g/gcc-4.4/libstdc++6_4.4.5-8_amd64.deb
    
por 08.02.2014 / 17:34
1

Como pode ser visto nos comentários, o problema é que o poster de alguma forma instalou o pacote para o Wheezy on Squeeze, ou seja, apt e libapt-pkg4.12 . O pôster verificou que esses eram os únicos pacotes configurados incorretamente, fazendo

[ps193731]$ sudo dpkg -C
The following packages have been unpacked but not yet configured.
They must be configured using dpkg --configure or the configure
menu option in dselect for them to work:
 apt                  commandline package manager
 libapt-pkg4.12       package managment runtime library
Portanto, o remédio óbvio é baixar manualmente (já que o apt está atualmente quebrado) os pacotes do Squeeze apt para o arco do pôster e instalá-lo usando dpkg -i . libapt-pkg4.12 não existe para queeze, então deve ser removido.

O pôster não especificou seu arco, mas assumindo que amd64 este link funcione:

link

Se for i386 , substitua por amd64 . Então

ETAPA 1:

dpkg -P libapt-pkg4.12

ETAPA 2:

wget -c http://ftp.us.debian.org/debian/pool/main/a/apt/apt_0.8.10.3+squeeze1_amd64.deb

ETAPA 3:

dpkg -i apt_0.8.10.3+squeeze1_amd64.deb

NOTA: É possível que apenas o PASSO 1 + executando um dpkg --configure -a será suficiente para instalar apt , mas ainda assim será o apt errado para squeeze, então os passos anteriores são preferíveis.

EDIT: @Braiam ressalta que o dpkg não removerá libapt-pkg4.12 se houver algo dependendo dele. Mas você tem o wheezy apt dependendo disso. Então você pode precisar fazer

dpkg -P --force libapt-pkg4.12

Alternativamente, como sugere o @Braiam, pode-se fazer

dpkg -P libapt-pkg4.12 apt

A última versão é provavelmente preferível, pois é melhor evitar o uso de --force , exceto quando absolutamente necessário.

    
por 08.02.2014 / 15:42
0

Faça o download do (s) pacote (s) apt para um diretório local e instale-os diretamente com dpkg --install .

(ou tente aptitude se estiver instalado)

Observação: a resposta para a pergunta não solicitada ... o openerp não está assinado, então você sempre verá esse aviso.

    
por 08.02.2014 / 05:22