ฉันจะแก้ไขข้อผิดพลาดกับ 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แล้วเรียกใช้การปรับรุ่นอีกครั้ง
Kristopher Ives

1
ฉันพยายามล้างแคชแพ็กเกจแล้วดาวน์โหลดแพคเกจซ้ำอีกครั้ง แต่ปัญหาเดียวกันก็ปรากฏขึ้น
Urivan Flores

คำตอบ:


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อาจลบแพ็คเกจที่ขึ้นอยู่กับมัน ดูคำตอบของ Olek Wojnarด้านล่างเกี่ยวกับวิธีการทำเช่นนี้โดยไม่ลบแพ็คเกจที่ขึ้นต่อกัน


สวัสดี Woofas ฉันได้ลอง - ติดตั้งใหม่ แต่ไม่คิดว่าจะมีความแตกต่างในการลบและติดตั้ง ฉันลองและตอนนี้มันติดตั้งอย่างถูกต้อง ขอบคุณ!
Urivan Flores

1
ที่เกือบจะทำงานสำหรับฉันฉันมีการลบทั้งหมดเหล่านี้แล้ว reinstall-libc6-dev-armhf-cross libc6-armel-cross libc6-dev-armel-cross libc6-armhf-cross
AT

1
คุณอาจต้องติดตั้งแพ็กเกจอื่นที่ถูกลบเนื่องจากการอ้างอิงเช่น gcc ดูโพสต์ของฉันด้านล่าง
จอห์น JJ

ดังที่จอห์นกล่าวว่าคุณต้องพิจารณาแพ็คเกจที่ถูกลบออกไป ลองดูที่คำตอบของฉันเพื่อทำความสะอาดอย่างเป็นธรรม
Olek Wojnar

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 ฉันลองทุกอย่างที่บรรทัดคำสั่งแนะนำและวิธีแก้ไขปัญหาอื่น ๆ แบบออนไลน์ อันนี้ดูเหมือนจะทำงานได้อย่างสมบูรณ์ ขอบคุณ Olek Wojnar !!
evanrmurphy

1
ฉันชอบโซลูชันที่ใช้งานได้ดีและได้ผลดี! ขอบคุณ
Whome

1

เมื่อใช้วิธี apt remove / install ข้างบนการอ้างอิงอาจทำให้ 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 \

ฉันชอบที่คุณระบุปัญหาของการอ้างอิงที่ถูกลบออกในคำตอบของคุณ น่าเสียดายที่โซลูชันของคุณจะทำเครื่องหมายแพ็คเกจเหล่านั้นว่าติดตั้งด้วยตนเองและจะไม่ถูกลบโดยอัตโนมัติหากไม่จำเป็นในอนาคต
Olek Wojnar

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

ดังนั้นไม่มีโชคกับการติดตั้งค่าโดยมิได้ด้วยตนเองโดยการอ้างอิงหรือโดยใช้--reinstalldpkg -[P|i] --force-depends

2018-10-09: เนื่องจากแพ็คเกจเหล่านั้นยังขาดอยู่ แต่ไม่มีการปรับปรุงใด ๆ ในสายตาฉันเพิ่งลบพวกเขาทั้งหมดเพื่อให้สามารถใช้ apt สำหรับ (un-) แพ็คเกจการติดตั้ง การออกจากสถานะเดิมหมายถึงไม่สามารถติดตั้งหรือลบแพ็คเกจได้ ฉันใช้เครื่องมือที่ติดตั้งไว้ในเครื่องเพื่อเติมเต็มความต้องการของฉัน

แก้ไข: หมายเหตุเกี่ยวกับการลบแพคเกจและการอ้างอิงที่กระทำผิดทั้งหมด


@Olek: ขอบคุณสำหรับการแก้ไข แต่ไม่มันไม่ทำงานสำหรับฉัน นั่นคือเหตุผลที่ฉันออกจากโพสต์เหมือนที่ฉันทำ แม้ตอนนี้การแก้ไขของคุณจะไม่สามารถแก้ปัญหานี้ให้ฉันได้ คุณจะยกเลิกการแก้ไขได้ไหม ขอบคุณ.
Gen.Stack

แปลกที่มันไม่ทำงานบนเครื่องของคุณ ฉันมีปัญหาเดียวกันที่แน่นอนและวิธีแก้ไขของฉันแก้ไขได้ ขึ้นอยู่กับว่า apt ทำงานอย่างไรฉันสับสนตรงไปตรงมาว่าทำไมมันถึงไม่เหมาะกับคุณ บางทีอาจมีปัญหาอีกอย่างสำหรับคุณ ไม่ว่าในกรณีใดฉันสร้างคำตอบของตัวเอง ขอให้โชคดีในการแก้ไขปัญหาของคุณ!
Olek Wojnar

@OlekWojnar ใช่มันแปลก ฉันไม่สนใจเหตุผลที่สำคัญในตอนนี้ จะไม่ขุดลึกลงไปในขณะที่ฉันได้รับ toolchain อื่นไม่จำเป็นต้องใช้สต็อก หากวันหนึ่งฉันรู้วิธีแก้ปัญหานี้ฉันจะอัปเดตสิ่งนี้ ขอบคุณ
Gen.Stack

0

ฉันแก้ไขข้อผิดพลาดโดยใช้ตัวจัดการแพคเกจ synaptic ใน 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 ได้กล่าวไว้ว่าให้ทำการลบและติดตั้งเพื่อแก้ไขปัญหา
Urivan Flores
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.