Como encontrar o caminho da instalação para um software no linux?

63

No Linux, eu inicio um software digitando, por exemplo, fluidplot. Como posso encontrar o caminho de instalação para este software?

    
por user5997 25.08.2011 / 04:22

5 respostas

57

Você pode usar:

which fluidpoint

para ver de onde está sendo executado (se estiver em seu $ PATH). Ou:

find / -name fluidpoint 2> /dev/null

para procurar um arquivo chamado fluipoint e redirecionar os erros nos sistemas de arquivos virtuais.

Geralmente, eles estão em /sbin , /usr/sbin , /usr/local/bin ou ~ como um diretório oculto.

Do manual:

NAME
       which - shows the full path of (shell) commands.

SYNOPSIS
       which [options] [--] programname [...]

Manual completo: link

    
por 25.08.2011 / 04:29
12

Se você usa uma distribuição baseada em RPM (CentOS, RHEL, SUSE, openSUSE), você pode usar rpm -ql

Exemplo:

rpm -ql findutils
/bin/find
/usr/bin/find
/usr/bin/xargs
/usr/share/doc/packages/findutils
/usr/share/doc/packages/findutils/AUTHORS
/usr/share/doc/packages/findutils/COPYING
/usr/share/doc/packages/findutils/NEWS
/usr/share/doc/packages/findutils/README
/usr/share/doc/packages/findutils/THANKS
/usr/share/doc/packages/findutils/TODO
/usr/share/info/find.info.gz
/usr/share/man/man1/find.1.gz

As coisas não estão instaladas em locais no mundo do Linux / UNIX como se estivessem no mundo do Windows (e até mesmo no Mac). Eles são mais distribuídos. Os binários estão em / bin ou / sbin, as bibliotecas estão em / lib, icons / graphics / docs estão em / share, a configuração está em / etc e os dados do programa estão em / var. O / bin, lib, sbin contém os principais aplicativos necessários para a inicialização e o / usr contém todos os outros aplicativos do sistema e do usuário

    
por 25.08.2011 / 07:20
4

O comando whereis localiza os arquivos binários, de origem e de página manual para um comando, e o comando type informa exatamente o que o shell executa quando você executa um determinado comando.
Experimente whereis -l fluidplot no seu caso.

Se ele retornar apenas "fluidplot:", mas nenhum caminho, significa que o software não está instalado.

Observe que isso não inclui arquivos que podem estar ocultos na pasta inicial em ~/.local/share/ (no meu caso).

Encontrado em Linux Screw

    
por 10.06.2016 / 03:13
2

Apenas para adicionar algum ponto à resposta do @djsumdog, se você estiver usando o dist baseado no DPKG, como o Ubuntu, você pode usar

dpkg --status some_package

para verificar o que é e

dpkg --listfiles some_package

para verificar quais arquivos estão incluídos / relevantes para este pacote. É para pacotes que não possuem um binário para executar, como libnss3 . E

dpkg --search some_file

para descobrir qual pacote inclui esse arquivo.

Por exemplo, dpkg --listfiles libnss3 me dá:

/.
/usr
/usr/lib
/usr/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu/libssl3.so
/usr/lib/i386-linux-gnu/nss
/usr/lib/i386-linux-gnu/nss/libsoftokn3.chk
/usr/lib/i386-linux-gnu/nss/libnssckbi.so
/usr/lib/i386-linux-gnu/nss/libnsssysinit.so
/usr/lib/i386-linux-gnu/nss/libfreebl3.chk
/usr/lib/i386-linux-gnu/nss/libnssdbm3.chk
/usr/lib/i386-linux-gnu/nss/libnssdbm3.so
/usr/lib/i386-linux-gnu/nss/libsoftokn3.so
/usr/lib/i386-linux-gnu/nss/libfreebl3.so
/usr/lib/i386-linux-gnu/libnssutil3.so
/usr/lib/i386-linux-gnu/libsmime3.so
/usr/lib/i386-linux-gnu/libnss3.so
/usr/share
/usr/share/doc
/usr/share/doc/libnss3
/usr/share/doc/libnss3/copyright
/usr/share/doc/libnss3/changelog.Debian.gz
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libnss3

Observe que as pastas não são de propriedade exclusiva desses pacotes, mas também de outras. Basta verificar os arquivos.

E, inversamente, dpkg --search libnss3.so me dá:

firefox: /usr/lib/firefox/libnss3.so
thunderbird: /usr/lib/thunderbird/libnss3.so
libnss3:i386: /usr/lib/i386-linux-gnu/libnss3.so
libnss3-1d:i386: /usr/lib/i386-linux-gnu/libnss3.so.1d
    
por 14.11.2016 / 13:30
0

Em vez de usar which ( que provavelmente não é a escolha certa a menos que você esteja usando csh ) você pode usar command -v fluidplot para obter o shell como shell para dizer o que faria se você pedisse para executar o comando ( fluidplot neste exemplo).

Alguns exemplos para mim:

$ command -v ls
alias ls='ls --color=auto'
$ command -v cat
/bin/cat
$ test_func() {
> :
> }
$ command -v test_func
test_func
$ which test_func
/usr/bin/which: no test_func in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin)
$ if command -v noSuchFile; then echo "It exists"; else echo "does not exist"; fi
does not exist

para que você também possa usá-lo para testar se um comando seria encontrado e tentado executar. Como a maioria de nós usa shells semelhantes a Bourne (por exemplo, bash ou zsh), isso geralmente é preferível a which

    
por 10.06.2016 / 03:33