Bagaimana cara menentukan paket mana yang perlu ditingkatkan di Arch Linux?

8

Saya tahu bahwa pacman -Sumeningkatkan semua paket. Tetapi bagaimana saya bisa mendapatkan hanya daftar paket yang perlu ditingkatkan?

Eugene Yarmash
sumber

Jawaban:

11

Melihat sesuatu seperti halaman manual

pacman -Syu

untuk menyinkronkan database hingga versi terbaru diikuti oleh

pacman -Qu

untuk

-u, --upgrade

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

sistem lokal. (Hanya versi paket yang digunakan untuk menemukan paket usang, penggantian tidak dicentang di sini.) Opsi ini berfungsi paling baik jika database sinkronisasi di-refresh menggunakan -Sy.

Iain
sumber
1
BERBAHAYA : Dokumentasi mengatakan "tidak pernah berjalan pacman -Sy" (sumber: wiki.archlinux.org/index.php/… )
blippy
1
@blippy Dokumen itu tidak ada ketika jawaban ini ditulis, revisi paling awal adalah beberapa biarawan kemudian . Selanjutnya, pernyataan yang Anda rujuk tidak ditambahkan ke dokumen sampai (23 Okt 2015) [ wiki.archlinux.org/… ) lebih dari 4 tahun kemudian. Daripada bersikap melodramatik, Anda seharusnya mengedit jawaban dan merujuk dokumen sebagai alasan permintaan perubahan Anda. Juga catat bahwa bahkan sekarang halaman manual tidak membuat peringatan seperti itu.
user9517
2
hanya ingin mengklarifikasi juga - alasan untuk tidak berjalan pacman -Syadalah untuk menghindari menginstal paket dari pembaruan paket database yang berbeda. misalnya pacman -S <something>dapat memberi Anda paket dan dependensi berbeda dari pacman -Sy && pacman -S <something>. Namun dari dokumentasi mereka, tampaknya pacman -Sy && pacman -Quini adalah jawaban yang benar untuk pertanyaan OP. Pastikan Anda akhirnya menjalankan pacman -Susebelum menginstal paket apa pun.
aaaaaa
1
Saya hanya ingin mengklarifikasi bahwa artikel itu tidak mengatakan pacman -Sydalam-dan-dari-itu sendiri buruk. Bahkan tidak mengatakan itu "buruk" atau "berbahaya". Ini hanya menyatakan bahwa sebagian upgrade tidak didukung dan Anda harus menghindarinya. Dengan kata lain, menjalankan pacman -Sy dan kemudian berlari pacman -S <some package with dependencies>berpotensi merusak sesuatu yang memiliki ketergantungan yang sama. Menjalankan sesuatu seperti pacman -Sy && pacman -S man-pageshanya mendapatkan halaman manual terbaru akan baik-baik saja (halaman manual tidak memiliki dependensi, dan tidak diperlukan oleh paket lain).
Drew Chapin
5 hari kemudian ketika Anda lupa bahwa Anda berlari pacman -Sydan berlari pacman -S nvidia, kemungkinan Anda akan memecahkan sesuatu.
Drew Chapin
7
checkupdates

Pemeriksaan skrip bash, yang disertakan dengan paket pacman, menyediakan cara yang aman untuk memeriksa peningkatan ke paket yang diinstal tanpa menjalankan pembaruan sistem pada saat yang sama.

Perbaikan sistem

Panagiotis Dimopoulos
sumber
Ini seharusnya jawaban yang benar
Nitz
0

Seperti yang disebutkan @Panagiotis, checkupdatesmenyediakan cara untuk melakukan ini tanpa memerlukan root atau mengacaukan /var/lib/pacmanbasis data Anda . Ini versi minimal:

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

Ini bekerja dengan:

  1. Membuat folder sementara untuk basis data Anda.
  2. Menghubungkan Anda /var/lib/pacman/local.
  3. Berjalan pacman -Sydi folder sementara Anda.
  4. Meminta melalui pacman -Qupada folder sementara Anda.
Mateen Ulhaq
sumber