Как узнать, какие программы содержит пакет apt-get?

17

Я хотел бы знать, что устанавливает какой-то определенный пакет , например, при установке ncurses , я обнаружил, что ключ TAB расширяется:

sudo apt-get install ncurses-

, чтобы показать:

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

Как я могу узнать, что, скажем, ncurses-term устанавливает? Меня интересуют главным образом программы, но библиотеки и любые другие типы файлов также могут быть полезны.

Метод командной строки , если это возможно, будет предпочтительнее ( любые другие тоже).

    
задан Sopalajo de Arrierez 16.03.2014 в 22:53
источник

3 ответа

20

Вот несколько опций, в них будут перечислены файлы all , установленные пакетом:

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 .

В. Список только исполняемых файлов, включенных в пакет

  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 ), и если он является обычным файлом, не содержит каталогов или symlinks ( -f $file ) и печатает свое имя, только если проходит оба теста.

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

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

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

    Параметр -w соответствует целым словам, поэтому вы не получаете вещи, например, trashbin или что-то еще.

ПРИМЕЧАНИЕ . Ни одна из вышеприведенных команд не выдаст какой-либо результат для ncurses-term , но это потому, что этот пакет не устанавливает исполняемые файлы. Тем не менее команды работают, попробуйте другой пакет.

    
ответ дан terdon 16.03.2014 в 23:16
источник
4

Вы можете использовать apt-файл:

sudo apt-file update        
apt-file list package_name
    
ответ дан Sylvain Pineau 16.03.2014 в 23:13
3

Существует возможность использования вашего браузера (поэтому не требуется доступ к APT-системе). Например, чтобы отобразить содержимое файла пакета «ncurses-term», просто введите

Ссылка

в адресную строку вашего браузера (замените «wheezy» по мере необходимости) для Debian или

Ссылка

для Ubuntu (при необходимости замените "saucy").

    
ответ дан Michael Kremser 17.03.2014 в 09:34