Jak naprawić błąd z libc6-dev-armhf-cross w Ubuntu 18.04 podczas próby apt apt upgrade?


22

Dzisiaj, gdy próbuję dokonać aktualizacji na podstawie sugestii Ubuntu Software, widzę następujące błędy. Po raz pierwszy widzę ten błąd. Mój system 18.04 działa dobrze już od wielu miesięcy.

Każda pomoc jest mile widziana.

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu 
DISTRIB_RELEASE=18.04 
DISTRIB_CODENAME=bionic 
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"



$ sudo apt upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  libc6-armel-cross libc6-armhf-cross libc6-dev-armel-cross libc6-dev-armhf-cross
4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/5,871 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 388166 files and directories currently installed.)
Preparing to unpack .../libc6-dev-armel-cross_2.27-3ubuntu1cross1.1_all.deb ...
Unpacking libc6-dev-armel-cross (2.27-3ubuntu1cross1.1) over (2.27-3ubuntu1cross1) ...
dpkg: error processing archive /var/cache/apt/archives/libc6-dev-armel-cross_2.27-3ubuntu1cross1.1_all.deb (--unpack):
 unable to open '/usr/arm-linux-gnueabi/lib/Mcrt1.o.dpkg-new': No such file or directory
No apport report written because the error message indicates an issue on the local system
                                                                                         Preparing to unpack .../libc6-armel-cross_2.27-3ubuntu1cross1.1_all.deb ...
Unpacking libc6-armel-cross (2.27-3ubuntu1cross1.1) over (2.27-3ubuntu1cross1) ...
dpkg: error processing archive /var/cache/apt/archives/libc6-armel-cross_2.27-3ubuntu1cross1.1_all.deb (--unpack):
 unable to open '/usr/arm-linux-gnueabi/lib/ld-2.27.so.dpkg-new': No such file or directory
No apport report written because the error message indicates an issue on the local system
                                                                                         Preparing to unpack .../libc6-dev-armhf-cross_2.27-3ubuntu1cross1.1_all.deb ...
Unpacking libc6-dev-armhf-cross (2.27-3ubuntu1cross1.1) over (2.27-3ubuntu1cross1) ...
dpkg: error processing archive /var/cache/apt/archives/libc6-dev-armhf-cross_2.27-3ubuntu1cross1.1_all.deb (--unpack):
 unable to open '/usr/arm-linux-gnueabihf/lib/Mcrt1.o.dpkg-new': No such file or directory
No apport report written because the error message indicates an issue on the local system
                                                                                         Preparing to unpack .../libc6-armhf-cross_2.27-3ubuntu1cross1.1_all.deb ...
Unpacking libc6-armhf-cross (2.27-3ubuntu1cross1.1) over (2.27-3ubuntu1cross1) ...
dpkg: error processing archive /var/cache/apt/archives/libc6-armhf-cross_2.27-3ubuntu1cross1.1_all.deb (--unpack):
 unable to open '/usr/arm-linux-gnueabihf/lib/ld-2.27.so.dpkg-new': No such file or directory
No apport report written because MaxReports is reached already
                                                              Errors were encountered while processing:
 /var/cache/apt/archives/libc6-dev-armel-cross_2.27-3ubuntu1cross1.1_all.deb
 /var/cache/apt/archives/libc6-armel-cross_2.27-3ubuntu1cross1.1_all.deb
 /var/cache/apt/archives/libc6-dev-armhf-cross_2.27-3ubuntu1cross1.1_all.deb
 /var/cache/apt/archives/libc6-armhf-cross_2.27-3ubuntu1cross1.1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Coś wydaje się nie tak z niektórymi pobranymi pakietami. Spróbuj uruchomić, sudo apt cleana następnie ponownie uruchom aktualizację.
Kristopher Ives

1
Próbowałem wyczyścić pamięć podręczną pakietów i ponownie pobrać pakiety, jednak pojawił się ten sam problem.
Urivan Flores

Odpowiedzi:


16

Spróbuj ponownie zainstalować libc6-dev-armhf-cross(zrób to samo dla libc6-dev-armel-cross)

sudo apt remove libc6-dev-armhf-cross śledzony przez sudo apt install libc6-dev-armhf-cross

( apt install --reinstallwydaje się nie działać)

Pamiętaj, że uruchomienie sudo apt removemoże usunąć pakiety zależne od tego. Zobacz odpowiedź Oka Wojnara poniżej, jak to zrobić bez usuwania pakietów zależnych


Cześć Woofas, próbowałem też - przeinstaluj, ale nie sądziłem, że będzie różnica w usuwaniu i instalowaniu. Właśnie próbowałem i teraz instaluje się poprawnie. Dzięki!
Urivan Flores

1
To prawie dla mnie zadziałało, musiałem usunąć wszystkie te - a następnie zainstalować ponownielibc6-dev-armhf-cross libc6-armel-cross libc6-dev-armel-cross libc6-armhf-cross
AT

1
Może być konieczne ponowne zainstalowanie innych pakietów, które zostaną usunięte z powodu zależności, takich jak gcc, zobacz mój post poniżej.
John JJ

Jak powiedział John, musisz wziąć pod uwagę usunięte pakiety. Spójrz na moją odpowiedź na dość czysty sposób na załatwienie tego.
Olek Wojnar,

37

Byłem w stanie rozwiązać ten problem, stosując różne metody stosowane przez Gen.Stack . Problem z przyjętym rozwiązaniem polega na tym, że usuwa zależności danych pakietów, ale nie przywraca ich. To rozwiązanie zapobiega temu problemowi.

Najpierw usuń pakiety problemów i wyczyść ich konfigurację bez usuwania zależności:

sudo dpkg -P --force-depends libc6-armel-cross libc6-armhf-cross libc6-dev-armel-cross libc6-dev-armhf-cross

Wyczyść pamięć podręczną pakietów:

sudo apt clean

Zaktualizuj listę pakietów:

sudo apt update

Napraw uszkodzone zależności (powinien automatycznie zainstalować dwa z usuniętych pakietów):

sudo apt -f install

Na koniec zainstaluj pozostałe dwa pakiety:

sudo apt install libc6-dev-armel-cross libc6-dev-armhf-cross

Spowoduje to przywrócenie systemu do działania.


3
działa w porządku. dla aktualizacji z Ubuntu 14.04 do Ubuntu 18.04
ravi.zombie

3
Dzięki, rozwiązałem również ten sam problem Ubuntu 14.04, 16.04 do 18.04.
minish

2
Niesamowity. Mój menedżer pakietów był tak zepsuty po aktualizacji z Ubuntu 16.04 do 18.04. Próbowałem wszystkiego, co polecił wiersz poleceń i różnych innych rozwiązań online. Ten wydaje się działać idealnie. Dziękuję Olek Wojnar !!
evanrmurphy

1
Uwielbiam dobre, dobrze przygotowane rozwiązanie, które działa! Dzięki.
Kogo

1

Podczas korzystania z powyższej metody apt remove / install zależności mogą spowodować, że apt usunie więcej, niż chcesz. Może być również konieczne ponowne zainstalowanie innych pakietów. Ponownie zainstalowałem następujące.

Niektóre z nich zostałyby już automatycznie ponownie zainstalowane, ale łatwiej było skopiować listę usuniętych pakietów i pozwolić apt dowiedzieć się, co należy zrobić.

sudo apt-get install \
  g++-7-arm-linux-gnueabihf g++-7-multilib-arm-linux-gnueabihf g++-arm-linux-gnueabihf \
  gcc-7-arm-linux-gnueabihf gcc-7-multilib-arm-linux-gnueabihf gcc-arm-linux-gnueabihf \
  libasan4-armhf-cross libasan4-dbg-armhf-cross libatomic1-armhf-cross libatomic1-dbg-armhf-cross \
  libc6-armel-armhf-cross libc6-armel-cross libc6-armhf-cross libc6-dev-armel-armhf-cross \
  libc6-dev-armel-cross libc6-dev-armhf-cross libcilkrts5-armhf-cross libcilkrts5-dbg-armhf-cross \
  libgcc-7-dev-armhf-cross libgcc1-armhf-cross libgcc1-dbg-armhf-cross libgomp1-armhf-cross \
  libgomp1-dbg-armhf-cross libsfasan4-armhf-cross libsfatomic1-armhf-cross \
  libsfcilkrts5-armhf-cross libsfgcc-7-dev-armhf-cross libsfgcc1-armhf-cross \
  libsfgomp1-armhf-cross libsfstdc++-7-dev-armhf-cross libsfstdc++6-armhf-cross \
  libsfubsan0-armhf-cross libstdc++-7-dev-armhf-cross libstdc++6-7-dbg-armhf-cross \
  libstdc++6-armhf-cross libubsan0-armhf-cross libubsan0-dbg-armhf-cross \

Podoba mi się, że w swojej odpowiedzi zidentyfikowałeś problem usuniętych zależności. Niestety, twoje rozwiązanie oznaczałoby wszystkie te pakiety jako zainstalowane ręcznie i dlatego nie zostaną automatycznie usunięte, jeśli nie będą potrzebne w przyszłości.
Olek Wojnar,

1

Aby zapobiec usunięciu zbyt wielu zależności, spróbuj dpkg -P --force-depends:

dpkg -P --force-depends libc6-armel-cross libc6-armhf-cross libc6-dev-armel-cross libc6-dev-armhf-cross

Następnie zaktualizuj, pobierz i zainstaluj ponownie te pakiety:

apt update
[...]
apt clean
apt install libc6-armel-cross libc6-armhf-cross libc6-dev-armel-cross libc6-dev-armhf-cross
Building dependency tree       
Reading state information... Done
After this operation, 0 B of additional disk space will be used.
Get:1 http://en.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 libc6-armel-cross all 2.27-3ubuntu1cross1.1 [1,031 kB]
Get:2 http://en.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libc6-armhf-cross all 2.27-3ubuntu1cross1.1 [1,005 kB]
Get:3 http://en.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 libc6-dev-armel-cross all 2.27-3ubuntu1cross1.1 [1,936 kB]
Get:4 http://en.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libc6-dev-armhf-cross all 2.27-3ubuntu1cross1.1 [1,899 kB]
Fetched 5,871 kB in 9s (661 kB/s)                                                                                                                                                           
Selecting previously unselected package libc6-armel-cross.
(Reading database ... 760110 files and directories currently installed.)
Preparing to unpack .../libc6-armel-cross_2.27-3ubuntu1cross1.1_all.deb ...
Unpacking libc6-armel-cross (2.27-3ubuntu1cross1.1) ...
dpkg: error processing archive /var/cache/apt/archives/libc6-armel-cross_2.27-3ubuntu1cross1.1_all.deb (--unpack):
 unable to open '/usr/arm-linux-gnueabi/lib/ld-2.27.so.dpkg-new': No such file or directory
No apport report written because the error message indicates an issue on the local system
[...]

Więc nie ma powodzenia w ponownej instalacji --reinstallani ręcznie, ani zależnie, ani przy użyciu dpkg -[P|i] --force-depends.

2018-10-09: Ponieważ te pakiety są nadal uszkodzone, ale bez widocznych aktualizacji, właśnie je wszystkie usunąłem, aby móc używać apt do (odinstalowywania) pakietów. Pozostawienie status quo oznaczało niemożność instalowania lub usuwania pakietów. Korzystam z zainstalowanych lokalnie łańcuchów narzędzi, aby spełnić moje wymagania.

edycja: uwaga na temat usuwania wszystkich obrażających pakietów i zależności.


@Olek: Dzięki za edycję. Ale nie, to nie działa dla mnie. Właśnie dlatego opuściłem ten post. Nawet teraz, gdy edytujesz, nie daje mi to rozwiązania tego problemu. Czy mógłbyś cofnąć edycję? Dzięki.
Gen.Stack

Dziwne, że to nie działało na twoim komputerze. Miałem dokładnie ten sam problem i moje rozwiązanie go rozwiązało. Na podstawie tego, jak działa apt, jestem szczerze zdezorientowany, dlaczego to by nie zadziałało. Być może jest dla ciebie jeszcze jeden problem? W każdym razie stworzyłem własną odpowiedź. Powodzenia w rozwiązywaniu problemów!
Olek Wojnar

@OlekWojnar tak, to dziwne. Obecnie ignoruję podstawowe przyczyny. Nie będę kopać głębiej, ponieważ dostałem drugi zestaw narzędzi, nie ma potrzeby używania jednego. Jeśli któregoś dnia zrozumiem, jak to rozwiązać, zaktualizuję to. dzięki
Gen.Stack

0

Rozwiązałem błąd za pomocą menedżera pakietów synaptycznych w Ubuntu 18.04, usuwając pakiety problamatic i instalując je później.


-1

Wystąpił ten sam błąd podczas instalacji libc6-dev-armel-cross_2.27-3ubuntu1cross1.1_all.debi libc6-armel-cross_2.27-3ubuntu1cross1.1_all.debpakowania oraz uruchamiania

apt -f install 

nie działało Pobrałem libc6-dev-armel-cross_2.27-3ubuntu1cross1_all.deb and libc6-armel-cross_2.27-3ubuntu1cross1_all.debz kopii dystrybucyjnej pakietów Ubuntu i zainstalowałem je

dpkg -i *.deb 

i to rozwiązało mój problem.


Dzięki Patrick, jak wspomniał Woofas, apt usunął i zainstalował rozwiązał problem.
Urivan Flores
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.