Untuk paket tertentu, dapatkah saya mencari tahu mengapa itu diinstal?
Jadi, dapatkah saya melihat atau diinstal secara manual, atau diinstal sebagai dependensi dari paket lain? Atau itu diinstal sebagai bagian dari distro?
Untuk paket tertentu, dapatkah saya mencari tahu mengapa itu diinstal?
Jadi, dapatkah saya melihat atau diinstal secara manual, atau diinstal sebagai dependensi dari paket lain? Atau itu diinstal sebagai bagian dari distro?
Jawaban:
Solusi cepat adalah memasukkan perintah berikut di terminal:
aptitude why $package
atau, jika Anda hanya tertarik pada penyebab utama:
aptitude why $package --show-summary
Ganti $ paket dengan nama paket, dan Anda mungkin perlu menginstal aptitude
paket terlebih dahulu.
Ini adalah output yang mungkin Anda dapatkan aptitude why aspell --show-summary
Packages requiring aspell:
inkscape
Untuk lebih detail Anda akan lari aptitude why aspell
. Anda dapat membaca contoh output, di bawah ini, sebagai berikut: "Anda menginstal secara manual inkscape
, yang membutuhkan libgtkspell
, yang membutuhkan libenchantic2a
, yang membutuhkan aspell
". ( i
marker menunjukkan paket yang diinstal; A
marker menunjukkan paket yang diinstal secara otomatis.)
i inkscape Depends libgtkspell0 (>= 2.0.10)
i A libgtkspell0 Depends libenchant1c2a (>= 1.6.0)
i A libenchant1c2a Depends aspell-en | myspell-dictionary | aspell-dictionary | ispell-dictionary | hunspell-dictionary
i A aspell-en Depends aspell (>= 0.60.3-2)
Akhirnya, perintah berikut
apt-cache rdepends --installed $package
daftar paket-paket lain yang diinstal pada komputer Anda yang bergantung langsung pada $ package . Anda dapat menambahkan --recurse
opsi untuk mendaftar semua paket yang bergantung secara langsung atau tidak langsung padanya.
apt-cache rdepends --recurse $package
mungkin memberikan terlalu banyak paket. Saya akan menambahkan --installed
opsi untuk membatasi paket yang diinstal. -i
opsi membatasi paket yang terkait dengan pra-ketergantungan dan ketergantungan. Tetapi suatu paket dapat diinstal karena direkomendasikan oleh paket lain. Untuk memasukkan paket-paket terkait rekomendasi tersebut, saya kira ini akan memberikan yang tepat:apt-cache rdepends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --installed --recurse $package
apt-cache rdepends --no-{suggests,conflicts,breaks,replaces,enhances} --installed --recurse $package
Alasan cepat dan pendek tentang mengapa paket tertentu diinstal dapat ditemukan dengan mengetikkan perintah berikut di terminal ( Applications -> Accessories -> Terminal
):
aptitude why <package-name>
Ganti dengan nama paket yang Anda minati. Misalnya, ketikkan aptitude why libgoo-canvas-perl
keluaran berikut ini:
i shutter Suggests libgoo-canvas-perl
Ini pada dasarnya berarti bahwa paket shutter
dalam hal ini telah menyarankan libgoo-canvas-perl
untuk diinstal. Saat mengetik aptitude why shutter
saya bisa berjalan di rantai ketergantungan.
Namun, ada peringatan. Saya sering melihat bakat menemukan penjelasan yang paling masuk akal untuk situasi yang mungkin bukan kasus yang sebenarnya, tetapi tetap akan memberi Anda petunjuk untuk melihat lebih jauh.
Dalam kasus saya, shutter
saran libgoo-canvas-perl
- namun, paket yang disarankan tidak secara otomatis diinstal secara default. Namun demikian, memori saya berlari dari "pengalaman" dengan tidak dapat mengedit screenshot shutter
yang membuat saya menginstal secara manualligbgoo-canvas-perl
Terakhir, Anda dapat mengetahui apakah suatu paket diinstal secara otomatis (artinya diputuskan oleh sistem manajemen paket sebagai keharusan untuk melihat dependensi dan rekomendasi dari paket lain yang Anda minta untuk diinstal) dengan menjalankan perintah berikut.
aptitude show <package-name>
Ini akan menampilkan baris seperti di bawah ini (baris ketiga dari output):
Automatically installed: no
Untuk info lebih lanjut jalankan info aptitude
(di terminal) atau kunjungi halaman wiki Aptitude
Untuk mengetahui kapan paket tertentu diinstal, ada 2 opsi:
Install
(ingat kasusnya) untuk mendaftar semua entri mengenai instalasi. Namun, ini hanya akan menunjukkan paket yang diinstal menggunakan SynapticJalankan perintah berikut di terminal. Ini akan mencari log dpkg untuk entri riwayat instalasi. Namun, ada batas maksimum berapa banyak log ini dipertahankan, jadi jika paket yang Anda cari sudah diinstal sejak lama, Anda mungkin tidak menemukannya. Lebih detail di sini
zcat -f /var/log/dpkg.log* | grep "\ install\ " | grep -i <package-name>
zcat -f /var/log/dpkg.log* | grep -i PackageName | egrep “\ install\ |\ upgrade\ “
Ya, Anda bisa, dan itu perintah yang cukup jelas. Dengan asumsi Anda telah menginstal aptitude, Anda dapat membuka jenis iklan Terminal Window:
aptitude why package
Itu harus memberikan daftar paket yang tergantung pada paket spesifik itu. Jika ini adalah paket yang diinstal secara manual, itu akan mengatakan sesuatu seperti "Tidak mungkin menemukan alasan untuk menginstal paket".
Inilah cara sederhana yang tidak bergantung aptitude
, yang 10.10 tidak kirimkan secara default lagi.
Buka Synaptic dan coba hapus.
Jika sebuah dialog muncul meminta Anda untuk menghapus paket lain, itu adalah paket yang (secara rekursif) bergantung padanya.
apt-get remove package_name_goes_here -s
Sekali lagi, paket-paket yang akan dihapus sebagai hasilnya adalah semua yang (secara rekursif) bergantung padanya. ( -s
Parameter mengatakan apt-get
tidak benar-benar menghapus paket.)
y/N
permintaan konfirmasi tambahan jika Anda salah ketik -s
. Saya menambahkan peringatan.