GNU/Linux >> Znalost Linux >  >> Ubuntu

Oprava „Podproces /usr/bin/dpkg vrátil kód chyby (1)“ v Ubuntu

Dnes jsem se pokusil upgradovat svůj desktop Ubuntu 20.04 LTS a narazil jsem na tuto chybu - "Podproces /usr/bin/dpkg vrátil kód chyby (1)" . Je to jeden z běžných problémů v Ubuntu a dalších systémech založených na DEB.

K této chybě obvykle dochází v důsledku neúspěšné instalace aplikace nebo pokud dojde k poškození nebo přerušení instalačního programu balíčku dpkg uprostřed instalace balíčku.

Zde jsou příkazy, které jsem se pokusil upgradovat svou plochu Ubuntu:

$ sudo apt update
$ sudo apt upgrade

A... zde je chybová zpráva:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  eog
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
21 not fully installed or removed.
Need to get 0 B/421 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] 
(Reading database ... 230012 files and directories currently installed.)
Preparing to unpack .../eog_3.36.2-0ubuntu1_amd64.deb ...
Unpacking eog (3.36.2-0ubuntu1) over (3.36.1-1) ...
dpkg-deb (subprocess): decompressing archive member: lzma error: compressed data is corrupt
dpkg-deb: error: <decompress> subprocess returned error exit status 2
dpkg: error processing archive /var/cache/apt/archives/eog_3.36.2-0ubuntu1_amd64.deb (--unpack):
 cannot copy extracted data for './usr/lib/x86_64-linux-gnu/eog/libeog.so' to '/usr/lib/x86_64-linux-gnu/eog/libeog.so.dpkg-new': unexpected end of file or stream
Errors were encountered while processing:
 /var/cache/apt/archives/eog_3.36.2-0ubuntu1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Oprava „Podproces /usr/bin/dpkg vrátil kód chyby (1)“ v Ubuntu

Pokud narazíte na výše uvedenou chybu, nebojte se! Zde jsem uvedl několik řešení k vyřešení "Sub-process /usr/bin/dpkg returned an error code (1)" problém v Ubuntu a jeho variantách, jako je Linux Mint, Pop OS.

Řešení 1 – Překonfigurujte databázi dpkg

Pokud je proces instalace balíku zastaven nebo přerušen uprostřed, může být poškozena databáze dpkg. Překonfigurování databáze dpkg může tento problém vyřešit.

Chcete-li znovu nakonfigurovat databázi dpkg, jednoduše spusťte:

$ sudo dpkg --configure -a

Tento příkaz se pokusí opravit poškozenou databázi dpkg a poté znovu nakonfigurovat všechny poškozené balíčky. Tento příkaz obvykle opraví dpkg returned an error code (1) problém. Pokud to z nějakého důvodu problém nevyřeší, postupujte podle následujících řešení.

Řešení 2 – Vynutit instalaci aplikace

Pokud první metoda nefungovala, spusťte následující příkaz a proveďte vynucenou instalaci:

$ sudo apt-get install -f

Nebo,

$ sudo apt-get install --fix-broken

Zde -f (nebo --fix-broken ) se pokusí opravit systém Ubuntu s poškozenými závislostmi.

Pokud tato dvě řešení nepomohla a problém stále přetrvává, zkuste další řešení.

Řešení 3 – Odstraňte soubor .deb problematické aplikace z místní složky mezipaměti a znovu jej nainstalujte

Jak vidíte v chybové zprávě (poslední dva řádky), eog tuto chybu způsobuje balíček.

[...]
/var/cache/apt/archives/eog_3.36.2-0ubuntu1_amd64.deb 
E: Sub-process /usr/bin/dpkg returned an error code (1)

Pro ty, kdo by se divili, eog (zkratka pro Eye of GNOME) je oficiální a výchozí prohlížeč obrázků pro desktopové prostředí GNOME. Tento balíček je tedy problematický a neumožňuje mi upgradovat Ubuntu.

Když nainstalujete balíček, bude stažen a uložen do složky mezipaměti /var/cache/apt/archives/ .

Chcete-li tuto chybu opravit, odeberte balíček uložený v mezipaměti pomocí příkazu:

$ sudo rm /var/cache/apt/archives/eog_3.36.2-0ubuntu1_amd64.deb

Nahraďte eog_3.36.2-0ubuntu1_amd64.deb svým balíčkem.

Vyčistěte složku mezipaměti balíčků:

$ sudo apt-get clean
$ sudo apt-get autoremove

Aktualizujte zdrojové seznamy:

$ sudo apt-get update

Upgradujte svůj systém:

$ sudo apt-get upgrade

Nakonec získejte nový balíček z oficiálních repozitářů a znovu jej nainstalujte, jak je uvedeno níže:

$ sudo apt-get install eog

Toto řešení mi fungovalo.

Řešení 4 – Odstraňte problematickou aplikaci

To by měla být vaše poslední možnost. Pokud žádná z výše uvedených metod nepomůže, odstraňte problematický balíček ze systému, jak je uvedeno níže:

$ sudo apt-get remove --purge eog
$ sudo apt-get clean && sudo apt-get autoremove

Tento příkaz odstraní eog se všemi jeho konfiguračními soubory ze systému.

A také najít a odstranit všechny soubory spojené s poškozeným balíčkem.

Chcete-li najít všechny soubory související s balíčkem, spusťte:

$ sudo ls -l /var/lib/dpkg/info | grep -i eog

Ukázkový výstup:

-rw-r--r-- 1 root root 61926 Apr 24 13:42 eog.list
-rw-r--r-- 1 root root 5889 Mar 29 08:01 eog.md5sums

Odstraňte je ručně.

A je to. V této fázi by vám kterékoli z těchto čtyř řešení mělo pomoci opravit „Podproces /usr/bin/dpkg vrátil kód chyby (1)" v Ubuntu a dalších systémech založených na DEB.

Řešení dalších běžných problémů v Ubuntu:

  • Jak opravit poškozený operační systém Ubuntu bez jeho přeinstalace
  • Jak opravit chybu Busybox Initramfs na Ubuntu
  • Oprava chyby „Narazili jste na sekci bez balíčku:záhlaví“ v Ubuntu
  • Oprava „W:Některé indexové soubory se nepodařilo stáhnout.“ Chyba v Ubuntu
  • Oprava „E:Soubor mezipaměti balíčku je poškozen, má nesprávný hash“ Chyba v Ubuntu
  • Jak opravit chybu „E:Nelze získat zámek /var/lib/dpkg/lock“ v Ubuntu
  • Oprava chyby „dpkg:error:parsing file ‘/var/lib/dpkg/updates/0014′“ v Ubuntu

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

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

  3. Proč /bin/sh ukazuje na /bin/dash a ne /bin/bash?

  1. Ubuntu 15.04 Linux 4.0 Python Chyba při aktualizaci, dílčí proces /usr/bin/dpkg vrátil kód chyby (1)?

  2. Jaké jsou významy /usr/sbin, /usr/local/sbin a /usr/local/bin?

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

  1. Fix Sub-Process /usr/bin/dpkg vrátil kód chyby(1)

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

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