Làm cách nào để xác định gói nào cần nâng cấp trong Arch Linux?


8

Tôi biết rằng pacman -Sunâng cấp tất cả các gói. Nhưng làm thế nào tôi có thể nhận được danh sách các gói cần nâng cấp?

Câu trả lời:


11

Nhìn vào trang người đàn ông giống như

pacman -Syu

để đồng bộ hóa cơ sở dữ liệu lên phiên bản mới nhất theo sau

pacman -Qu

đến

-u, - nâng cấp

Restrict or filter output to packages that are out of date on the

hệ thống địa phương. (Chỉ các phiên bản gói được sử dụng để tìm các gói lỗi thời, thay thế không được kiểm tra ở đây.) Tùy chọn này hoạt động tốt nhất nếu cơ sở dữ liệu đồng bộ được làm mới bằng cách sử dụng -Sy.


1
NGUY HIỂM : Tài liệu nói "không bao giờ chạy pacman -Sy" (nguồn: wiki.archlinux.org/index.php/iêu )
blippy

1
@blippy Tài liệu đó không tồn tại khi câu trả lời này được viết, đó là lần sửa đổi sớm nhất là một số lần sau . Hơn nữa, tuyên bố mà bạn giới thiệu không được thêm vào tài liệu cho đến khi (ngày 23 tháng 10 năm 2015) [ wiki.archlinux.org/ ( )) hơn 4 năm sau đó. Thay vì quá khoa trương, bạn chỉ nên chỉnh sửa câu trả lời và tham chiếu tài liệu là lý do cho yêu cầu thay đổi của bạn Cũng lưu ý rằng ngay cả bây giờ trang người đàn ông không đưa ra cảnh báo nào như vậy.
dùng9517

2
chỉ muốn làm rõ quá - lý do không chạy pacman -Sylà để tránh cài đặt các gói từ các bản cập nhật cơ sở dữ liệu gói khác nhau. ví dụ pacman -S <something>có thể cung cấp cho bạn một gói khác nhau và phụ thuộc hơn pacman -Sy && pacman -S <something>. Tuy nhiên, từ tài liệu của họ, có vẻ như đây pacman -Sy && pacman -Qulà câu trả lời chính xác cho câu hỏi của OP. Chỉ cần chắc chắn rằng bạn cuối cùng chạy pacman -Sutrước khi cài đặt bất kỳ gói.
aaaaaa

1
Tôi chỉ muốn làm rõ rằng bài báo không nói pacman -Sytự nó là xấu. Nó thậm chí không nói nó "xấu" hay "nguy hiểm". Nó chỉ đơn thuần nói rằng việc nâng cấp một phần không được hỗ trợ và bạn nên tránh nó. Nói cách khác, chạy pacman -Sy và sau đó chạy pacman -S <some package with dependencies>có khả năng phá vỡ một thứ khác có cùng phụ thuộc. Chạy một cái gì đó như pacman -Sy && pacman -S man-pageschỉ nhận được các trang con người mới nhất sẽ hoàn toàn ổn (trang con người không có phụ thuộc và không được yêu cầu bởi bất kỳ gói nào khác).
Drew Chapin

Đó là 5 ngày sau khi bạn quên bạn đã chạy pacman -Syvà chạy pacman -S nvidiarằng bạn có khả năng phá vỡ một cái gì đó.
vẽ Chapin

7
checkupdates

Các kiểm tra tập lệnh bash, bao gồm gói pacman, cung cấp một cách an toàn để kiểm tra nâng cấp lên các gói đã cài đặt mà không cần chạy cập nhật hệ thống cùng một lúc.

Bảo trì hệ thống


Đây phải là câu trả lời đúng
Nitz

0

Như @Panagiotis đã đề cập, checkupdatescung cấp một cách để làm điều này mà không yêu cầu root hoặc làm rối /var/lib/pacmancơ sở dữ liệu của bạn . Đây là một phiên bản tối thiểu:

TMPPATH="${TMPDIR:-/tmp}/checkup-db-${USER}"
DBPATH="$(pacman-conf DBPath)"

mkdir -p "$TMPPATH"
ln -s "$DBPATH/local" "$TMPPATH" &>/dev/null
fakeroot -- pacman -Sy --dbpath "$TMPPATH" --logfile /dev/null &>/dev/null
pacman -Qu --dbpath "$TMPPATH" 2>/dev/null

Nó hoạt động bằng cách:

  1. Tạo một thư mục tạm thời cho cơ sở dữ liệu của bạn.
  2. Liên kết của bạn /var/lib/pacman/local.
  3. Chạy pacman -Sytrên thư mục tạm thời của bạn.
  4. Truy vấn qua pacman -Quthư mục tạm thời của bạn.
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.