Bazı apt-get paketlerinin hangi programları içerdiğini nasıl bilebilirim?


17

Bazı belirli paketlerin ne yüklediğini bilmek istiyorum , örneğin, yüklerken anahtarın genişlediğini ncursesgördüm TAB:

sudo apt-get install ncurses-

göstermek için:

ncurses-base      ncurses-doc       ncurses-hexedit
ncurses-bin       ncurses-examples  ncurses-term

ncurses-termYüklemelerin ne olduğunu nasıl bilebilirim ? Esas olarak programlarla ilgileniyorum, ancak kütüphaneler ve diğer dosya türleri de yararlı olabilir.

Mümkünse komut satırı yöntemi tercih edilir ( diğerleri de kabul edilir).


"Programlar" dediğinde ikili dosyalar hakkında mı konuşuyorsun?
Braiam

İkili dosyalar ve komut dosyaları, mümkünse, @Braiam.
Sopalajo de Arrierez

Yanıtlar:


21

İşte birkaç seçenek, bunlar bir paket tarafından yüklenen tüm dosyaları listeleyecektir :

A. Bir pakette bulunan tüm dosyaları listeleme

  1. Kurulu paketler için

    dpkg -L ncurses-term
    
  2. Takılı olsun olmasın tüm paketler için

    apt-file -F list ncurses-term
    

    -FDesen eşleştirme döner, böylece kimin sadece paketler o kesin adı maçları döndürülür. Sen yüklemeniz gerekebilir apt-fileile sudo apt-get install apt-fileve daha sonra veritabanını güncellemek sudo apt-file update.

B. Yalnızca pakete dahil olan yürütülebilir dosyaları listeleme

  1. Kurulu paketler için

    Sadece yükle dlocate( sudo apt-get dlocate) ve çalıştır:

    dlocate -lsbin ncurses-term 
    

    Açıklandığı gibi man dlocate:

    -lsbin Paketteki yürütülebilir dosyaların tam yolunu / dosya adlarını (varsa) listele

    Ek paketler yüklemek istemiyorsanız, bunu manuel olarak yapabilirsiniz. Sadece dosya listesini toplayın ve aralarında yürütülebilir bit ayarlı olanları bulun:

    apt-file -F list ncurses-term | cut -d ' ' -f 2 | 
        while read file; do [[ -x $file && -f $file ]] && echo "$file"; done
    

    Yukarıdaki küçük komut dosyası yalnızca yolu ( cut -d ' ' -f 2) yazdırır ve ardından whiledosyanın yürütülebilir ( -x $file) olup olmadığını ve normal bir dosya olup olmadığını kontrol eden bir döngüden -f $filegeçirir ve dizin veya sembolik ( ) içermez ve adını yalnızca her iki sınamayı da geçerse yazdırır .

  2. Takılı olsun olmasın tüm paketler için

    Yalnızca kaldırılmış bir pakette bulunan yürütülebilir dosyaları listelemenin bir yolu yok. Ancak, yürütülebilir dosyaların çoğu bindizinlere yüklendiğinden , çıktıyı ayrıştırarak bunların çoğunu alabilirsiniz:

     apt-file -F list ncurses-term | grep -Ew "bin|sbin"
    

    -wÖrneğin, için, yüklü şeyler elde kalmamak seçenek Tüm kelimelerle eşleşir trashbinya da her neyse.


Not : Yukarıdaki komutların hiçbiri için herhangi bir çıktı üretmez, ncurses-termancak bu paket yürütülebilir dosyalar yüklemez çünkü. Komutlar yine de çalışır, farklı bir paket deneyin.


Merhaba terdon, komutun yüklü olmayan uygulamalarda çalışması gerektiğinden emin misiniz? denediğimde, sadece yüklemeyi teklif ediyor. Hangisi uygulama ile (muhtemelen) indirildiğinden, garip değil mi?
Jacob Vlijm

@Jacob evet, sadece yüklü olmadığını bildiğim bir paket ile denedim apt-fileve paketin içeriğini listeledim. Debian testi ve Ubuntu 13.10 üzerinde çalışır.
terdon

Aha, teşekkürler, bağımlılıkları da yüklü olmayan uygulamalarda da gösterildiği için, sadece düşündüm.
Jacob Vlijm

4

Apt dosyasını kullanabilirsiniz:

sudo apt-file update        
apt-file list package_name

3
Yüklü apt-filedeğilse ile yükleyebilirsiniz sudo apt-get install apt-file.
edwin

3

Tarayıcınızı kullanma olasılığı vardır (bu nedenle bir APT sistemine erişim gerektirmez). Örneğin, "ncurses-term" paketinin dosya içeriğini listelemek için şunu yazın:

https://packages.debian.org/wheezy/all/ncurses-term/filelist

Debian için tarayıcınızın adres çubuğuna (gerekirse "wheezy" yazın) veya

http://packages.ubuntu.com/saucy/all/ncurses-term/filelist

Ubuntu için ("şımarık" ifadesini gerektiği gibi değiştirin).


İlginç bir yöntem. Bu liste Debian paketleri içindir, bu yüzden: Ubuntu veya Kali gibi diğer dağıtımlar için aynı olması gerekir mi?
Sopalajo de Arrierez

1
@Sopalajo de Arrierez: Kesinlikle okuyun: Aynı paketin (bu örnekte ncurses-term) bağlantısını Ubuntu için de gönderdim. Belirli bir Ubuntu sürümü paketin Debian kümelerinden biriyle aynı sürümüne sahipse dosya listesi aynı olabilir , ancak zorunlu değildir. Ubuntu, Kali, Aptosid, CrunchBang ve diğer tüm Debian tabanlı dağıtımlar paketlerde istedikleri gibi değişiklik yapabilir (özellikle "README" gibi dosyalar veya init sistemi için yapılandırma dosyaları).
Michael Kremser

Anlıyorum, @MichaelKremser. Gördüğüm gibi, bir paketin içeriğini bulmak için web'de arama yapmak yararlıdır, ancak tercihen, özel dağıtımınızın resmi paket listesinde arama yapmalısınız.
Sopalajo de Arrierez

1
@Sopalajo de Arrierez: Evet, doğru. Debian Wheezy kullanıyorsanız, Debian Wheezy için paket listesini kullanın, Debian testindeyseniz, bunu kullanın, Ubuntu Precise kullanıyorsanız, listesini alın. Her zaman farklılıklar olabilir, ancak Ubuntu Debian'dan değiştirilmemiş birçok paket alır. Ancak, bu her zaman değişebilir.
Michael Kremser
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.