วิธีแก้ไขการอัปเดต synaptic ที่ใช้งานไม่ได้:“ แพ็คเกจอยู่ในสถานะที่ไม่สอดคล้องกันมาก”


15

ฉันมี Dell Mini9 ที่ใช้งาน Ubuntu 8.10 วันหนึ่งฉันมีความคิดที่สดใสเพื่อดูว่าฉันสามารถติดตั้ง LAMP stack ได้หรือไม่ ฉันมีปัญหาในการติดตั้ง MySQL 5.0 ฉันจำข้อผิดพลาดไม่ได้ แต่เนื่องจากความพยายามเรียกใช้ update-manager, synaptic หรือ apt-get ล้มเหลวโดยมีข้อผิดพลาดเกี่ยวกับ mysql-server-5.0: "แพ็คเกจอยู่ในสถานะที่ไม่สอดคล้องกันมาก"

ฉันพยายามapt-get remove mysql-server-5.0แล้วinstallแต่ก็ไม่มีโชค ทั้งสองล้มเหลวด้วยข้อผิดพลาดเดียวกันด้านล่าง ฉันจะแก้ไขสิ่งนี้ได้อย่างไร

$ sudo apt-get ลบ mysql-server-5.0
กำลังอ่านรายการแพ็กเกจ ... เสร็จแล้ว
อาคารต้นไม้พึ่งพา       
กำลังอ่านข้อมูลสถานะ ... เสร็จแล้ว
แพ็คเกจต่อไปนี้ได้รับการติดตั้งโดยอัตโนมัติและไม่จำเป็นต้องใช้อีกต่อไป:
  dhcdbd libisc32
ใช้ 'apt-get autoremove' เพื่อลบออก
แพ็คเกจต่อไปนี้จะถูกลบ:
  MySQL เซิร์ฟเวอร์ 5.0
0 อัพเกรดแล้วติดตั้งใหม่ 0 ลบ 1 และ 164 ไม่ได้อัปเกรด
1 ยังไม่ได้ติดตั้งหรือลบอย่างสมบูรณ์
หลังจากการดำเนินการนี้พื้นที่ดิสก์ 85.4MB จะเป็นอิสระ
คุณต้องการที่จะทำต่อไป [Y / n]? 
dpkg: การประมวลผลข้อผิดพลาด mysql-server-5.0 (- ลบ):
 แพ็คเกจอยู่ในสถานะที่ไม่สอดคล้องกันมาก - คุณควรทำ
 ติดตั้งใหม่ก่อนที่จะพยายามลบ
พบข้อผิดพลาดขณะประมวลผล:
 MySQL เซิร์ฟเวอร์ 5.0
E: กระบวนการย่อย / usr / bin / dpkg ส่งคืนรหัสข้อผิดพลาด (1)

พิจารณาใช้ <pre> สำหรับเอาต์พุตหน้าจอโดยไม่จำเป็นต้องเน้นไวยากรณ์
John Oxley

คำตอบ:


19

ไม่มีคำตอบอื่นใดสำหรับฉันที่ Maverick

ในกรณีของฉันฉันพบสิ่งนี้ใช้งานได้:

sudo rm /var/lib/dpkg/info/flashplugin-nonfree.prerm

sudo dpkg --remove --force-remove-reinstreq flashplugin-nonfree

(แทนที่ "flashplugin-nonfree" ด้วยชื่อของแพ็คเกจที่เสียหายและแทนที่ "prerm" ด้วยประเภทของสคริปต์ที่ล้มเหลว - ในกรณีของฉันคือ "postrm" สคริปต์หลังการลบ)

และพวกเขาบอกว่าอูบุนตูใช้งานง่าย !! คำราม


--purge ดีกว่าที่จะทิ้ง deps ที่เสียหาย
stepancheg

1
ฉันค้นหาวิธีแก้ปัญหาที่คล้ายกันหลายชั่วโมงและนี่เป็นวิธีเดียวที่ใช้ได้ผล ขอขอบคุณ.
LukeGT

6

ฉันมีปัญหาเดียวกันกับติดตั้ง mysql คุณจำเป็นต้องล้างหีบห่อ เพียงแค่ลบแพ็คเกจไม่ลบไฟล์ปรับแต่งที่มาพร้อมกับมัน

นอกจากนี้ฉันจะอ้างถึงmysql-server-5.0แต่ตระหนักว่ามีแพ็คเกจห่อหุ้มmysql-serverที่ชี้ไปที่เวอร์ชันล่าสุดเสมอ เช่นถ้าคุณถามในการติดตั้งMySQL เซิร์ฟเวอร์ , apt-getควรจะบอกคุณว่ามันขึ้นอยู่กับMySQL เซิร์ฟเวอร์ 5.0และติดตั้งทั้งสอง หากคุณมีแพ็คเกจmysql-serverในระบบคุณควรตรวจสอบให้แน่ใจว่ามันหายไปก่อนที่คุณจะพยายามติดตั้งใหม่

  • ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ mysql (mysqld) ไม่ทำงาน หากเป็นเช่นนั้นให้นำมันลงมา:

    sudo /etc/init.d/mysqld หยุด

  • ตรวจสอบว่าแพ็คเกจใด ๆ ขึ้นอยู่กับ mysql-server-5.0:

    sudo apt-cache rdepends mysql-server-5.0

    ถ้าพวกเขาทำคุณจะต้องใช้--forceตัวเลือกในการถอนการติดตั้ง

  • ล้างแพ็คเกจ (รวมถึงตัวเลือก--forceขึ้นอยู่กับ # 2)

    sudo apt-get --purge remove --force mysql-server-5.0

  • ตรวจสอบให้แน่ใจว่าไฟล์ตัวติดตั้งนั้นถูกล้างด้วยการเรียกใช้

    sudo apt-get autoclean
    sudo apt-get autoremove

  • ติดตั้งแพ็คเกจเซิร์ฟเวอร์อีกครั้ง

    sudo apt-get install mysql-server-5.0

หวังว่านี่จะช่วยแก้ปัญหาของคุณได้ อย่างไรก็ตามแพคเกจอาจยังใช้งานไม่ได้หากคุณทำการเปลี่ยนแปลงใด ๆ กับไฟล์ที่มาจากแพ็คเกจทั่วไป mysql

mysql-commonเป็นแพ็คเกจพื้นฐานที่ใช้โดยทั้งไคลเอ็นต์และส่วนประกอบเซิร์ฟเวอร์ หากสิ่งต่าง ๆ ยังใช้งานไม่ได้ให้ลองติดตั้งแพคเกจนี้อีกครั้ง จะมีแพ็คเกจที่ขึ้นอยู่กับสิ่งนี้อย่างแน่นอน ตรวจสอบโดยใช้ # 2 ด้านบน ล้างMySQL เซิร์ฟเวอร์ก่อนที่จะติดตั้งMySQL ทั่วไป นอกจากนี้อย่าลืมติดตั้งmysql- ร่วมกันมิฉะนั้นระบบของคุณจะเสียมาก


1

คุณอาจต้องการaptitudeลองซึ่งมีการจัดการที่ดีกว่า:

sudo aptitude remove mysql-server-5.0

ข้อผิดพลาดที่นี่คือdpkgดังนั้นฉันไม่คิดว่าaptitudeจะดีกว่า อย่าเข้าใจฉันผิดฉันหมดเวลาaptitudeไปapt-getแล้ว แต่ในตอนท้ายของวันพวกเขาทั้งสองส่งมอบความเมตตาแท้ที่แท้จริงให้กับdpkgคุณ
Telemachus

;-) ฉันแค่คิดว่ามันอาจจะคุ้มค่าที่จะลอง
innaM

0

ลอง

sudo dpkg -i reconfigure mysql-server-5.0
sudo apt-get remove --force mysql-server-5.0

หากเป็นแพ็คเกจอื่นที่ใช้งานไม่ได้ให้ลองใช้apt-get remove --forceแพ็คเกจนั้นด้วย


0

dpkgข้อผิดพลาดที่คุณต้องแสดงให้เห็นว่ามีปัญหาเกิดขึ้นเมื่อdpkgพยายามที่จะลบจริงแพคเกจ (ในตอนท้ายของวันที่apt-getและSynapticและมือเช่นปิดการทำงานที่แท้จริงdpkg.)

คุณได้ลองทำสิ่งที่ข้อความพูดและติดตั้งใหม่ก่อน?

apt-get install --reinstall mysql-server-5.0

โง่อย่างที่อาจฟังดูหากdpkgสำลักในระหว่างขั้นตอนการลบ (เพราะไฟล์บางไฟล์ที่ควรจะลบได้หายไปในระหว่างกาล) จากนั้นการติดตั้งใหม่แล้วการลบบางครั้งอาจช่วยได้ ตรวจสอบให้แน่ใจว่าmysqlไม่ได้ทำงานก่อนที่คุณพยายามที่จะติดตั้งหรือลบมันเป็นnagul แสดงให้เห็น


0

dpkg -r --force-remove-reinstreq <package> ลบแพ็กเกจโดยไม่ตรวจสอบว่าจำเป็นต้องติดตั้งใหม่หรือไม่

หลังจากนั้นคุณจะสามารถติดตั้งแพคเกจใหม่ได้ด้วยตัวจัดการแพ็คเกจที่คุณต้องการ


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