Как я могу узнать, какие команды были установлены с пакетом?

11

Как я могу получить список команд, которые были установлены с определенным пакетом?

Например, если я установлю Chromium, что теперь нужно печатать? Или, если я установлю moreutils, как я узнаю, какие команды были установлены?

Флимм
источник

Ответы:

14

Короткий ответ:

dpkg -L packagename | grep 'bin/'

Длинный ответ:

Чтобы получить список всех файлов, установленных в пакете (скажем moreutils), выполните эту команду:

dpkg -L moreutils

Теперь все, что нам нужно сделать, это отфильтровать те, которые являются исполняемыми файлами в пути. В общем, команды устанавливаются на /bin, /sbin, /usr/binи /usr/sbin, таким образом , мы можем просто соответствовать этим моделям:

dpkg -L moreutils | grep -e '^/bin/' -e '^/sbin/' -e '^/usr/bin/' -e '^/usr/sbin/'

Если вы хотите что-то, что легче запомнить, но не совсем точно, просто отфильтруйте строки с помощью bin/:

$ dpkg -L moreutils | grep 'bin/'
/usr/bin/isutf8
/usr/bin/pee
/usr/bin/errno
/usr/bin/vidir
/usr/bin/zrun
/usr/bin/lckdo
/usr/bin/ifne
/usr/bin/mispipe
/usr/bin/parallel
/usr/bin/sponge
/usr/bin/ts
/usr/bin/ifdata
/usr/bin/vipe
/usr/bin/chronic
/usr/bin/combine

Таким образом, в этом примере, я обнаружил следующие команды: isutf8, pee, errnoи т.д.


Некоторые пакеты не устанавливают команды в путь, но устанавливают значок для приложения с графическим интерфейсом. Если вы хотите найти команду, которая запускает приложение, вам нужно будет найти установленный .desktopфайл и посмотреть строку, начинающуюся с Exec=. Например:

$ dpkg -L worldofgoo | grep '\.desktop$'
/usr/share/applications/WorldOfGoo.desktop

$ grep '^Exec=' /usr/share/applications/WorldOfGoo.desktop 
Exec=/opt/WorldOfGoo/WorldOfGoo

Итак, в этом примере я обнаружил, что должен запустить /opt/WorldOfGoo/WorldOfGooWorld Of Goo из терминала.

Флимм
источник
1
grepЧасть может быть немного консолидируются основано на идее , что все модели с концом bin/. (И я не смог удержаться, чтобы обрезать имена путей.)dpkg -L moreutils | grep -e '/[s]*bin/' | sed -r 's/.*bin\/(.*)$/\1/'
lgarzo
@lgarzo, вы, возможно, узнали это за последние 6 лет, но вы можете обойтись без grep и просто dpkg -L chromium-browser | sed -rn 's/.*bin\/(.*)$/\1/p'так -nи pзаставить печатать только измененные строки. Экономия 60/1000-х секунд!
pbhj