Як я можу знати, які програми містить пакет apt-get?


17

Мені хотілося б знати, що встановлюється певним пакетом , наприклад, при установці ncursesя виявив, що TABключ розширюється:

sudo apt-get install ncurses-

показувати:

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

Як я міг знати, що, скажімо, ncurses-termвстановлює? Мене цікавлять в основному програми, але бібліотеки та будь-які інші типи файлів також можуть бути корисними.

Якщо можливо, кращим буде метод командного рядка ( будь-які інші, які також прийняті).


Коли ви говорите "програми", ви говорите про бінарні файли?
Брайам

Бінарні файли та сценарії, якщо можливо, спасибі, @Braiam.
Sopalajo de Arrierez

Відповіді:


21

Ось кілька варіантів, у них буде перераховано всі файли, встановлені пакетом:

A. Перелік усіх файлів, що входять до пакету

  1. Для встановлених пакетів

    dpkg -L ncurses-term
    
  2. Для всіх пакунків, встановлених чи ні

    apt-file -F list ncurses-term
    

    У -Fвитках зіставлення з зразком так , що тільки пакети , у яких точного назви матчі повертаються. Вам може знадобитися встановити apt-fileз , sudo apt-get install apt-fileа потім обновити свою базу даних з sudo apt-file update.

B. Перелік лише виконуваних файлів, що входять до пакету

  1. Для встановлених пакетів

    Просто встановіть dlocate( sudo apt-get dlocate) і запустіть:

    dlocate -lsbin ncurses-term 
    

    Як пояснено в man dlocate:

    -lsbin Перерахуйте повний шлях / файли виконавчих файлів (якщо такі є) в пакеті

    Якщо ви не хочете встановлювати додаткові пакети, це можна зробити вручну. Просто зберіть список файлів і знайдіть будь-який з них, у якому встановлений виконуваний біт:

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

    Маленький скрипт буде надруковано лише шлях ( cut -d ' ' -f 2), а потім передасть його через whileцикл, який перевіряє, чи файл виконується ( -x $file), а якщо це звичайний файл, немає каталогів чи посилань ( -f $file) та друкує його ім'я лише у випадку, якщо пройде обидва тести .

  2. Для всіх пакунків, встановлених чи ні

    Я не маю можливості перелічити лише виконувані файли, що входять до невстановленого пакету. Однак, оскільки більшість виконуваних файлів встановлені в binкаталогах, ви можете отримати більшість з них, аналізуючи вихід:

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

    -wВаріант відповідає цілим словами, так що ви не отримаєте речі , встановлені, наприклад, trashbinабо будь-який інший .


ПРИМІТКА : Жодна з перерахованих вище команд не дасть жодного результату, ncurses-termале це тому, що цей пакет не встановлює файлів, що виконуються. Команди все-таки працюють, спробуйте з іншим пакетом.


Привіт тердоне, ти впевнений, що команда повинна працювати на невстановлених програмах? коли я намагаюся, він просто пропонує встановити. Що не так дивно, оскільки .install файл (ймовірно) завантажується разом із додатком?
Яків Влійм

@Jacob так, я просто спробував із пакунком, який я знаю, не встановлений і apt-fileперерахував вміст пакета. Працює над тестуванням Debian та Ubuntu 13.10.
тердон

Ага, дякую, це просто подумав, оскільки залежності відображаються і на не встановлених програмах.
Яків Влійм

4

Ви можете використовувати apt-файл:

sudo apt-file update        
apt-file list package_name

3
Якщо apt-fileне встановлено, ви можете встановити його sudo apt-get install apt-file.
edwin

3

Існує можливість використовувати ваш браузер (тому не вимагає доступу до APT-системи). Наприклад, щоб перелічити вміст файлу пакета "ncurses-term", просто введіть

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

в адресний рядок вашого веб-переглядача (замініть "задирки" за потреби) на Debian або

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

для Ubuntu (замініть "солодкість" за потребою).


Цікавий метод. Цей список призначений для пакунків Debian, тож: чи повинен він бути таким же для будь-якого іншого дистрибутива, як Ubuntu чи Kali?
Sopalajo de Arrierez

1
@Sopalajo de Arrierez: Читайте точно: я також розмістив посилання на той же пакет (ncurses-термін у цьому прикладі) для Ubuntu. Список файлів може бути однаковим, якщо певна версія Ubuntu має таку саму версію пакету, що і одна з наборів Debian, але це не обов'язково. Ubuntu, Kali, Aptosid, CrunchBang та всі інші дистрибутиви на базі Debian можуть вносити зміни в пакети за власним бажанням (особливо файли типу "README" або файли конфігурації для системи init).
Майкл Кремсер

Я розумію, @MichaelKremser. Отже, як я бачу, пошук вмісту пакету в Інтернеті є корисним, але, бажано, слід шукати в офіційному списку пакунків вашого конкретного дистрибутива.
Sopalajo de Arrierez

1
@Sopalajo de Arrierez: Так, правильно. Якщо ви перебуваєте на Debian Wheezy, використовуйте список пакунків для Debian Wheezy, якщо ви перевіряєте Debian, використовуйте його, якщо ви перебуваєте на Ubuntu Precision, візьміть його список. Завжди можуть бути відмінності, хоча, наприклад, Ubuntu бере багато пакунків з немодифікованих Debian. Однак це може змінитися в будь-який час.
Майкл Кремсер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.