Onde o software instalado é armazenado no Linux? [duplicado]

10

Sou novo no Linux e quero perguntar um pouco mais sobre pacotes.

No Windows, eu faço o download de um arquivo .exe e o instalo. Quando eu instalo, eu defino o caminho onde eu quero que o aplicativo seja armazenado. Nessa pasta, tenho todos os arquivos necessários para o aplicativo.

No entanto, quando instalo um pacote no Linux usando yum ou apt-get , não sei onde o pacote está instalado e onde os arquivos necessários para esse aplicativo estão armazenados. Eu vi que a maioria das configurações estão no diretório /etc . Mas por que o Linux armazena os arquivos necessários para um aplicativo em diretórios diferentes?

Alguém pode me dizer como os pacotes são instalados e onde e como eles são armazenados? E se o meu entendimento sobre o gerenciamento de pacotes estiver errado, por favor, corrija-me.

    
por Community 15.08.2012 / 01:57

8 respostas

11

Muitos programas (os binários / scripts) acabam em /bin ou /usr/bin com outras partes em vários diretórios de configuração (geralmente em / under etc ), como você já observou.

Para qualquer comando específico, você pode conferir whereis

whereis prog_name

e ele lhe dará algumas informações sobre onde esse comando deve ser encontrado. Você também pode tentar que

which prog_name

Além disso, este gráficos e explicações / exemplos pode ser útil.

    
por 15.08.2012 / 02:00
4

No Windows, particularmente as versões mais antigas, era comum os programas armazenarem arquivos de configuração e dados não constantes no diretório C:\Program Files . Isso é derivado de como os programas geralmente eram instalados e executados sob o DOS de usuário único, sem rede, sem permissão de arquivo.

Do ponto de vista da segurança, esta é uma má ideia. Locais onde o código executável deve ser separado dos dados modificáveis. Dessa forma, é mais fácil aplicar permissões de arquivo apropriadas para impedir a modificação de binários instalados por usuários não autorizados. Da mesma forma, os diretórios de bibliotecas que podem ser atualizados separadamente dos executáveis principais também devem estar em um diretório separado.

Com o advento dos aborrecimentos do Vista e do UAC, esta tradição está finalmente começando a perder seriamente a tração.

UNIX, e Linux, sendo um sistema multiusuário de muito antes, tinham a tendência de separar diretórios executáveis de outros diretórios muito antes, já que era necessário impedir que outros usuários que não o root modifiquem os binários instalados. É também por isso que /usr e mesmo /sbin são, por vezes, partições separadas - um administrador particularmente consciente da segurança pode montar essas partições readonly e remontá-las para leitura / gravação quando é necessário instalar / desinstalar.

Os pacotes geralmente são instalados de um gerenciador de pacotes. Existem vários gerenciadores de pacotes, como aptitude (distribuições Debian e derivada), yum (Redhat e distribuições derivadas), pacman (esqueça qual distro é essa ...) e outros.

O gerenciador de pacotes permite que você navegue por repositórios, baixe, instale, consulte e remova softwares, da mesma forma que uma sofisticada (e gratuita) "loja de aplicativos". Assume a responsabilidade de garantir que as dependências sejam atendidas e rastreie o que está atualmente instalado.

Normalmente, o gerenciador de pacotes também permite as mesmas operações em um pacote que você baixou manualmente fora de qualquer repositório. As ferramentas também estão disponíveis se você quiser criar o seu próprio software que você criou ou compilou.

Como o pacote em si NÃO é um arquivo executável, você não precisa executar um executável não confiável, que você realmente não sabe o que ele faz. (O Windows finalmente está chegando com as atualizações distribuindo .msu em vez de .exe - mas .msi está por aí há algum tempo ...)

    
por 15.08.2012 / 04:49
2

Você pode obter uma lista dos arquivos que um determinado pacote yum instala fazendo:

yum install yum-utils

Então você pode executá-lo assim:

repoquery --list yum-utils

(Obviamente, substitua "yum-utils" pelo segundo com o nome daquele pacote cuja lista de arquivos você gostaria de ver.)

Para apt-get , você pode usar:

dpkg -L package-name
    
por 15.08.2012 / 02:02
1

Geralmente, em /usr/bin , embora dependa da aplicação ou biblioteca específica que você está instalando.

    
por 15.08.2012 / 02:00
1

No Linux / Unix, a maioria dos programas normalmente não acaba em um único diretório, mas diferentes partes dele (executáveis, arquivos de configuração, arquivos de log, documentação, outros recursos) são espalhados pelo sistema de arquivos - geralmente através de links simbólicos. O artigo da Wikipédia descreve mais detalhadamente a estrutura de diretórios padrão em uma hierarquia de sistema de arquivos normal, mostrando os diferentes diretórios e o que você pode esperar encontrar em cada.

    
por 15.08.2012 / 02:13
0

O diretório /opt é reservado para instalações semelhantes ao Windows, em que cada pacote possui sua própria árvore de diretórios. Ninguém usa isso. Não tenho certeza porque; pode ser que adicionar /opt/PACKAGE/bin ao seu $PATH toda vez que você instalar um pacote seja muito chato.

    
por 15.08.2012 / 02:37
0

O software no Linux é um pouco diferente no paradigma do Windows ou Mac. Nesses, um executável e todos os seus arquivos de suporte são instalados em uma única pasta: o Windows normalmente os mantém em c:\Program Files\program name , Apple em /Applications/program.app . No Linux, existe uma estrutura mais ... comunitária. Os binários geralmente estão em /usr/bin , a configuração de todo o sistema está em /etc , a configuração específica do usuário geralmente está em ~/.program . As bibliotecas estão em /usr/lib , arquivos de suporte (por exemplo, arte-final) geralmente estão em /usr/share/program etc. Há até um padrão sugerindo onde as coisas deveriam ir.

Os programas geralmente são instalados pelos gerenciadores de pacotes, rpm e dpkg ; eles são automaticamente pesquisados e recuperados (incluindo o gerenciamento de dependências) por yum e aptitude / apt-get , respectivamente. Em um nível mais técnico, os pacotes são arquivos compactados simples (acredito que rpm e deb são ambos .tar.gz ). Esses arquivos contêm um espelho das partes do sistema de arquivos da raiz para onde os arquivos vão (por exemplo, um arquivo que deveria estar instalado em /usr/bin/program estará em usr/bin/program na pasta apropriada dentro do pacote.

Para encontrar informações sobre um determinado pacote, use o gerenciador de pacotes do seu sistema, como os outros aqui explicaram.

    
por 15.08.2012 / 03:27
0

A página de manual hier pode fornecer algumas informações

    
por 15.08.2012 / 04:29

Tags