GNU/Linux >> Znalost Linux >  >> Linux

„e:Dílčí proces /usr/bin/dpkg vrátil kód chyby (1) “ Co to znamená?

Tuto zprávu jsem viděl několikrát, kdykoli má někdo problém s instalací, aktualizací nebo odebráním nějaké části softwaru, ale zajímalo by mě, co to znamená , a co je důležitější, je možné to vyřešit?

(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)

(výše uvedené je pouze příklad, ne můj skutečný problém)

Přijatá odpověď:

Tato zpráva je obecná. Znamená to pouze, že dpkg instance volaná apt /apt-get z nějakého důvodu selhal. Nevysvětluje proč, jak, ani nedává rady, jak to vyřešit. Jako diagnostická zpráva není užitečná.

Musíte si přečíst řádky před zprávou (někdy jich je poměrně hodně), abyste našli skutečnou chybu, která vám brání v dokončení instalace.

Ano, ale jak to vyřeším?

Neexistuje jediný způsob, jak to vyřešit. Existuje tolik důvodů, proč se to může stát, že je marné pokoušet se je všechny vyjmenovat v jediném příspěvku. Každá okolnost je pro daný balíček/prostředí téměř jedinečná.

Ale je tu vykoupení. Skutečnost, že vidíte tuto zprávu, znamená, že v řádcích před zprávou je pravděpodobně více relevantních informací. Pro ilustraci použiji příklad:

(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)

Nyní, abyste našli problém, musíte číst pozpátku:

  • E: Sub-process /usr/bin/dpkg returned an error code (1) nic užitečného mi neříká. Takže pokračuj.

  • Errors were encountered while processing: mongodb-10gen jen mi říká, který balíček má problémy. Je užitečný, ale nestačí.

  • subprocess installed post-installation script returned error exit status 100 :to mi říká, že skript, který selhal, byl postinst , který se spustí po instalaci. V některých situacích se to bude hodit, ale ne v této.

  • dpkg: error while cleaning up: zde není nic užitečného.

  • invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found. BINGO! To nám říká, že invoke-rc.d , binární soubor, který řídí init skript ve většině systémů podobných Debianu, selhal. Selhalo, protože nemohl najít /etc/init.d/mongodb skript. Je to špatné. Musíme to vytvořit nebo zkopírovat odjinud, aby to začalo znovu fungovat. Přeinstalace balíčku je také obvykle možností pro file not found chyby.

    V tomto případě není hlášení chyby nutné, protože je pravděpodobné, že jsme to byli my, kdo odstranil skript, ale pokud jste si zcela jisti, že jste se souboru nedotkli (a debsums -sla měl by to potvrdit) a poté nahlásit chybu.

Související:Najít a rozdíly mezi -perm /6000 a -perm /u+s?

Takže, co přesně potřebujete, abyste získali pomoc? V ideálním případě úplný výstup problému. Je také užitečné zahrnout výstup sudo dpkg -C a sudo apt-get check a výstup apt-cache policy package1 package2... kde „balíček1 balíček2…“ zahrnuje všechny balíčky s problémy.


Linux
  1. Jak vyřešit „Podproces /usr/bin/dpkg vrátil kód chyby (1)“ v Ubuntu

  2. /usr/bin Vs /usr/local/bin Na Linuxu?

  3. Linux – sloučení /usr/bin A /usr/sbin do /bin (gnu/linux)?

  1. Co toto varování znamená?

  2. Nainstalujte binární soubory do /bin, /sbin, /usr/bin a /usr/sbin, interakce s --prefix a DESTDIR

  3. Jaký je rozdíl mezi #!/usr/bin/env bash a #!/usr/bin/bash?

  1. cmake --version ukazuje na /usr/bin/cmake, zatímco který cmake ukazuje na /usr/local/bin

  2. Rozdíl mezi /bin a /usr/bin

  3. Přesunutý obsah /bin do /usr/bin, je možné vrátit zpět?