“E: Alt işlem / usr / bin / dpkg bir hata kodu döndürdü (1)” Bu ne anlama geliyor?


31

Birisinin bir parçasını yazılım yüklerken, yükseltirken veya kaldırırken bir problemi olduğunda bu mesajı birkaç kez gördüm, ancak ne anlama geldiğini ve daha da önemlisi bu sorunun çözülmesinin mümkün olduğunu merak ediyorum.

(Reading database ... 81657 files and directories currently installed.)
 Removing mongodb-10gen ...
 arg: remove
 invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
 dpkg: error processing mongodb-10gen (--remove):
  subprocess installed pre-removal script returned error exit status 100
 invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
 dpkg: error while cleaning up:
  subprocess installed post-installation script returned error exit status 100
 Errors were encountered while processing:
  mongodb-10gen
 E: Sub-process /usr/bin/dpkg returned an error code (1)

(yukarıdaki sadece bir örnek, benim asıl sorunum değil)


2
Eğer denediyseniz apt-get install (something)ve yaptığım gibi bu hata mesajını aldıysanız, benim için çözüm oldu apt-get upgrade (something).
PJ Brunet,

Yanıtlar:


30

Bu mesaj geneldir. Bu sadece bir nedenden dolayı / dpkgdenilen bir durum anlamına gelir . Neden, nasıl veya nasıl çözüleceğine dair ipucu vermez. Teşhis mesajı olarak kullanışlı değildir.aptapt-get

Yüklemeyi tamamlamanızı önleyen gerçek hatayı bulmak için, iletiden önceki satırları (bazen oldukça fazla sayıda) okumanız gerekir.

Evet, ama nasıl çözerim?

Bunu çözmek için tek bir yolu yoktur. Bunun olmasının pek çok nedeni var, hepsini tek bir gönderide listeleme çabası boşuna. Her durum o paket / çevre için neredeyse benzersizdir.

Ancak, itfa var. Bu mesajı gördüğünüz gerçeği, mesajdan önceki satırlarda muhtemelen daha alakalı bilgiler olduğu anlamına gelir. Açıklayıcı amaçlar için bir örnek kullanacağım:

(Reading database ... 81657 files and directories currently installed.)
 Removing mongodb-10gen ...
 arg: remove
 invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
 dpkg: error processing mongodb-10gen (--remove):
  subprocess installed pre-removal script returned error exit status 100
 invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
 dpkg: error while cleaning up:
  subprocess installed post-installation script returned error exit status 100
 Errors were encountered while processing:
  mongodb-10gen
 E: Sub-process /usr/bin/dpkg returned an error code (1)

Şimdi, sorunu bulmak için geriye doğru okumanız gerekir:

  • E: Sub-process /usr/bin/dpkg returned an error code (1)bana faydalı bir şey söylemiyor. Öyleyse devam et.
  • Errors were encountered while processing: mongodb-10gensadece bana hangi paketin problem olduğunu söyler. Yararlı ama yeterli değil.
  • subprocess installed post-installation script returned error exit status 100: Bu bana başarısız olan betiğin postinstkurulum sonrası yapılanın olduğunu söylüyor . Bu, bazı durumlarda kullanışlı olacak, ama bu durumda değil.
  • dpkg: error while cleaning up: burada işe yarar bir şey yok.
  • invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.BİNGO! Bu bize, invoke-rc.dDebian benzeri sistemdeki init betiğini kontrol eden bir ikili kodun başarısız olduğunu söylüyor. /etc/init.d/mongodbKomut dosyasını bulamadığı için başarısız oldu . Bu kötü. Yeniden yaratmamız veya başka bir yerden kopyalamamız gerekiyor. Paketi yeniden yüklemek de normalde file not foundhatalar için bir seçenektir .

    Bu durumda, bir hatayı bildirmek gerekli değildir çünkü betiği kaldıran bizdik, ancak dosyaya dokunmadığınızdan tamamen eminseniz ( debsums -slabunu onaylamanız gerekir) bir hata bildirin.

Peki, tam olarak yardım almak için neye ihtiyacın var? İdeal olarak, sorunun tam çıktısı. Bu çıktısını da dahil olmak üzere de yararlı olacaktır sudo dpkg -Cve sudo apt-get checkve çıktısını apt-cache policy package1 package2...sorunları ile paketleri tüm "Paket1 package2 ..." içerdiği durumlarda.


tanısal bir mesaj olarak, tüm hatayı okursanız (işleme sırasında hatayla karşılaşıldı: mongodb-10gen) bu nedenle E'de listelenir ve Hata değil
mchid 22.05'te

1
@mchid ama hataya ne sebep oldu? Size görmez ipucu vermez.
Braiam

@mchid evet, sadece okursam nasıl anlayabilirim Errors were encountered while processing: mongodb-10gen? Olduğu gibi, sorunu çözmek için, bu çizgi değersizdir .
Braiam

Kötü, sadece sorunu nasıl çözeceğinizi düşündüğümü düşündüm (“çözmek mümkün mü”) Sanırım bağlamdan çıkardım.
Orkide

Btw, çalıştırın sudo touch /etc/init.d/mongodbve sonra sudo apt-get purge mongodb-10gensorunu gidermek için çalıştırın . Bunu test ettim ve dosya olduğu sürece (/etc/init.d/mongodb) dpkg dosya boş olsa bile devam edecek (dokunma ne yaparsa boş bir dosya oluşturur).
maki
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.