dpkg kann ldconfig/start-stop-daemon nicht in der PATH-Variable finden

dpkg kann ldconfig/start-stop-daemon nicht in der PATH-Variable finden

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 PATHwä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 sudoden sicheren Standardpfad fest

Öffnen Sie die Datei /etc/sudoers, indem Sie sie visudoin 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-getBefehle einfach erneut aus:

# apt-get ...

Möglicherweise müssen Sie PATHjedoch 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

PATHLösung 3: Versuchen Sie, die Variable sudozur Ausführungszeit zu übergeben .

Stellen Sie dem Aufruf einfach sudodie Neudefinition der PATHVariablen 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-getnicht 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-desktopdas 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-getfunktioniert 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.

verwandte Informationen