Làm cách nào để sửa lỗi với libc6-dev-armhf-cross trong Ubuntu 18.04 khi cố gắng nâng cấp apt?


22

Hôm nay trong khi cố gắng nâng cấp dựa trên đề xuất Phần mềm Ubuntu, tôi thấy các lỗi sau. Đây là lần đầu tiên tôi thấy lỗi này. Hệ thống 18.04 của tôi đã hoạt động tốt trong nhiều tháng nay.

Bất kỳ trợ giúp được đánh giá cao.

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

Một cái gì đó xuất hiện sai với một số gói tải về. Hãy thử chạy sudo apt cleanvà sau đó chạy nâng cấp.
Kristopher Ives

1
Tôi đã thử xóa bộ nhớ cache của gói và tải xuống lại các gói, tuy nhiên vấn đề tương tự cũng xuất hiện.
Urivan Flores

Câu trả lời:


16

Hãy thử cài đặt lại libc6-dev-armhf-cross(làm tương tự cho libc6-dev-armel-cross)

sudo apt remove libc6-dev-armhf-cross theo dõi bởi sudo apt install libc6-dev-armhf-cross

( apt install --reinstalldường như không hoạt động)

Lưu ý rằng việc chạy sudo apt removecó thể loại bỏ các gói phụ thuộc vào nó. Xem câu trả lời của Olek Wojnar bên dưới về cách thực hiện việc này mà không xóa các gói phụ thuộc


Xin chào Woustas, tôi cũng đã thử - cài đặt nhưng không nghĩ sẽ có sự khác biệt với gỡ bỏ và cài đặt. Tôi vừa thử và bây giờ nó đang cài đặt đúng. Cảm ơn!
Urivan Flores

1
Đó gần như làm việc cho tôi, tôi đã phải loại bỏ tất cả những-then reinstall-libc6-dev-armhf-cross libc6-armel-cross libc6-dev-armel-cross libc6-armhf-cross
AT

1
Bạn có thể cần phải cài đặt lại các gói khác bị xóa do phụ thuộc, chẳng hạn như gcc, xem bài viết của tôi dưới đây.
John JJ

Như John đã nói, bạn cần tính đến các gói đã bị xóa. Hãy xem câu trả lời của tôi cho một cách khá sạch sẽ để chăm sóc điều đó.
Olek Wojnar

37

Tôi đã có thể giải quyết vấn đề này một cách rõ ràng bằng một biến thể của cách tiếp cận được sử dụng bởi Gen.Stack . Vấn đề với giải pháp được chấp nhận là nó loại bỏ sự phụ thuộc của các gói được đề cập nhưng không thể khôi phục chúng. Giải pháp này ngăn chặn vấn đề đó.

Đầu tiên, loại bỏ các gói vấn đề và lọc cấu hình của chúng mà không loại bỏ các phụ thuộc:

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

Làm sạch bộ đệm gói:

sudo apt clean

Cập nhật danh sách gói:

sudo apt update

Khắc phục sự cố phụ thuộc (nên tự động cài đặt hai trong số các gói đã xóa):

sudo apt -f install

Cuối cùng, cài đặt hai gói còn lại:

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

Điều này sẽ đưa hệ thống của bạn trở lại hoạt động.


3
hoạt động tốt để nâng cấp từ Ubuntu 14.04 lên Ubuntu 18.04
ravi.zombie

3
Cảm ơn, tôi cũng đã giải quyết vấn đề tương tự Ubuntu 14.04, 16.04 đến 18.04.
Minish

2
Kinh ngạc. Trình quản lý gói của tôi đã bị hỏng sau khi nâng cấp từ Ubuntu 16.04 lên 18.04. Tôi đã thử mọi thứ dòng lệnh được đề xuất và nhiều giải pháp khác trực tuyến. Điều này dường như đã làm việc hoàn hảo. Cảm ơn Olek Wojnar !!
evanrmurphy

1
Tôi yêu một giải pháp tốt, đặt ra mà làm việc! Cảm ơn.
Bất cứ ai vào

1

Khi sử dụng phương thức apt remove / install ở trên, các phụ thuộc có thể khiến apt loại bỏ nhiều hơn bạn dự định. Bạn cũng có thể cần phải cài đặt lại các gói khác. Tôi cũng cài đặt lại như sau.

Một số trong số này sẽ tự động được cài đặt lại, nhưng việc sao chép danh sách các gói bị loại bỏ sẽ dễ dàng hơn và để apt tìm ra những gì cần phải làm.

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 \

Tôi thích rằng bạn đã xác định được vấn đề phụ thuộc loại bỏ trong câu trả lời của bạn. Thật không may, giải pháp của bạn sẽ đánh dấu tất cả các gói đó là cài đặt thủ công và do đó chúng sẽ không bị xóa tự động nếu không cần thiết trong tương lai.
Olek Wojnar

1

Để ngăn quá nhiều phụ thuộc bị xóa, hãy thử dpkg -P --force-depends:

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

Sau đó cập nhật, tìm nạp và cài đặt lại các gói đó:

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

Vì vậy, không có may mắn với việc cài đặt lại không bằng cách --reinstallcũng không bằng tay với phụ thuộc cũng như bằng cách sử dụng dpkg -[P|i] --force-depends.

2018-10-09: Vì các gói đó vẫn bị hỏng nhưng không có bản cập nhật nào, tôi chỉ cần gỡ bỏ tất cả để có thể sử dụng apt cho các gói cài đặt (không). Rời khỏi hiện trạng có nghĩa là không thể cài đặt hoặc gỡ bỏ các gói. Tôi đang sử dụng các bộ công cụ được cài đặt cục bộ để đáp ứng đầy đủ các yêu cầu của tôi.

chỉnh sửa: lưu ý về việc loại bỏ tất cả các gói và phụ thuộc vi phạm.


@Olek: Thx cho chỉnh sửa. Nhưng không, nó không làm việc cho tôi. Đó là lý do tại sao tôi rời khỏi bài viết như tôi đã làm. Ngay cả bây giờ với chỉnh sửa của bạn, điều này không cung cấp cho tôi một giải pháp cho vấn đề này. Bạn có phiền khi hoàn nguyên bản chỉnh sửa của mình không? Cám ơn.
Gen.Stack

Kỳ lạ là nó không hoạt động trên máy của bạn. Tôi đã có cùng một vấn đề và giải pháp của tôi đã khắc phục nó. Dựa trên cách apt hoạt động, tôi thực sự bối rối tại sao nó không hoạt động với bạn. Có lẽ có một vấn đề khác chơi cho bạn? Trong mọi trường hợp, tôi đã tạo ra câu trả lời của riêng tôi. Chúc may mắn khắc phục vấn đề của bạn!
Olek Wojnar

@OlekWojnar vâng, thật lạ. Tôi bỏ qua những lý do cơ bản như bây giờ. Không đào sâu hơn khi tôi có được chuỗi công cụ khác, không cần chứng khoán. Nếu một ngày tôi nhận ra cách giải quyết điều này, tôi sẽ cập nhật điều này. thx
Gen.Stack

0

Tôi đã khắc phục lỗi bằng cách sử dụng trình quản lý gói synap trong Ubuntu 18.04 bằng cách xóa các gói lỗi và cài đặt lại chúng sau.


-1

Tôi đã gặp lỗi tương tự khi cài đặt libc6-dev-armel-cross_2.27-3ubuntu1cross1.1_all.deblibc6-armel-cross_2.27-3ubuntu1cross1.1_all.debgói, và chạy

apt -f install 

đã không làm việc. Tôi đã tải xuống libc6-dev-armel-cross_2.27-3ubuntu1cross1_all.deb and libc6-armel-cross_2.27-3ubuntu1cross1_all.debtừ bản sao gói Ubuntu và cài đặt chúng với

dpkg -i *.deb 

và nó đã giải quyết vấn đề của tôi.


Cảm ơn Patrick, như Woustas đã đề cập, apt gỡ bỏ và cài đặt đã giải quyết vấn đề.
Urivan Flores
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.