Saya menggunakan linux arch.
Apakah ada cara untuk membuat daftar dependensi opsional dari semua paket yang diinstal? Dan jika ya, dapatkah saya memfilter daftar ini hanya untuk melihat paket yang hilang (tidak terpasang)?
arch-linux
pacman
vonPetrushev
sumber
sumber
pacman -Qi | grep "Optional Deps" | grep -v None | grep -v installed
Jawaban:
Anda dapat menggunakan expac untuk query
pacman
database.Sesuatu seperti:
akan mencetak daftar semua paket yang diinstal pada mesin Anda dan
optdepends
untuk masing-masing paket (%O
) 1 ke file yang dipanggiloptdeps
. Anda kemudian dapat mengurutkannya berdasarkan daftar paket yang diinstal independen.Lihat
man expac
daftar opsi lengkap.1. Itu adalah huruf besar O, bukan nol. Karena kita tidak dapat memiliki font yang membedakan antara keduanya ...
sumber
Ada utilitas yang bagus di AUR-Repository (aur / pacdep).
pacdep memiliki banyak opsi - hanya satu contoh - cari paket-paket opsional untuk "thunar-archive-plugin":
Output di atas berarti bahwa tidak ada paket opsional yang diinstal. Setelah menginstal "xarchiver" hasilnya seperti
Saya menemukan (bagian pertama) jawaban ini di http://mywaytoarch.tumblr.com/post/34979742718/ dengan
mudah- daftar-paket-dependensi
sumber
Ini tidak tepat efisien, tetapi akan menemukan apa yang Anda inginkan (dalam WARNA!):
sumber
||
bukan&&
setelahgrep
, dan kemudian tanda kurung di seluruh baris?pacman -Qi xmms2 | sed -n '/^Optional/,$p' | sed '/^Required/q' | head -n -1 | cut -c19- | cut -d: -f1
Meskipun saya harus memperhatikan bahwa solusi @ DarkHeart tidak benar-benar berfungsi, itu mengilhami saya untuk membuat solusi yang berfungsi. (tidak ada warna)
Saya menggunakan paket-query , alat yang mirip dan bukan expac yang disarankan oleh @jasonwryan, karena saya sudah menginstalnya (ini adalah ketergantungan dari yaourt). Seharusnya sepele untuk mengubahnya menggunakan expac saja.
Daftar semua dependensi opsional sebagian besar dilakukan oleh panggilan ke paket-permintaan. For-loop pertama menghapus penjelasan, jadi tinggal nama paket untuk dependensi opsional; for-loop kedua menghapus dependensi yang sudah diinstal di baris pertama sebelum mencetak hasilnya di yang kedua.
sumber
Ini harus melakukan trik:
Input pertama untuk
comm
mencantumkan semua dependensi opsional, input kedua semua paket yang diinstal dan atribut 'sediakan'. Kedua daftar diurutkan dan mengandung setiap elemen hanya sekali karenasort -u
. Maka hanya baris yang ditampilkan yang ada di daftar pertama tetapi tidak di daftar kedua.(diedit untuk memasukkan saran @ Archemar)
sumber
Kadang-kadang Anda harus bekerja mundur ... pertama-tama menemukan semua non-opsional tergantung, kemudian referensi silang dengan daftar lengkap, lalu gunakan uniq. Ini akan menghasilkan daftar tergantung opsional yang diinstal.
Temukan semua terpasang
Temukan semua non-opsional:
Entri unik karenanya harus opsional:
Menghasilkan daftar opsi yang hilang tergantung pada deskripsi, tidak cantik, tetapi berfungsi.
sumber
Saya mencoba hanya di sed GNU tetapi
ini berhasil (Gunakan sort / uniq sesuka Anda).
sumber