Làm cách nào để xác định vị trí và xóa Gói bị hỏng mà tôi đã cài đặt?


11

Tôi đã duyệt một số câu hỏi ở đây để tìm một giải pháp để định vị và loại bỏ các gói bị hỏng. Là người mới làm quen, tôi đã cài đặt một số PPA được thiết kế cho 11.10 trên máy 12.04 LTS của mình. Trong terminal, nó gợi ý tôi thử cài đặt apt-get -f, điều này đưa tôi đến câu hỏi này Một bài học lớn cho tôi, nếu có ai có thể giúp

Câu trả lời:


6

Synaptic Gói Manager (có sẵn trong Trung tâm phần mềm) là một công cụ đồ họa để quản lý các gói và trong số nhiều tính năng, nó cho phép bạn lọc các gói theo trạng thái của chúng. Trong vài cú nhấp chuột, bằng cách chọn danh mục mong muốn trên bảng điều khiển bên trái, bạn sẽ được cung cấp danh sách các gói yêu cầu sửa chữa.


28
  • Cài đặt Trình quản lý gói Synaptic, thông qua Trung tâm phần mềm hoặc bằng cách chạy lệnh này trong Terminal:

     sudo apt-get install synaptic 
    
  • Mở nó bằng cách gõ synapticvào dấu gạch ngang Unity và sau đó nhấn Enter.

  • Sau đó làm theo thủ tục này:

    1. Chọn danh mục "Trạng thái". Điều này cho thấy các gói được tổ chức theo trạng thái.
    2. Chọn danh mục "Phụ thuộc bị hỏng" từ khung bên trái phía trên.
    3. Chọn các gói bị hỏng. Nếu các gói nhiều hơn một, chọn tất cả chúng bằng cách nhấn Ctrl+ A.
    4. Sau đó nhấp chuột phải vào gói đã chọn và chọn tùy chọn "Đánh dấu để xóa hoàn toàn" trong menu.

    Ảnh chụp màn hình hiển thị "Đánh dấu để loại bỏ hoàn toàn" trên các gói có phụ thuộc bị hỏng

Đó là nó. Các gói bị hỏng đã biến mất.


Tôi không có Broken dependenciestrong trang trạng thái của tôi.
Đánh dấu

3

Không cần tải xuống, không cần GUI:

Bạn có thể liệt kê các gói bị hỏng:

dpkg -l | grep ^..r 

trạng thái r (trên trường thứ ba) có nghĩa là: yêu cầu khôi phục (gói bị hỏng, yêu cầu cài đặt lại)

giải thích trường dpkg

Để liệt kê và loại bỏ các gói này:

dpkg -l | grep ^..r | while read -r | tr -s ' ' | cut -d' ' -f2 | while read -r name; do sudo apt-get remove "$name"; done

(Câu trả lời được sao chép từ chủ đề này .)


1

Để dọn dẹp các gói bạn đã cài đặt từ ppa, bạn nên sử dụng ppa-purge, giả sử ppa là ppa: xorg-edger / ppa

  1. sudo apt-get install ppa-purge
  2. sudo apt-get update
  3. sudo ppa-purge ppa:xorg-edger/ppa
  4. nó sẽ nhắc bạn một danh sách các gói cần xóa và / hoặc hạ cấp, nếu không có gì đáng nghi, hãy trả lời Y và chờ
  5. Nếu bạn may mắn, nó sẽ kết thúc với lỗi, nếu không bạn sẽ cần phải làm một sudo apt-get install -f

Nếu sau bước 5 bạn vẫn gặp lỗi, hãy quay lại và cập nhật câu hỏi của bạn.

Chúc may mắn.


E: Không thể xác định vị trí gói ppa-purge
stiv

Tôi sẽ thứ hai rằng .. ppa-purge không tồn tại.
John Drefahl

0

Tôi đã tạo một kịch bản để sửa các gói bị hỏng. Điều này tìm kiếm các gói bị hỏng trong /var/log/dist-upTHER/apt.log và sau đó tìm tên gói sau đó áp dụng lệnh được chỉ định trên chúng.

Hãy cẩn thận về việc sử dụng tập lệnh này, bởi vì đôi khi một số gói bị hỏng có liên quan đến hệ thống và có thể gây ra sự cố mới. Vì vậy, sử dụng lệnh cài đặt hoặc nâng cấp thay vì lệnh remove .

Lấy nó từ đây

Tải xuống tập lệnh bằng lệnh dưới đây:

wget https://gist.githubusercontent.com/EmpireWorld/8eb920165777399cfd684d8d4227a6e2/raw/17e6d4a151a6163aa45dd8302b965ed433b27741/fix-broken.sh

Sau đó chạy nó:

./fix-broken.sh

Ngoài ra, bạn có thể đặt hành động bạn muốn áp dụng cho các gói bị hỏng như thế này:

./fix-broken (install|upgrade|remove)

Các hành động mặc định là loại bỏ .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.