Làm cách nào để tìm các gói đã cài đặt không có ứng viên cài đặt?


7

Tôi muốn lấy danh sách các gói đã cài đặt không có ứng cử viên cài đặt (ví dụ: vì tôi đã xóa một mục nhập tệp nguồn apt). Làm thế nào tôi có thể làm điều đó trên các hệ thống dựa trên Debian?


Bạn có thể sử dụng apt-show-versionsvà grep cho No available version in archive.
Faheem Mitha

Câu trả lời:



2

Điều này đã được cập nhật:

for package in $(dpkg -l | awk '/ii/{print $2}'); do
     if ! grep -xq "Package: $package" /var/lib/apt/lists/*Packages; then
         echo $package
     fi
done

Sử dụng chính sách apt-cache:

for package in $(dpkg -l | awk '/ii/{print $2}'); do
    if ! apt-cache policy $package | grep -q '[0-9] http://'; then
        echo $package
    fi
done

Thật không may, điều này dường như không quan tâm: các gói i386 trên các hệ thống có hỗ trợ multiarch. Phân tích cú pháp đầu ra apt-cache policy <package>sẽ hoạt động, nhưng điều đó sẽ khá chậm tôi tưởng tượng.
htorque

Hãy cho tôi một ví dụ về kết quả đầu ra của apt-cache policyhệ thống multiarch của bạn.
Teresa e Junior

Ví dụ cho gói như vậy không có ứng cử viên cài đặt ...
Teresa e Junior

paste.ubfox.com/811658 - nhưng tôi có một ý tưởng khác: thử apt-get download -stất cả các gói đã cài đặt.
htorque

Bạn apt-cache policykhông giúp đỡ và apt-get downloadkhông tồn tại trong Debian.
Teresa e Junior

0

Chỉ cần cập nhật các gói của bạn với

sudo apt-get install update

Trong hầu hết các trường hợp, nó sẽ giải quyết các vấn đề. Nếu có bất kỳ vấn đề phụ thuộc chưa được đáp ứng nào phát sinh, hãy sử dụng cái này

sudo apt-get -f install
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.