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?
apt
software-installation
dependencies
Peter Smit
sumber
sumber
Jawaban:
Solusi cepat adalah memasukkan perintah berikut di terminal:
atau, jika Anda hanya tertarik pada penyebab utama:
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
Untuk lebih detail Anda akan lari
aptitude why aspell
. Anda dapat membaca contoh output, di bawah ini, sebagai berikut: "Anda menginstal secara manualinkscape
, yang membutuhkanlibgtkspell
, yang membutuhkanlibenchantic2a
, yang membutuhkanaspell
". (i
marker menunjukkan paket yang diinstal;A
marker menunjukkan paket yang diinstal secara otomatis.)Akhirnya, perintah berikut
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.sumber
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
):Ganti dengan nama paket yang Anda minati. Misalnya, ketikkan
aptitude why libgoo-canvas-perl
keluaran berikut ini:Ini pada dasarnya berarti bahwa paket
shutter
dalam hal ini telah menyarankanlibgoo-canvas-perl
untuk diinstal. Saat mengetikaptitude 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
saranlibgoo-canvas-perl
- namun, paket yang disarankan tidak secara otomatis diinstal secara default. Namun demikian, memori saya berlari dari "pengalaman" dengan tidak dapat mengedit screenshotshutter
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.
Ini akan menampilkan baris seperti di bawah ini (baris ketiga dari output):
Untuk info lebih lanjut jalankan
info aptitude
(di terminal) atau kunjungi halaman wiki AptitudeUntuk 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
sumber
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:
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".
sumber
Inilah cara sederhana yang tidak bergantung
aptitude
, yang 10.10 tidak kirimkan secara default lagi.Secara grafis
Buka Synaptic dan coba hapus.
Jika sebuah dialog muncul meminta Anda untuk menghapus paket lain, itu adalah paket yang (secara rekursif) bergantung padanya.
Dari terminal
Sekali lagi, paket-paket yang akan dihapus sebagai hasilnya adalah semua yang (secara rekursif) bergantung padanya. (
-s
Parameter mengatakanapt-get
tidak benar-benar menghapus paket.)sumber
y/N
permintaan konfirmasi tambahan jika Anda salah ketik-s
. Saya menambahkan peringatan.