Como resolver “dpkg: erro: 1 programa esperado não encontrado no PATH ou não executável”?

3

Eu instalei o servidor LAMP usando o comando sudo apt-get install lamp-server^ . Depois disso, sempre que eu abro o terminal, o seguinte erro começa a aparecer:

 bash: /home/gaja/.bashrccu: No such file or directory 
 bash: /home/gaja/.bashrc: line 4: syntax error near unexpected token (' 
 bash: /home/gaja/.bashrc: line 4: see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)'

Eu poderia me livrar desse problema usando a resposta dada aqui .

No entanto, agora o problema é que não consigo instalar nada usando o comando sudo apt-get .

Estou tentando me tornar root e, em seguida, execute novamente o comando sudo apt-get install lamp-server^ , que fornece a seguinte saída de erro:

dpkg: warning: 'tar' not found in PATH or not executable
dpkg: error: 1 expected program not found in PATH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin
E: Sub-process /usr/bin/dpkg returned an error code (2)

A seguir está a saída completa da execução dos comandos:

gaja@gaja-System-Product-Name:~$ sudo su
[sudo] password for gaja:

root@gaja-System-Product-Name:/home/gaja# sudo apt-get install lamp-server^
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'libdbi-perl' for task 'lamp-server'
Note, selecting 'perl-modules' for task 'lamp-server'
Note, selecting 'libaprutil1-dbd-sqlite3' for task 'lamp-server'
Note, selecting 'perl' for task 'lamp-server'
Note, selecting 'apache2-bin' for task 'lamp-server'
Note, selecting 'libapache2-mod-php5' for task 'lamp-server'
Note, selecting 'ssl-cert' for task 'lamp-server'
Note, selecting 'mysql-server-5.5' for task 'lamp-server'
Note, selecting 'mysql-client-core-5.5' for task 'lamp-server'
Note, selecting 'libclass-isa-perl' for task 'lamp-server'
Note, selecting 'mysql-server' for task 'lamp-server'
Note, selecting 'libapr1' for task 'lamp-server'
Note, selecting 'php5-readline' for task 'lamp-server'
Note, selecting 'libaprutil1' for task 'lamp-server'
Note, selecting 'libwrap0' for task 'lamp-server'
Note, selecting 'libdbd-mysql-perl' for task 'lamp-server'
Note, selecting 'apache2-mpm-prefork' for task 'lamp-server'
Note, selecting 'libhtml-template-perl' for task 'lamp-server'
Note, selecting 'mysql-client-5.5' for task 'lamp-server'
Note, selecting 'libaio1' for task 'lamp-server'
Note, selecting 'mysql-common' for task 'lamp-server'
Note, selecting 'libmysqlclient18' for task 'lamp-server'
Note, selecting 'mysql-server-core-5.5' for task 'lamp-server'
Note, selecting 'libterm-readkey-perl' for task 'lamp-server'
Note, selecting 'php5-mysql' for task 'lamp-server'
Note, selecting 'apache2-data' for task 'lamp-server'
Note, selecting 'apache2' for task 'lamp-server'
Note, selecting 'php5-common' for task 'lamp-server'
Note, selecting 'php5-cli' for task 'lamp-server'
Note, selecting 'libswitch-perl' for task 'lamp-server'
Note, selecting 'libaprutil1-ldap' for task 'lamp-server'
Note, selecting 'tcpd' for task 'lamp-server'
libaio1 is already the newest version.
libapr1 is already the newest version.
libaprutil1 is already the newest version.
libaprutil1-dbd-sqlite3 is already the newest version.
libaprutil1-ldap is already the newest version.
libclass-isa-perl is already the newest version.
libdbd-mysql-perl is already the newest version.
libdbi-perl is already the newest version.
libhtml-template-perl is already the newest version.
libswitch-perl is already the newest version.
libterm-readkey-perl is already the newest version.
libwrap0 is already the newest version.
perl is already the newest version.
perl-modules is already the newest version.
ssl-cert is already the newest version.
tcpd is already the newest version.
apache2 is already the newest version.
apache2-bin is already the newest version.
apache2-data is already the newest version.
apache2-mpm-prefork is already the newest version.
libapache2-mod-php5 is already the newest version.
libmysqlclient18 is already the newest version.
mysql-client-5.5 is already the newest version.
mysql-client-core-5.5 is already the newest version.
mysql-common is already the newest version.
mysql-server is already the newest version.
mysql-server-5.5 is already the newest version.
mysql-server-core-5.5 is already the newest version.
php5-cli is already the newest version.
php5-common is already the newest version.
php5-mysql is already the newest version.
php5-readline is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 230 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
dpkg: warning: 'tar' not found in PATH or not executable
dpkg: error: 1 expected program not found in PATH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin
E: Sub-process /usr/bin/dpkg returned an error code (2)

root@gaja-System-Product-Name:/home/gaja# sudo apt-get install apache2
Reading package lists... Done
Building dependency tree       
Reading state information... Done
apache2 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 230 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
dpkg: warning: 'tar' not found in PATH or not executable
dpkg: error: 1 expected program not found in PATH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin
E: Sub-process /usr/bin/dpkg returned an error code (2)
root@gaja-System-Product-Name:/home/gaja# 

Algumas das etapas de solução de problemas que recebi por sugestão de outros membros:

$ ls -l /bin/tar
ls: cannot access /bin/tar: No such file or directory

$ apt-cache policy tar
tar: Installed: 1.26+dfsg-8 Candidate: 1.26+dfsg-8 Version table: *** 1.26+dfsg-8 0 500 in.archive.ubuntu.com/ubuntu saucy/main i386 Packages 100 /var/lib/dpkg/status

Eu também tentei executar o seguinte comando depois de mudar para root , mas isso não ajuda:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
    
por raja 03.01.2014 / 12:58

3 respostas

0

A variável de ambiente $PATH da raiz não está definida corretamente, portanto, dpkg não pode encontrar tar para extrair os pacotes.

Tente o seguinte depois de mudar para o root:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Em seguida, execute o comando apt-get novamente.

    
por chaos 03.01.2014 / 13:10
0

Da sua pergunta e dos comentários a seguir, fica claro que tar está instalado, mas o executável /bin/tar está faltando. Você precisa adicioná-lo manualmente, pois seu dpkg não funcionará sem tar .

Primeiro, verifique se os seguintes arquivos já estão lá,

ls -l /etc/rmt
ls -l /usr/lib/mime/packages/tar
ls -l /usr/sbin/rmt-tar
ls -l /usr/sbin/tarcat

Não estou listando arquivos doc e man. Uma lista completa pode ser encontrada aqui

Você pode baixar o pacote .deb para tar manualmente em packages.ubuntu.com . Baixe o pacote exato para sua arquitetura.

Em seguida, extraia o arquivo .deb em um sistema no qual o gerenciador de archive está disponível. Se você extrair o arquivo .deb , haverá um diretório chamado bin no diretório principal. você precisa copiar o executável tar do diretório bin extraído para /bin/ .

Você pode primeiro colocar o executável tar em seu diretório pessoal. Em seguida, use o seguinte no terminal para copiá-lo para /bin ,

sudo cp tar /bin/
sudo chmod 755 /bin/tar

apenas verifique o dono do /bin/tar é root. e deve ter permissão de execução para todos. A saída de ls -l /bin/tar deve ser semelhante,

-rwxr-xr-x 1 root root ...

Isso deve funcionar. talvez seja necessário instalar os pacotes sugeridos se ainda não estiverem instalados.

    
por souravc 06.01.2014 / 11:11
0

Eu tive um erro semelhante ao tentar fazer uma atualização de distribuição do Debian Squeeze para Wheezy (eu sei que este é um Ubuntu Stack Exchange, mas a minha solução pode funcionar para você). Aqui está o comando que executei quando recebi o erro:

sudo apt-get dist-upgrade

Aqui está parte do erro:

dpkg: 3 expected programs not found in PATH or not executable.

Eu mudei para o usuário root com o seguinte comando e tentei novamente:

su root
apt-get dist-upgrade

E a instalação foi bem sucedida sem erros.

    
por thohl 30.10.2014 / 13:37