Como eu determino os comandos que podem ser chamados fornecidos por um pacote Debian instalado?

0

Sou um usuário de Linux relativamente novo, então hoje me deparei com um problema. Eu instalei um front-end de emulador ("visualboyadvance-gtk") do repositório apt da minha distro, mas depois que ele terminou a instalação, não consegui descobrir qual era o comando do terminal para o programa. Geralmente, o comando terminal e o nome do pacote são bem próximos, então nunca me deparei com esse problema antes. (Neste caso, o comando acabou sendo 'gvba'; nada como o nome do pacote no repositório ..)

Então, minha pergunta é: Existe uma maneira rápida e fácil de determinar o comando terminal para qualquer pacote que eu tenha instalado? Eu olhei através da informação 'apt-cache show' para isso pacote, mas não havia nada nele o comando terminal real. Eu estou supondo que deve haver uma maneira de encontrar esse tipo de informação com o APT ou dpkg ou algo assim ..

    
por MrKatSwordfish 22.04.2014 / 10:52

3 respostas

1

Eu costumo fazer

  dpkg -L packagename | grep -E '/s?bin/'

para obter a lista de tudo que pode "chamar" que o pacote oferece.

A regra é simples: de acordo com a política do Debian (e o FHS ) todos os programas que podem ser chamados por usuários regulares (não administradores) devem colocar seus binários (ou links para eles, geralmente simbólicos) em /bin ou /usr/bin 1 , e todos os programas que podem ser chamados por sysadmins devem colocar seus binários (ou links para eles) em /sbin ou /usr/sbin 1 .

Todos os programas locais - não instalados a partir de pacotes e, portanto, não fazem parte do "sistema" - têm que colocar os binários solicitáveis em /usr/local/bin ou /usr/local/sbin - esses lugares são "seus" e você não tem garantia pacote instalado a partir de repositórios oficiais sempre irá colocar / linkar um binário lá.

Se você correr

echo $PATH

no seu terminal como um usuário comum, você verá /bin e /usr/bin e /usr/local/bin listados - é onde o shell procura os comandos não internos que você solicita que ele execute. O superusuário terá também as versões " sbin " desses diretórios listados.

E, finalmente, uma pequena nota: você não pode - apenas ver a lista de programas que um pacote oferece - determinar quais deles são linha de comando ("chamando em um terminal") ou GUI (requerendo um servidor X para connect) porque os dois tipos de programas são colocados na mesma hierarquia de diretórios. Por outro lado, as aplicações GUI que desejam integrar-se ao ambiente desktop (como GNOME, KDE, XFCE, LXDE, etc.) geralmente fornecem os chamados "arquivos desktop" (terminando com a extensão .desktop ) programe um título descritivo, uma descrição de sua finalidade e defina a maneira como o aplicativo deve ser chamado. Esses arquivos são verificados pelo ambiente de área de trabalho e exibidos em seu "menu de aplicativos" (ou são usados de maneira semelhante). Portanto, se você estiver procurando por esse tipo de programa, poderá grep a saída de dpkg -L para .desktop .

1 A distinção entre as hierarquias /usr e / é sutil e atualmente discutível nas comunidades centradas no Linux, então não vamos nos distrair para discuti-lo.

    
por 22.04.2014 / 12:11
0

O problema que você tem é que os pacotes podem incluir muitos comandos, ou (como no caso das bibliotecas) nenhum.

Você pode ver o conteúdo do pacote com dpkg -L packagename . Qualquer coisa que o pacote tenha instalado em /usr/bin será executável a partir da linha de comando, embora nem todos os comandos forneçam resultados muito sensatos.

Você também pode tentar pesquisar as páginas de manual - man -k visualboyadvance pode lhe dar algo útil.

    
por 22.04.2014 / 10:54
0

Pesquise aqui para seu pacote .

Em seguida, abra a lista de arquivos .

Tudo sob /usr/bin/ é um executável que você pode usar no seu terminal.

No seu caso, apenas gvba .

    
por 22.04.2014 / 11:23