Score:2

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

ธง in

หลังจาก ทำปล่อยอัพเกรด เพื่อเปลี่ยนจาก 16.04 เป็น 18.04 มีบางอย่างล้มเหลวและเครื่องถูกปล่อยให้อยู่ในสถานะ "อยู่ระหว่าง" โดยมีปัญหาการพึ่งพาที่เสียหายจำนวนมาก ต้นไม้บรรจุภัณฑ์ของฉันยุ่งเหยิง ฉันหมดหวัง... ;-)

ฉันลองหลายสิ่งหลายอย่าง (รวมถึง dpkg --configure -ก, สุ่มเอาแพ็คเกจออกด้วย dpkg --force ขึ้นอยู่กับ -P <pkg-ชื่อ>และอื่น ๆ ) แต่ฉันค่อนข้างติดอยู่ในปัจจุบัน

ดังนั้นเมื่อฉันพยายาม:

$ sudo apt --fix-breaked ติดตั้ง
กำลังอ่านรายการแพ็กเกจ...เสร็จแล้ว
สร้างต้นไม้พึ่งพา       
กำลังอ่านข้อมูลสถานะ...
แก้ไขการอ้างอิง... เสร็จสิ้น
แพ็คเกจต่อไปนี้ได้รับการติดตั้งโดยอัตโนมัติและไม่จำเป็นอีกต่อไป:
   (ที่นี่ 20 บรรทัด)
จะมีการติดตั้งแพ็คเกจเพิ่มเติมต่อไปนี้:
...(ตรงนี้ 5 บรรทัด)
 แพ็คเกจแนะนำ:
 ... มากกว่า
แพ็คเกจแนะนำ:
 ... มากกว่า
แพ็คเกจต่อไปนี้จะถูกลบออก:
 ... มากกว่า
แพ็คเกจใหม่ต่อไปนี้จะถูกติดตั้ง:
 ... เพิ่มเติม (10 บรรทัด)
อัปเกรดแล้ว 28 รายการ ติดตั้งใหม่ 6 รายการ 1 รายการที่จะลบ และ 327 รายการที่ไม่ได้อัปเกรด
228 ไม่ได้ติดตั้งหรือถอดออกอย่างสมบูรณ์
จำเป็นต้องได้รับ 0 B/13,3 MB ของไฟล์เก็บถาวร
หลังจากการดำเนินการนี้ จะมีการใช้พื้นที่ดิสก์เพิ่มเติม 2â¯771 kB
คุณต้องการดำเนินการต่อหรือไม่ [ใช่/ไม่ใช่] 

ถึงตรงนี้ ไม่มีอะไรที่ฉันกลัว แต่ตอนนี้เข้า วาย:

แยกเทมเพลตออกจากแพ็คเกจ: 100%
(กำลังอ่านฐานข้อมูล ... 977800 ไฟล์และไดเร็กทอรีที่ติดตั้งอยู่ในขณะนี้)
การลบ ubuntu-advantage-tools (27.0.2~18.04.1) ...
Traceback (การโทรครั้งล่าสุดล่าสุด):
  ไฟล์ "<string>" บรรทัดที่ 2 ใน <โมดูล>
  ไฟล์ "/usr/lib/python3/dist-packages/uaclient/apt.py" บรรทัดที่ 9 ใน <โมดูล>
    จาก uclient นำเข้า gpg
  ไฟล์ "/usr/lib/python3/dist-packages/uaclient/gpg.py" บรรทัดที่ 3 ใน <โมดูล>
    นำเข้าปิด
ModuleNotFoundError: ไม่มีโมดูลชื่อ 'shutil'
dpkg: แพ็คเกจการประมวลผลข้อผิดพลาด ubuntu-advantage-tools (--remove):
 ติดตั้งแพ็คเกจ ubuntu-advantage-tools สคริปต์ก่อนการลบกระบวนการย่อยส่งคืนสถานะการออกจากข้อผิดพลาด 1
พบข้อผิดพลาดขณะประมวลผล:
 เครื่องมืออูบุนตูได้เปรียบ
E: กระบวนการย่อย /usr/bin/dpkg ส่งคืนรหัสข้อผิดพลาด (1)

นี่ฟังดูเหมือนข้อผิดพลาดของ Python จากที่ฉันเข้าใจ มันหาไม่เจอ ปิด. ดังนั้นฉันจึงดาวน์โหลดสิ่งที่ฉันคิดว่าเป็นสิ่งนั้นด้วยตนเอง: https://packages.ubuntu.com/bionic/python-backports-shutil-get-terminal-size และติดตั้งด้วยตนเองด้วย:

dpkg -i sudo dpkg -i python-backports-shutil-get-terminal-size_1.0.0-5_all.deb

แต่กำลังทำ apt --fix-breaked ติดตั้ง จบลงที่จุดเดิมอีกครั้ง

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

ปัจจุบันฉันสามารถติดตั้งแพ็คเกจด้วยตนเองได้ (ดาวน์โหลดจาก https://packages.ubuntu.com/ แล้ว dpkg -i) แต่ก็แค่นั้นแหละ อย่างอื่นล้มเหลว

ตัวอย่างเช่น หากฉันพยายามติดตั้ง libpython3.6-stdlib:

$ sudo apt-get install libpython3.6-stdlib

ฉันเข้าใจ:

libpython3.6-stdlib : ขึ้นอยู่กับ: libpython3.6-minimal (= 3.6.9-1~18.04ubuntu1.4) แต่จะต้องติดตั้ง 3.6.13-1+xenial2

ซึ่งหมายความว่าฉัน นิ่ง มีแพ็คเกจตั้งแต่ 16.04 (Xenial)

ด้วยตนเองได้อย่างไร ลบ แพ็คเกจ 16.04 ทั้งหมด?

ข้อมูลเพิ่มเติม (ตอนนี้เครื่องบูทด้วยคอนโซลเท่านั้น):

  • $ หลาม --version => ไพธอน 3.6.13
  • $lsb_release -a ไม่สามารถใช้งานได้
  • $ uname -a บอกฉันว่าเป็นเคอร์เนล 4.15 (ซึ่งดูเหมือนสอดคล้องกับ 18.04)
N0rbert avatar
zw flag
คำสั่งเช่น `sudo apt-get dist-upgrade; sudo aptitude safe-upgrade` น่าจะช่วยได้
in flag
@ N0rbert ขอบคุณ ฉันลอง dist-upgrade แล้ว แต่ล้มเหลวเนื่องจากการพึ่งพาที่เสียหาย ไม่ทราบเกี่ยวกับอันที่สอง ขอบคุณ
Score:3
ธง in

FWIW: ประเด็นสำคัญคือความจริงแล้วที่นี่:

dpkg: แพ็คเกจการประมวลผลข้อผิดพลาด ubuntu-advantage-tools (--remove):
 ติดตั้งแพ็คเกจ ubuntu-advantage-tools สคริปต์ก่อนการลบกระบวนการย่อยส่งคืนสถานะการออกจากข้อผิดพลาด 1

กระบวนการทั้งหมดล้มเหลวเนื่องจากความล้มเหลวของสคริปต์ "pre-removal" สำหรับแพ็คเกจ เครื่องมืออูบุนตูได้เปรียบ (ไม่รู้ว่าสิ่งนั้นคืออะไร!)

ดังนั้นฉันจึง:

$ sudo mv /var/lib/dpkg/info/ubuntu-advantage-tools.prerm /var/lib/dpkg/info/ubuntu-advantage-tools.prerm_OLD

และฉันก็สามารถทำสำเร็จ sudo apt --fix-breaked ติดตั้ง สั่งการ.

รีบูต จากนั้นปัญหาอื่น (ไม่รู้จักแป้นพิมพ์) ที่แก้ไขได้โดยใช้ คำถามอื่นหลังจากบู๊ตในโหมดการกู้คืน:

$ sudo apt-get install xserver-xorg-input-all

ในที่สุดก็สามารถบูตแบบกราฟิกได้ แต่... ยังมีปัญหาบางอย่างเกี่ยวกับตัวจัดการแพ็คเกจที่ยังคงอ้างอิง xenial (16.04) ฉันจะโพสต์คำถามอื่น

in flag
ในที่สุดก็แก้ไขทุกอย่าง ด้วยความช่วยเหลือของ `dpkg -l | grep python*` ฉันลบแพ็คเกจ python เก่าทั้งหมดที่ระบุว่าเป็น 16.04 (หรือแม้แต่ 14.04 บางส่วน!) โดยใช้ `dpkg --remove `.
Score:1
ธง es

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

ฉันจะคัดลอกด้วย / ฯลฯ ออกไปในกรณีที่ไฟล์การกำหนดค่าที่ไม่สำคัญบางไฟล์นั้นคุ้มค่าที่จะช่วยเหลือ (แต่ฉันจะระงับการคัดลอกไปยังระบบใหม่เว้นแต่จะจำเป็นจริงๆ)

คิดแบบนี้: ระบบนั้นให้บริการคุณได้ดีมาหลายปี (หลังจากปี 2559 เนื่องจากเป็น 16.04); ให้มันอยู่ในความสงบ ;-) ถึงเวลาแล้วสำหรับสิ่งใหม่และสะอาด

ครั้งหนึ่งฉันเคยสร้างรายการตรวจสอบสำหรับตัวเองว่าสิ่งที่ฉันทำกับ Ubuntu ที่เพิ่งติดตั้งใหม่เพื่อให้มีรูปร่างที่ฉันคิดว่าใช้งานได้ดีที่สุด บางทีคุณอาจได้รับแรงบันดาลใจจากมัน: https://github.com/shundhammer/huha-linux-tips/blob/master/doc/ubuntu-tips.md (บางส่วนอาจล้าสมัยเล็กน้อย ไม่เป็นไร)

in flag
ระบบห่วยแตกจริงๆ! จริงๆ แล้วเครื่องนั้นรัน 14.04 ก่อนหน้านั้นด้วยซ้ำ ใช่ ค่อนข้างเก่า แต่ฉันจะไม่ปล่อยมือ ฉันยังคงลองสิ่งต่างๆ อยู่ ;-) และขอบคุณสำหรับรายการตรวจสอบนั้น ไอเดียดีๆ ที่นั่น

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา