Câu trả lời:
grep-dctrl
và các dẫn xuất của nó cung cấp một cách tuyệt vời để truy vấn các tệp bộ đệm apt. (Bạn có thể cài đặt các công cụ này trên ubfox với sudo apt-get install dctrl-tools)
Trong trường hợp các gói có sẵn (nhưng không nhất thiết phải cài đặt), bạn có thể sử dụng grep-available
. Ví dụ: để liệt kê tất cả các gói có sẵn:
grep-available -s Package .
Biên tập:
aptitude
có thể hiển thị cho bạn một danh sách các Gói chưa được cài đặt bằng cách chỉ khởi chạy nó.
Bạn cũng có thể nhận danh sách các gói chưa được cài đặt aptitude
bằng cách sử dụng:
aptitude -F "%p" search "?not(?installed)"
Lưu ý rằng với các gói đa vòm mới, bạn sẽ nhận được các gói cho các kiến trúc khác được liệt kê trong kết quả này. Ví dụ: tôi nhận được:
aptitude -F "%p" search "?not(?installed)" | grep "^bash:"
bash:i386
Tôi đã bash
cài đặt gói, nhưng đó là phiên bản amd64, vì hệ điều hành của tôi được cài đặt với phiên bản amd64 của Ubuntu Precise. Nếu bạn không muốn xem các gói này cho các kiến trúc khác, bạn có thể loại trừ các dòng có chứa :
:
aptitude -F "%p" search "?not(?installed)" | grep -v ':'
apt-cache
được sử dụng để truy vấn bộ đệm của gói:
apt-cache pkgnames | sắp xếp
điều tìm kiếm apt-cache
tìm kiếm apt-cache - điều chỉ tên
code
"dpkg --get-selections | grep '[[: space:]] install $' | awk '{print $ 1}' > install.txt "và tìm thấy các bản sao. Hai lệnh khác mà bạn cung cấp sẽ không hoạt động vì tôi không tìm kiếm một gói cụ thể mà là bất kỳ gói nào hiện chưa được cài đặt.
Sử dụng apt-cache
cho mục đích này:
apt-cache search package
Vì apt-cache
chỉ sử dụng bộ đệm gói trên hệ thống, hãy đảm bảo rằng bộ đệm này được cập nhật:
apt-get update
Bạn cũng có thể sử dụng tiện ích apt-file
nếu bạn biết tên của tệp bạn muốn tìm kiếm; điều này phải được thêm vào hệ thống tuy nhiên. Ví dụ:
apt-file search somefilename
Tôi có xu hướng sử dụng apt-cache
theo một trong những cách sau:
apt-cache search package | sort | grep item
(Điều này cho bạn thấy những thứ có mục thực sự trong tóm tắt hoặc tên của họ.)
apt-cache search thing | sort | less
(Điều này tìm kiếm thứ sau đó sắp xếp nó để xem dễ chịu với less
.)
Quan điểm của tôi là làm việc với các lệnh được cài đặt theo mặc định và tránh các gói bổ sung nếu không có bất kỳ lý do cụ thể nào.
Trong Debian của tôi với GNU bash các lệnh đơn giản này
apt list
apt list --all-versions
đưa ra một danh sách bất cứ điều gì (cài đặt và không cài đặt). Sau đó tôi có thể giới hạn kết quả với grep "đã cài đặt" hoặc grep -v "đã cài đặt". Nó cũng có thể được kết hợp với một hoặc nhiều tên gói (dấu tự nhiên được chấp nhận).
Chuyển đổi "-all-Phiên bản" cung cấp các dòng đầu ra riêng biệt cho từng phiên bản gói (ổn định, thử nghiệm, không ổn định, thử nghiệm).
"Danh sách apt" đơn giản chỉ cung cấp một phiên bản (ưu tiên cao nhất).
Đặt câu hỏi của bạn một cách nghiêm ngặt (bạn muốn hiển thị một danh sách các gói chưa được cài đặt), hãy thử sử dụng
(chỉnh sửa theo ý kiến dưới đây)
# apt-get update
# dpkg -l '*' | egrep --invert-match '^i'
Không chắc chắn về cú pháp chính xác, vì tôi đang viết điều này trên một hộp cửa sổ và không có cách nào để kiểm tra. Có thể cố gắng thay đổi những gì bạn grep trên
'^ii'
chứ không phải '[ii]'
), bạn đang thiếu các gói được cài đặt nhưng không được định cấu hình chẳng hạn (như iF
hoặc iH
ví dụ).