Điểm:2

Bản cập nhật bị hỏng và gói lộn xộn: làm cách nào để xóa các gói cũ theo cách thủ công?

lá cờ in

Sau một do-phát hành-nâng cấp để chuyển từ 16.04 sang 18.04, đã xảy ra sự cố và máy ở trạng thái "ở giữa", với nhiều sự cố phụ thuộc bị hỏng. Cây gói của tôi là một mớ hỗn độn, tôi tuyệt vọng ... ;-)

Tôi đã thử rất nhiều thứ (bao gồm cả dpkg --configure -a, loại bỏ ngẫu nhiên các gói với dpkg --force phụ thuộc -P <pkg-name>, cộng với những thứ khác), nhưng hiện tại tôi đang bị mắc kẹt.

Vì vậy, khi tôi thử:

$ sudo apt --cài đặt bị hỏng
Đọc danh sách gói... Xong
Xây dựng cây phụ thuộc       
Đang đọc thông tin trạng thái... Xong
Sửa lỗi phụ thuộc... Xong
Các gói sau đã được cài đặt tự động và không còn cần thiết nữa:
   (ở đây 20 dòng)
Các gói bổ sung sau sẽ được cài đặt:
... (ở đây 5 dòng)
 Các gói đề xuất:
 ... hơn
Gói khuyến nghị:
 ... hơn
Các gói sau sẽ bị LOẠI BỎ:
 ... hơn
Các gói MỚI sau đây sẽ được cài đặt:
 ... nữa (10 dòng)
28 đã nâng cấp, 6 mới cài đặt, 1 cần gỡ bỏ và 327 chưa nâng cấp.
228 chưa được cài đặt hoặc gỡ bỏ hoàn toàn.
Cần lấy 0 B/13,3 MB lưu trữ.
Sau thao tác này, 2â¯771 kB dung lượng ổ đĩa bổ sung sẽ được sử dụng.
Bạn có muốn tiếp tục? [Y/n] 

Đến đây, tôi không sợ bất cứ điều gì. Nhưng bây giờ, bước vào Y:

Trích xuất các mẫu từ các gói: 100%
(Đọc cơ sở dữ liệu ... 977800 tệp và thư mục hiện được cài đặt.)
Xóa ubuntu-advantage-tools (27.0.2~18.04.1) ...
Traceback (cuộc gọi gần đây nhất cuối cùng):
  Tệp "<string>", dòng 2, trong <module>
  Tệp "/usr/lib/python3/dist-packages/uaclient/apt.py", dòng 9, trong <module>
    từ uaclient nhập gpg
  Tệp "/usr/lib/python3/dist-packages/uaclient/gpg.py", dòng 3, trong <module>
    đóng cửa nhập khẩu
ModuleNotFoundError: Không có mô-đun nào có tên 'shutil'
dpkg: gói xử lý lỗi ubuntu-advantage-tools (--remove):
 đã cài đặt ubuntu-advantage-tools quy trình con tập lệnh loại bỏ trước gói đã trả về trạng thái thoát lỗi 1
Đã bắt gặp các lỗi trong quá trình xử lí thông tin:
 ubuntu-advantage-tools
E: Tiến trình con /usr/bin/dpkg trả về mã lỗi (1)

Vì vậy, điều này nghe giống như một lỗi Python, theo những gì tôi hiểu, nó không thể tìm thấy đóng cửa. Vì vậy, tôi đã tải xuống theo cách thủ công những gì tôi nghĩ là: https://packages.ubuntu.com/bionic/python-backports-shutil-get-terminal-size và được cài đặt thủ công với:

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

Nhưng làm cài đặt apt --fix-break một lần nữa kết thúc tại cùng một điểm.

Tôi có kiến ​​thức hạn chế về Python, vì vậy tôi không thể chắc đây có phải là vấn đề thực sự hay không, nhưng mọi trợ giúp đều được hoan nghênh. Nếu không, bước tiếp theo có thể sẽ là cài đặt lại từ đầu, nhưng tôi thực sự muốn tránh điều đó.

Hiện tại tôi có thể cài đặt thủ công các gói (tải xuống từ https://packages.ubuntu.com/ sau đó dpkg -i) nhưng đó là về nó, mọi thứ khác đều thất bại.

Ví dụ: nếu tôi cố gắng cài đặt libpython3.6-stdlib:

$ sudo apt-get cài đặt libpython3.6-stdlib

Tôi có:

libpython3.6-stdlib : Phụ thuộc: libpython3.6-minimal (= 3.6.9-1~18.04ubuntu1.4) nhưng 3.6.13-1+xenial2 sẽ được cài đặt

điều đó có nghĩa là tôi vẫn có các gói từ 16.04 (Xenial).

Làm thế nào tôi có thể thủ công gỡ bỏ tất cả các gói 16.04?

Thông tin bổ sung (máy hiện chỉ khởi động với bảng điều khiển):

  • $ trăn --version => Trăn 3.6.13
  • $ lsb_release -a không có sẵn
  • $ uname -a cho tôi biết đó là kernel 4.15 (có vẻ phù hợp với 18.04)
N0rbert avatar
lá cờ zw
Các lệnh như `sudo apt-get dist-upgrade; Sudo aptitude safe-upgrade` sẽ giúp ích.
lá cờ in
@ N0rbert Cảm ơn, tôi đã thử nâng cấp từ xa, nhưng không thành công do phụ thuộc bị hỏng. Không biết về cái thứ hai, cảm ơn.
Điểm:3
lá cờ in

FWIW: Điểm mấu chốt thực tế là ở đây:

dpkg: gói xử lý lỗi ubuntu-advantage-tools (--remove):
 đã cài đặt ubuntu-advantage-tools quy trình con tập lệnh loại bỏ trước gói đã trả về trạng thái thoát lỗi 1

Toàn bộ quá trình không thành công do tập lệnh "gỡ bỏ trước" cho gói không thành công ubuntu-advantage-tools (không biết đó là thứ gì!).

Tôi cũng vậy:

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

và tôi đã có thể hoàn thành sudo apt --fix-break cài đặt chỉ huy.

Khởi động lại, sau đó một sự cố khác (bàn phím không được nhận dạng) đã được giải quyết bằng cách sử dụng câu hỏi khác, sau khi khởi động ở chế độ khôi phục:

$ sudo apt-get cài đặt xserver-xorg-input-all

Cuối cùng đã có thể khởi động bằng đồ họa, nhưng ... vẫn còn một số vấn đề với trình quản lý gói vẫn tham chiếu xenial (16.04). Tôi sẽ đăng một câu hỏi khác.

lá cờ in
Cuối cùng đã sửa mọi thứ. Với sự trợ giúp của `dpkg -l | grep python*`, tôi đã xóa tất cả các gói python cũ được xác định là 16.04 (hoặc thậm chí một số gói 14.04!), sử dụng `dpkg --remove `.
Điểm:1
lá cờ es

Điều này nghe giống như một hệ thống rất bệnh hoạn; bạn có thể muốn đưa nó ra khỏi tình trạng khốn khổ của nó, tức là cài đặt lại. Nếu bạn không có riêng /Trang Chủ đã có hệ thống tập tin, hãy sao chép thư mục chính của bạn và mọi thứ mà bạn đã bỏ công sức vào đó và bắt đầu lại để có được một hệ thống sạch sẽ trở lại.

Tôi cũng sẽ sao chép /vân vân chỉ trong trường hợp một số tệp cấu hình không tầm thường đáng được giải cứu (nhưng tôi sẽ không sao chép nó vào hệ thống mới trừ khi thực sự cần thiết).

Hãy nghĩ về nó theo cách này: Hệ thống đó đã phục vụ bạn rất tốt trong nhiều năm (một số thời điểm ngay sau năm 2016 kể từ ngày 16.04); hãy để nó yên nghỉ. ;-) Bây giờ là lúc cho một cái gì đó mới và sạch sẽ.

Tôi đã từng lập một danh sách kiểm tra cho mình những thứ tôi làm với Ubuntu mới cài đặt để biến nó thành hình dạng mà tôi thấy có thể sử dụng được tốt nhất; có lẽ bạn có thể rút ra một số cảm hứng từ nó: https://github.com/shundhammer/huha-linux-tips/blob/master/doc/ubuntu-tips.md (một số phần có thể hơi lỗi thời; đừng bận tâm)

lá cờ in
Thật vậy, rất bệnh hệ thống! Trên thực tế, chiếc máy đó thậm chí đã chạy 14.04 trước đó, vì vậy, khá cũ. Nhưng tôi sẽ không bỏ qua, tôi vẫn đang thử mọi thứ ;-) Và cảm ơn vì danh sách kiểm tra đó, những ý tưởng hay ở đó.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.