ทำไมแพ็คเกจบางตัวถึงขัดแย้งกับตัวเอง?


16

หลังจากอัปเกรดเป็น Oneiric ฉันมีปัญหากับตัวจัดการแพ็คเกจ (ต้องการลบครึ่งหนึ่งของระบบรวมถึง libc6, zlib1g แพ็คเกจ ฯลฯ ) ในระหว่างการต่อสู้กับความถนัดฉันได้สังเกตเห็นว่าบางบรรจุภัณฑ์มีข้อมูลเมตาซึ่งระบุว่าพวกเขาขัดแย้งกับตัวเอง ตัวอย่าง:

% aptitude show libc-bin
Package: libc-bin                        
Essential: yes
New: yes
State: installed
Automatically installed: no
Version: 2.13-20ubuntu5
Priority: required
Section: libs
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Uncompressed Size: 3,420 k
Conflicts: libc-bin
Breaks: libc0.1 (< 2.10), libc0.1 (< 2.10), libc0.3 (< 2.10), libc0.3 (< 2.10), libc6 (< 2.10), libc6 (< 2.10), libc6.1 (< 2.10), libc6.1 (< 2.10)
Replaces: libc0.1, libc0.1, libc0.3, libc0.3, libc6, libc6, libc6.1, libc6.1
Provides: libc-bin
Provided by: libc-bin
Description: Embedded GNU C Library: Binaries

เห็นConflicts: libc-binเส้นไหม? อีกหนึ่ง:

% aptitude show qdbus   
Package: qdbus                           
New: yes
State: installed
Automatically installed: no
Version: 4:4.7.4-0ubuntu8.1
Priority: optional
Section: libs
Maintainer: Kubuntu Developers <kubuntu-devel@lists.ubuntu.com>
Uncompressed Size: 213 k
Depends: libc6 (>= 2.3.4), libgcc1 (>= 1:4.1.1), libqt4-dbus (= 4:4.7.4-0ubuntu8.1), libqt4-xml (= 4:4.7.4-0ubuntu8.1), libqtcore4 (= 4:4.7.4-0ubuntu8.1), libstdc++6 (>= 4.1.1)
Conflicts: qdbus
Breaks: libqt4-dbus (< 4:4.7.3-4ubuntu5), libqt4-dbus (< 4:4.7.3-4ubuntu5), qt4-dev-tools (< 4:4.7.3-4ubuntu6), qt4-dev-tools (< 4:4.7.3-4ubuntu6)
Replaces: libqt4-dbus (< 4:4.7.3-4ubuntu5), libqt4-dbus (< 4:4.7.3-4ubuntu5), qt4-dev-tools (< 4:4.7.3-4ubuntu6), qt4-dev-tools (< 4:4.7.3-4ubuntu6)
Provides: qdbus
Provided by: qdbus
Description: Qt 4 Dbus Tool

คุณลักษณะ "ขัดแย้งกับตัวเอง" เดียวกัน

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

คำตอบ:


25

Oneiric รองรับ Multi-Arch นั่นคือช่วยให้คุณสามารถติดตั้งแพคเกจของสถาปัตยกรรมที่แตกต่างกันพร้อมกัน (ปัจจุบันคือ i386 และ amd64 aka 32-bit และ 64-bit) แพคเกจบางอย่างไม่สามารถติดตั้งพร้อมกัน (เช่น libc6: i386 และ libc6: amd64) aptitude ไม่สามารถจัดการกับกรณีเหล่านี้ได้ดังนั้นจึงคิดว่าเป็นความคิดที่ดีที่จะลบแพ็กเกจเหล่านั้นออก ขอแนะนำให้ใช้apt-getตอนนี้

หากคุณใช้apt-cache show libc-binคุณสามารถดูบรรทัดที่กล่าวถึงความขัดแย้งนี้:

Multi-Arch: ต่างประเทศ

คำอธิบายของฟิลด์นี้สามารถดูได้ที่http://wiki.debian.org/Multiarch/Implementation#Multi-Arch:_foreign_support_packages


8

ความถนัดไม่แสดงให้คุณเห็นเรื่องราวทั้งหมด

$ apt-cache depends libc-bin | grep Conflicts
  Conflicts: libc-bin:i386

ฉันติดตั้ง 64 บิตดังนั้นจริงๆแล้วมันขัดแย้งกับคู่ 32 บิตเท่านั้น


7

คุณเคยทำงานเป็นข้อผิดพลาด 831768

aptitudeยังไม่เข้าใจผู้ปกครองหลายคนฉันกลัว ทางที่ดีควรหลีกเลี่ยงaptitudeจนกว่าจะได้รับการแก้ไข apt-getหนึ่งสามารถอยู่รอดได้ด้วย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.