Como descobrir se um software (que pode * não * estar no PATH) é pré-instalado ou não?

0
anisha@linux-dopx:~> which qmake
which: no qmake in (/opt/qtcreator-2.0.92/bin/:/opt/qtsdk-2010.05/qt/bin/:/opt/qtcreator-2.0.92/bin/:/opt/qtsdk-2010.05/qt/bin/:/usr/lib64/mpi/gcc/openmpi/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin)

anisha@linux-dopx:~> locate qmake
anisha@linux-dopx:~> 

Existe alguma outra maneira pela qual eu possa confirmar se um software está instalado ou não, considerando a cláusula que atualmente não está no PATH?

    
por Aquarius_Girl 10.08.2011 / 11:16

2 respostas

3

Experimente whereis . Ele procura em todos os lugares que fazem sentido para binários (quando -b é usado), mesmo que eles não estejam incluídos no seu $PATH . Por exemplo, whereis -b ifconfig retorna /sbin/ifconfig , mesmo que /sbin não esteja no meu $PATH .

    
por 10.08.2011 / 11:39
3

O problema está na única definição da palavra " instalado ". Existem várias maneiras de interpretá-lo.

  • Uma maneira típica e mais adequada de "instalar" um programa é usar uma ferramenta de gerenciamento de pacotes. Eles variam de distribuição para distribuição: no Gentoo, há emerge e um monte de outros programas úteis ao redor portage ; em sistemas baseados em Debian (como o Ubuntu), existem apt-<something> tools e assim por diante. Essas ferramentas são o que você deve usar sempre que possível - tanto para a instalação quanto para a pesquisa de softwares disponíveis / instalados - seu principal trabalho no sistema é manter todas as informações sobre o seu software oficial.

  • O software que não está disponível nos repositórios também pode ser instalado por seus próprios scripts de instalação específicos. Tal software não será automaticamente visto pelas ferramentas de gerenciamento do sistema - o que pode causar vários problemas. Para encontrar componentes de tais programas, você precisa usar ferramentas como locate , find , which ou whereis .

  • Você também pode criar um programa, colocá-lo "manualmente" e ajustar seu ambiente (como PATH ) para que ele se torne utilizável. Tanto do ponto de vista do utilizador como do sistema, pode ser muito diferente, ligeiramente diferente ou não diferente em comparação com a abordagem anterior.

No seu caso, você deve distinguir entre encontrar um binário e determinar se um determinado pacote está instalado . Para a parte prática de encontrar um binário, você pode usar apenas which ou whereis . Observe que a variável ambiental PATH pode ser diferente para usuários raiz e não raiz . Se você quiser determinar se um pacote está instalado (usando a primeira interpretação dessa palavra), use o software de gerenciamento de pacotes da sua distribuição.

    
por 10.08.2011 / 12:07