Як виправити помилку з libc6-dev-armhf-cross в Ubuntu 18.04 під час спроби влучного оновлення?


22

Сьогодні, намагаючись оновити на основі пропозиції програмного забезпечення Ubuntu, я бачу такі помилки. Це перший раз, коли я бачу цю помилку. Моя система 18.04 працює вже чудово вже багато місяців.

Будь-яка допомога вдячна.

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

З деякими завантаженими пакетами щось виявляється не так. Спробуйте запустити sudo apt cleanі знову запустіть оновлення.
Крістофер Івз

1
Я намагався очистити кеш пакету та повторно завантажував пакунки, проте виявилася та сама проблема.
Уріван Флорес

Відповіді:


16

Спробуйте перевстановити libc6-dev-armhf-cross(зробіть те ж саме для libc6-dev-armel-cross)

sudo apt remove libc6-dev-armhf-cross слідом за ним sudo apt install libc6-dev-armhf-cross

( apt install --reinstallздається, не працює)

Зауважте, що запуск sudo apt removeможе видаляти залежні від нього пакети. Дивіться відповідь Олека Войнара нижче про те, як це зробити без видалення залежних пакетів


Привіт Woofas, я також спробував - перевстановити, але не думав, що буде різниця з видаленням та встановленням. Я просто спробував і тепер він встановлюється належним чином. Спасибі!
Уріван Флорес

1
Це майже працював для мене, я повинен був видалити всі ці-то reinstall-libc6-dev-armhf-cross libc6-armel-cross libc6-dev-armel-cross libc6-armhf-cross
AT

1
Можливо, вам доведеться перевстановити інші пакети, які вилучаєте через залежності, наприклад, gcc, див. Мою публікацію нижче.
Джон Дж. Дж.

Як сказав Джон, вам потрібно обліковувати вилучені пакети. Погляньте на мою відповідь щодо чистого способу подбати про це.
Олек Войнар

37

Мені вдалося чітко вирішити цю проблему за допомогою варіації підходу, який застосовував Gen.Stack . Проблема прийнятого рішення полягає в тому, що він усуває залежності цих пакунків, але не може їх відновити. Це рішення запобігає цій проблемі.

Спочатку видаліть проблемні пакети та очистіть їх конфігурацію, не видаляючи залежності:

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

Очистіть кеш пакету:

sudo apt clean

Оновіть список пакунків:

sudo apt update

Виправити порушені залежності (повинні автоматично встановити два вилучені пакети):

sudo apt -f install

Нарешті, встановіть два інших пакети:

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

Це поверне вашу систему до робочого стану.


3
працює чудово. для оновлення з ubuntu 14.04 до ubuntu 18.04
ravi.zombie

3
Дякую, я також вирішив цю ж проблему Ubuntu 14.04, 16.04 по 18.04.
minish

2
Дивовижний. Мій менеджер пакунків був так зламаний після оновлення з Ubuntu 16.04 до 18.04. Я спробував усе, що рекомендується командним рядком, та різні інші рішення в Інтернеті. Цей, здається, працював ідеально. Дякую Олек Войнар !!
evanrmurphy

1
Я люблю гарне, добре викладене рішення, яке працює! Спасибі.
Хто

1

Під час використання методу apt remove / install вище, залежності можуть спричинити видалення apt більше ніж ви плануєте. Вам також може знадобитися перевстановити інші пакети. Я також перевстановив наступне.

Деякі з них уже автоматично були б перевстановлені, але було легше скопіювати список видалених пакетів і дозволити apt розібратися, що потрібно зробити.

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 \

Мені подобається, що ви визначили проблему усунених залежностей у своїй відповіді. На жаль, ваше рішення позначить усі ці пакети як встановлені вручну, і тому вони не будуть видалятися автоматично, якщо вони не потрібні в майбутньому.
Олек Войнар

1

Щоб запобігти видаленню забагато залежностей, спробуйте dpkg -P --force-depends:

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

Потім оновіть, завантажте та встановіть ці пакунки знову:

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
[...]

Тож не пощастить із перевстановленням --reinstallні вручну, ні залежно, ні з використанням dpkg -[P|i] --force-depends.

2018-10-09: Оскільки ці пакети все ще зламані, але без оновлень без уваги, я просто видалив їх усіх, щоб мати можливість використовувати підходящу для (не) встановлення пакетів. Залишити статус-кво означало неможливість встановлення або видалення пакетів. Я використовую локально встановлені ланцюги інструментів для повного виконання моїх вимог.

редагувати: зауважте про видалення всіх ображених пакетів та залежностей.


@Olek: Thx для редагування. Але ні, це не працює для мене. Тому я залишив цю посаду, як і я. Навіть зараз, коли ви редагуєте, це не дає мені вирішення цієї проблеми. Чи не хотіли б ви відновити зміни, будь ласка? Дякую.
Gen.Stack

Дивно, що це не працювало на вашій машині. У мене була точно така ж проблема, і моє рішення вирішило її. Виходячи з того, як вдало працює, я відверто розгублений, чому це не працює для вас. Можливо, для вас є ще одна проблема? У будь-якому випадку я створив власну відповідь. Удачі виправляючи ваші проблеми!
Олек Войнар

@OlekWojnar так, це дивно. Я зараз ігнорую основні причини. Не буду копати глибше, як я отримав інший ланцюжок інструментів, немає необхідності в запасі. Якщо одного дня я зрозумію, як це вирішити, я це оновлю. thx
Gen.Stack

0

Я вирішив помилку за допомогою диспетчера синаптичних пакетів в Ubuntu 18.04, видаливши пробламатичні пакети та перевстановивши їх пізніше.


-1

Я отримав таку ж помилку при установці libc6-dev-armel-cross_2.27-3ubuntu1cross1.1_all.debта libc6-armel-cross_2.27-3ubuntu1cross1.1_all.debупаковці та запуску

apt -f install 

не працювало. Я завантажив libc6-dev-armel-cross_2.27-3ubuntu1cross1_all.deb and libc6-armel-cross_2.27-3ubuntu1cross1_all.debз дзеркала пакетів Ubuntu і встановив їх

dpkg -i *.deb 

і це вирішило мою проблему.


Дякую Патріку, як згадував Woofas, вдале видалення та встановлення вирішили проблему.
Уріван Флорес
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.