Як виправити помилку з 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.