Ich habe versucht, das Dienstprogramm zu installieren bsd-mailx
. Das Paket wurde installiert, aber ich wundere mich über den Fehler.
Dies ist der Fehler, den ich erhalte:
Preconfiguring packages ...
dpkg: warning: 'ldconfig' not found in PATH or not executable.
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable.
dpkg: error: 2 expected programs 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)
Antwort1
Zunächst einmal sind die Zeilen, die Sie wirklich interessieren, folgende:
dpkg: warning: 'ldconfig' not found in PATH or not executable.
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable.
Diese Fehler wurden von Debian- und Ubuntu-Benutzern mehrfach gemeldet (Sie können sie tatsächlich googeln, um weitere Informationen zu erhalten). Es scheint, als PATH
wäre die Variable nicht richtig gesetzt, wenn der Benutzer versucht, einen Befehl über auszuführen sudo
, was wahrscheinlich das ist, was Sie versuchen.
Lösung 1: Legen Sie sudo
den sicheren Standardpfad fest
Öffnen Sie die Datei /etc/sudoers
, indem Sie sie visudo
in Ihrem Terminal ausführen, und stellen Sie sicher, dass sie die folgende Zeile enthält:
Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Weitere Informationen zu diesem Problem finden SieHier(Probleme und Tipps > PATH nicht festgelegt).
Lösung 2: Verwenden Sie direkt das Root-Konto
Verwenden Sie nicht sudo
, sondern wechseln Sie einfach zu root
, um Ihre Befehle auszuführen. Führen Sie dazu einen der folgenden Befehle aus:
$ sudo -i
$ su
Sobald Sie als Root angemeldet sind, führen Sie Ihre apt-get
Befehle einfach erneut aus:
# apt-get ...
Möglicherweise müssen Sie PATH
jedoch zuerst Root-Rechte festlegen. Bearbeiten Sie diese /root/.bashrc
(natürlich mit Root-Rechten) und fügen Sie die folgende Zeile hinzu:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PATH
Lösung 3: Versuchen Sie, die Variable sudo
zur Ausführungszeit zu übergeben .
Stellen Sie dem Aufruf einfach sudo
die Neudefinition der PATH
Variablen voran:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin sudo apt-get ...
Antwort2
irgendwie hatte ich das gleiche Problem.
Bitte lesen Sie Ihre Fehlermeldung sorgfältig durch und Sie werden die Lösung finden. Dort steht ein Hinweis, der besagt:
Hinweis: Der Pfad des Root-Benutzers sollte normalerweise /usr/local/sbin, /usr/sbin und /sbin enthalten.
Dann habe ich meinen Pfad überprüft und irgendwie fehlte /sbin in meinem Pfad.
echo $PATH
dann habe ich hinzugefügt und das Problem war weg. :)
export PATH="$PATH:/sbin"
Tscharam!
Antwort3
Da die Frage keine Beschreibung enthält, ist es schwer, das genaue Problem in dieser Situation zu bestimmen. Ich hatte jedoch kürzlich dasselbe Problem:
user@debian:su
Password:
root@debian:/home/user/Downloads# dpkg -i [Some package]
dpkg: warning: 'ldconfig' not found in PATH or not executable
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable
dpkg: error: 2 expected programs not found in PATH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin
su -
Die Lösung bestand darin, anstelle von zu verwenden su
(was im Allgemeinen besser ist, wie indie Antworten auf diese Frage):
user@debian:su -
Password:
root@debian:~# cd /home/user/Downloads/
root@debian:/home/user/Downloads# dpkg -i [Some package]
Antwort4
Keine der hier gezeigten Lösungen hat mir geholfen, also erkläre ich, was bei mir passiert ist und was ich getan habe, um das Problem zu beheben:
Ich habe versucht, Insync in meinem Q4OS-System zu installieren, aber es ist mir nicht gelungen, weil die App libc6 >= 2.32 erfordert und Q4OS 2.31 verwendet. Ich habe eine libc6-Deb von 2.32 gefunden und dann begann der Albtraum. Mein gesamtes System wurde dadurch zerstört. Es funktionierte apt-get
nicht mehr und es heißt, das System benötigt libc6 2.31, um richtig zu funktionieren. Zu diesem Zeitpunkt wusste ich nicht, wie ich die Version herunterstufen konnte. Nach einem Neustart startete das System also einfach nicht und blieb beim Booten mit der Meldung hängen:
A start job is running for Hold until boot process finishes up (Xmin Xs/no limit)
Ich habe erfolglos versucht, das Terminal zu ändern. Hoffentlich lief mein Linux unter VMWare und ich konnte mich per SSH mit dem Computer verbinden.VM -> SSH -> Connect to SSH...
Danach habe ich vieles erfolglos ausprobiert. Ich habe versucht, ein Upgrade durchzuführen mit:
sudo apt install upgrade
und die Meldung besagt, dass ich rennen musste:
sudo apt --fix-broken install
Aber als ich versuchte, das auszuführen, hieß es, dass viele Pakete entfernt würden, darunter auch q4os-desktop
das eigene. Nun, ich akzeptierte die Bedingungen und versuchte es. Was könnte ich noch mehr verlieren?
Danach wurde es noch schlimmer. Ich konnte nichts mehr ausführen. Ich bekam einen ähnlichen Fehler wie bei der Frage:
Preconfiguring packages ...
dpkg: warning: 'ldconfig' not found in PATH or not executable.
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable.
dpkg: error: 2 expected programs 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)
Das Problem war jedoch nicht der PATH selbst, sondern dass ldconfig Teil von libc6 ist und entfernt wurde. Ich konnte nichts tun, da fast alles von libc6 und ldconfig abhängt. Ich habe versucht, libc6 aus dem Quellcode zu kompilieren, aber ohne Erfolg. Es hat viele Abhängigkeiten und als ich versuchte, eine Abhängigkeit zu installieren, versuchte die Bibliothek, etwas von libc6 zu verwenden. Eine Art Abhängigkeitsschleife.
Also habe ich das System mit der Q4OS-Live-CD neu gestartet und einfach die Binärdatei ldconfig nach kopiert /usr/sbin/ldconfig
. Gut! Jetzt apt-get
funktioniert es wieder (nicht perfekt, aber ...). Ich habe herausgefunden, wie man die Bibliothek herunterstuft:
sudo apt install libc6=2.31-13+deb11u3
Wenn Sie nicht sicher sind, welche Version Sie verwenden sollen, führen Sie Folgendes aus:
apt list --installed | grep libc6
auf der Live-CD. Die Ausgabe sollte etwa so aussehen:
libc6/stable,now 2.31-13+deb11u3 amd64 [installed]
Danach konnte ich Q4OS erneut installieren:
sudo apt install q4os-desktop
Nach einem Neustart war alles wieder normal!
Aber jetzt, wenn ich Insync ausführe, stürzt die App nach 5 Sekunden ab.