dpkg, PATH değişkeninde ldconfig / start-stop-daemon'u bulamıyor


41

bsd-mailxPaketin kurulduğuna dair yardımcı programı kurmaya çalışıyordum ancak hatayı merak ediyorum.

Bu alıyorum hatadır:

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)

$PATHLütfen yankı çıktısını gönderir misiniz ?
kaos

@ kaos, Nasıl alınır?
kullanici87142

@ user87142 Sadece echo $PATHbir terminal girin.
John WH Smith

@ kaos, bunu alıyorum ... / usr / yerel / bin: / usr / bin: / bin: / usr / oyunlar
user87142

Ve çıktısı cat /etc/environment?
kaos

Yanıtlar:


59

Her şeyden önce, gerçekten ilgilendiğiniz çizgiler:

dpkg: warning: 'ldconfig' not found in PATH or not executable.
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable.

Bu hatalar Debian ve Ubuntu kullanıcıları tarafından birkaç kez bildirilmiştir (daha fazla bilgi için aslında Google’ı kullanabilirsiniz). PATHDeğişken, kullanıcı bir komutu çalıştırmaya çalıştığında doğru şekilde ayarlanmamış gibi görünmektedir sudo, ki bu muhtemelen yapmaya çalıştığınız şeydir.

1. Çözüm: sudoVarsayılan güvenlik yolunu ayarlayın

Terminalinizde /etc/sudoersçalıştırarak açın visudove dosyanın şu satırı içerdiğinden emin olun:

Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Bu problem hakkında daha fazla bilgiyi burada bulabilirsiniz (Problemler ve püf noktaları> PATH ayarlanmadı).

2. Çözüm: doğrudan kök hesabı kullanın

Kullanmayın , komutlarınızı çalıştırmak için sudosadece geçiş rootyapın. Bunu yapmak için aşağıdaki komutlardan birini çalıştırın:

$ sudo -i
$ su 

Root olarak giriş yaptıktan sonra apt-getkomutlarınızı tekrar çalıştırın :

# apt-get ...

Kökün PATHilk olsa da ayarlamak zorunda kalabilirsiniz . Düzenleyin /root/.bashrc(kök ayrıcalıklarla) ve aşağıdaki satırı ekleyin:

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

3. Çözüm: PATHdeğişkeni sudoyürütme zamanında geçirmeyi deneyin .

Sadece değişkenin sudoyeniden tanımlanması ile çağrı önek PATH:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin sudo apt-get ...

1
Root kullanıcısını kullanmayı denedim ama işe yaramadı. Ben de yolu kontrol ettim.
user87142

@ user87142 /sbinEksik olduğundan dolayı doğru kontrol etmediniz . Yeniden kurmayı deneyin (çözümler 1 ve / veya 3). Hesabı etkileşimli olarak kullanırken kökün PATH'sini düzenlemenin bir yolunu bulmak için 2. çözümü düzenledim.
John WH Smith

Kontrol ettim ...... Varsayılanlar env_reset Varsayılanlar secure_path = "/ usr / yerel / sbin: / usr / yerel / bin: / usr / sbin: / usr / bin: / sbin: / bin"
kullanıcı87142

Herhangi bir çözüm buldunuz mu?
Brijesh Valera

3. çözümünün bir varyasyonu export PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/bin:/binönce, sonra sudo -E apt install nginxondan sonra. -EAyar araçları --preserve-envböylece env ihraç etmek vars sudooturumda.
Mark Hudson,

2

Her nasılsa aynı problem vardı.

Lütfen hata mesajınızı dikkatlice okuyunuz ve çözümü bulacaksınız. Diyor ki bir not var:

Not: Kökün PATH'i genellikle / usr / local / sbin, / usr / sbin ve / sbin içermelidir.

Sonra yolumu kontrol ettim ve bir şekilde yolumda / sbin'i özlüyordum.

echo $ PATH

sonra ekledim ve sorun gitmişti. :)

dışa aktarma PATH = "$ PATH: / sbin"

Tcharam!


Oldukça emin bu zaten kapsadığı olmuştur varolan cevap olsa
Jeff Schaller

1

Bugün bu sorunu yaşadım ve çizgiyi yorumlayarak çözdüm (# kullanarak)

Defaults    exempt_group=sudo

/ etc / sudoers dosyasındaki

# visudo

kök olarak

Bu değişiklik, sudo'nun aynı dosyada ayarlanan varsayılan secure_path değişkenini kullanmasına neden olacaktır.


Bu benim için Ubuntu'da çözüldü 18.04.1
sw00
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.