Estou executando uma compilação personalizada de Debian buster/sid
. Eu quebrei um monte de coisas aparentemente executando incorretamente apt-get dist-upgrade
(acho que foi isso que aconteceu). Portanto, o ambiente de desktop manager \ desktop não carrega mais e acabo de obter um shell de linha de comando.
O Aptitude e o apt-get estão quebrados, assim como o dpkg.
apt update, aptitude update e apt-get update falha e dá muitos erros ao tentar rodar, no entanto meu /etc/apt/sources.list parece bem
deb http://ftp.ie.debian.org/debian unstable main contrib non-free
deb-src http://ftp.ie.debian.org/debian unstable main contrib non-free
deb http://ftp.ie.debian.org/debian experimental main contrib non-free
deb-src http:// ftp.ie.debian.org/debian experimental main contrib non free
deb https://dl.winehq.org/wine-builds/debian sid main
deb https://dl.winehq.org/wine-builds/ubuntu sid main
erros na atualização como este:
Err:2 http://ftp.ie.debian.org/debian unstable InRelease
Couldn't execute /usr/bin/apt-key to check /var/lib/apt/lists/partial/ftp.ie.debian.org_debian_dists_experimental_InRelease
e
E: Problem executing scripts APT::Update::Post-Invoke-Success '/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/gdbus call --system --dest org.freedesktop.PackageKit --object-path /org/freedesktop/PackageKit --timeout 4 --method org.freedesktop.PackageKit.StateHasChanged cache-update > /dev/null; /bin/echo > /dev/null'
E: Sub-process returned an error code
atualização do aptitude, apt upgrade ou apt-get upgrade parecem estar quebrados devido ao dpkg estar quebrado
O dpkg apresenta este erro:
dpkg: warning: 'sh' not found in PATH or not executable
dpkg: error: 1 expected
no entanto echo $PATH
retorna, o que parece bem para mim
/home/ferg/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
se eu tentar sh
, obtenho
The program 'sh' is currently not installed. To run 'sh' please ask your administrator to install the package 'dash'
Se eu tentar sudo apt-get install dash
diz-me dash is already the newest version (0.5.8-2.6)
e se eu continuar
E: Sub-process /usr/sbin/dpkg-preconfigure --apt || true returned an error code (100)
E: Failure running script /usr/sbin/dpkg/preconfigure --apt || true
Se eu executar sudo nano /etc/apt/apt.conf.d/70debconf
e comentar a linha DPkg::Pre-Install-Pkgs {"/usr/sbian/dpkg-preconfigure --apt || true";};
então o aptitude falha com
dpkg: warning: 'sh' not found in PATH or not executable
dpkg: error: 1 expected
Portanto, não posso reinstalar os pacotes necessários para restaurar o sistema porque o dpkg (e, portanto, aptitude, apt-get, apt) está quebrado, aparentemente porque sh não está no meu PATH. No entanto, todos os diretórios corretos estão no meu PATH. Eu estou supondo que corrigir este problema com sh permitiria que o dpkg e o aptitude funcionem novamente, mas eu estou querendo saber qual é precisamente o problema com sh?
Agradeço antecipadamente por qualquer ajuda.
Atualização:
ls -l /bin/bash
retorna
-rwxr-xr-x 1 root root 1099016 May 15 2017 /bin/bash
ls -l /bin/sh
retorna
lrwxrwxrwx 1 root root 4 Jun 28 2017 /bin/sh -> dash
ls -l /bin/dash
retorna
ls: cannot access 'bin/dash': No such file or directory
Então / bin / sh parece redirecionar para / bin / dash que foi deletado de alguma forma?
sudo apt-get install --reinstall dash
falha com:
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
E: Internal Error, No file name for dash:amd64
A execução de sudo ln -sf bash /bin/sh
e, em seguida, sudo apt-get install --reinstall dash
falha com o mesmo erro acima.
Procurando por esse problema e suas variantes no Google, encontrei várias soluções relacionadas ao PATH e às permissões do usuário. Verifiquei os arquivos relacionados a ele, incluindo /etc/sudoers
/root/.bashrc
e /root/.profile
e% código%. Na maioria desses casos, os usuários conseguiram resolver o problema simplesmente definindo seu caminho corretamente (geralmente faltavam os diretórios /etc/profile
ou /sbin
). Como dito acima, meu PATH parece conter todos os diretórios relevantes, quer eu execute /usr/sbin
normalmente ou como root ou echo $PATH
. Alguns usuários também estavam tendo problemas com permissões ou com sudo echo $PATH
. Eu também tentei executar vários comandos sudo
aptitude
e apt
e apt-get
como root usando dpkg
, o que sugere que meu problema é diferente.