Como posso saber quais comandos foram instalados com um pacote?

11

Como posso obter uma lista de comandos que foram instalados com um pacote específico?

Por exemplo, se eu instalar o Chromium, o que deve digitar agora? Ou, se eu instalar moreutils, como sei quais comandos foram instalados?

Flimm
fonte

Respostas:

14

Resposta curta:

dpkg -L packagename | grep 'bin/'

Resposta longa:

Para obter uma lista de todos os arquivos instalados em um pacote (por exemplo moreutils), execute este comando:

dpkg -L moreutils

Agora, tudo o que precisamos fazer é filtrar os arquivos executáveis ​​no caminho. Em geral, os comandos são instalados para /bin, /sbin, /usr/bine /usr/sbin, por isso, pode simplesmente combinar esses padrões:

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

Se você deseja algo mais fácil de memorizar, mas não totalmente preciso, basta filtrar as linhas com 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

Assim, neste exemplo, eu descobri estes comandos: isutf8, pee, errno, etc.


Alguns pacotes não instalam comandos no caminho, mas instalam um ícone para o aplicativo GUI. Se você deseja encontrar o comando que inicia o aplicativo, precisará localizar o .desktoparquivo instalado e observar a linha que começa com Exec=. Por exemplo:

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

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

Portanto, neste exemplo, eu descobri que deveria correr /opt/WorldOfGoo/WorldOfGoopara lançar o World Of Goo a partir do terminal.

Flimm
fonte
1
A greppeça pode ser consolidada levemente com base na ideia de que todos os padrões terminam bin/. (E eu era incapaz de resistir a cortar os nomes de caminho.)dpkg -L moreutils | grep -e '/[s]*bin/' | sed -r 's/.*bin\/(.*)$/\1/'
lgarzo
@lgarzo, você pode ter aprendido isso nos últimos 6 anos, mas você pode dispensar o grep e apenas dpkg -L chromium-browser | sed -rn 's/.*bin\/(.*)$/\1/p'como o -ne pcausar apenas as linhas alteradas para serem impressos. Economizando 60 / 1000ths de segundo!
Pbhj 7/06