Bir paketin neden yüklü olduğunu görebilir miyim?

96

Belirli bir paket için neden yüklü olduğunu öğrenebilir miyim?

Peki, manuel olarak yükleyebilir miyim, yoksa başka bir paketin bağımlılığı olarak yüklenmiş mi? Ya da dağıtımın bir parçası olarak kuruldu?

    
sordu Peter Smit 10.10.2010 16:08

4 cevap

92

Hızlı bir çözüm, bir terminalde aşağıdaki komutu girmektir:

aptitude why $package

veya yalnızca nihai nedenle ilgileniyorsanız:

aptitude why $package --show-summary

Paketin adıyla $ paket 'i değiştirin ve önce aptitude paketini yüklemeniz gerekebilir.

İşte aptitude why aspell --show-summary için alabileceğiniz çıktı

Packages requiring aspell:
  inkscape

Daha fazla ayrıntı için aptitude why aspell dosyasını çalıştırırsınız. Aşağıdaki örnek çıktıyı aşağıdaki gibi okuyabilirsiniz: " inkscape gerektiren, libgtkspell gerektiren, libenchantic2a gerektiren, aspell gerektiren, el ile siz yüklediniz". ( i işaretçileri kurulu paketleri gösterir; A işaretçileri otomatik olarak yüklenen paketleri gösterir.)

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)

Son olarak, aşağıdaki komut

apt-cache rdepends --installed $package

, bilgisayarınızda yüklü olan ve doğrudan $ paket 'e bağlı diğer paketleri listeler. Doğrudan veya dolaylı olarak bağımlı tüm paketleri listelemek için --recurse seçeneğini ekleyebilirsiniz.

    
verilen cevap enzotib 10.10.2010 16:14
29

Belirli bir paketin neden kurulduğuna ilişkin hızlı ve kısa bir neden, bir terminalde aşağıdaki komutu yazarak bulunabilir ( Applications -> Accessories -> Terminal ):

aptitude why <package-name>

İlgilendiğiniz paketin adıyla değiştirin. Örneğin, aptitude why libgoo-canvas-perl yazarak aşağıdakileri çıktı:

i   shutter Suggests libgoo-canvas-perl

Bu, temel olarak, shutter paketinin libgoo-canvas-perl yüklenmesini önerdiğini ifade eder. Daha sonra aptitude why shutter yazarak bağımlılık zincirini yürütebilirim.

Ancak, bir uyarı var. Genellikle, yeteneğin, durumun gerçek olamayacağı durum için en makul açıklamayı bulduğunu fark ettim, ancak yine de size daha fazla bakmak için bir ipucu verecektir.

Benim durumumda, shutter libgoo-canvas-perl önerir - ancak önerilen paketler varsayılan olarak otomatik olarak yüklenmez. Yine de, shutter ile manuel olarak yükleme yapmamı sağlayan ligbgoo-canvas-perl ile ekran görüntülerini düzenleyemediğim için "deneyim" hafızamı çalıştırıyor

Son olarak, bir paketin otomatik olarak yüklenip yüklenmediğini (yani, paket yönetim sistemi tarafından yüklenip yüklenmesini istediğin diğer paketlerin bağımlılıklarına ve önerilerine bakmak zorunda değil) aşağıdaki komutu çalıştırarak öğrenebilirsiniz.

aptitude show <package-name>

Bu, aşağıdaki gibi bir satır çıkarır (çıkışın 3. satırı):

Automatically installed: no

Daha fazla bilgi için info aptitude (bir terminalde) çalıştırın veya Aptitude viki sayfasını ziyaret edin

Belirli bir paket yüklendiğinde öğesini bulmak için 2 seçenek vardır:

  1. Synaptic paket yöneticisi, tüm etkinliklerin geçmiş kaydını tutar. Geçmiş kayıt dosyasını görüntülemek için Dosya menüsünden Geçmiş'i seçin. Yükleme ile ilgili tüm girişleri listelemek için Install (durumun aklını) arayabilirsiniz. Ancak, bu yalnızca Synaptic kullanarak yüklenen paketleri gösterecektir
  2. Bir terminalde aşağıdaki komutu çalıştırın. Bu, yükleme geçmişi girdileri için dpkg günlüklerini arayacaktır. Ancak, bu günlüklerin ne kadarının tutulduğu konusunda maksimum sınır vardır, bu yüzden aradığınız paket uzun bir süre önce kurulmuşsa, onu bulamayabilirsiniz. Daha fazla bilgi here

    zcat -f /var/log/dpkg.log* | grep "\ install\ " | grep -i <package-name>
    
verilen cevap koushik 21.09.2010 16:02
11

Evet, yapabilirsin ve aslında oldukça açık bir emirdir. Yetenekli olduğunuzu varsayarak, bir Terminal Penceresi reklam türü açabilirsiniz:

aptitude why package

Bu belirli pakete bağlı paketlerin bir listesini vermelidir. Elle yüklenmiş bir paketse, "Paketi yüklemek için bir neden bulmak mümkün değildi" gibi bir şey söyleyecektir.

    
verilen cevap Daniel Rodrigues 10.10.2010 16:14
2

İşte,% 10'una artık güvenmeyen basit bir yol. 10.10, artık varsayılan olarak gönderilmiyor.

  

Uyarı

     

Bu komutları çalıştırmak için root erişimine ihtiyacınız var.

Grafiksel

Synaptic’i açın ve kaldırmayı deneyin.

Diğer paketleri silmenizi isteyen bir iletişim kutusu açılırsa, bunlar (yinelemeli olarak) bağımlı olan paketlerdir.

Terminalden

apt-get remove package_name_goes_here -s

Yine, sonuç olarak kaldırılacak paketler, (yinelemeli olarak) ona bağlı olanlardır. (% Co_de% parametresi, paketin gerçekte kaldırılmaması için aptitude değerini bildirir.)

    
verilen cevap badp 10.10.2010 16:27

Etiketlerdeki diğer soruları oku