Onde o software instalado é armazenado no Linux?

Onde o software instalado é armazenado no Linux?

Possível duplicata:
Onde está instalado um programa Linux típico

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

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

No entanto, quando instalo um pacote no Linux usando yumou apt-get, não sei onde o pacote está instalado e onde os arquivos necessários para esse aplicativo estão armazenados. Vi que a maioria das configurações está no /etcdiretório. 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 são armazenados? E se meu entendimento sobre gerenciamento de pacotes estiver errado, corrija-me.

Responder1

Muitos programas (os binários/scripts) terminam em /binou /usr/bincom 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 fazer o checkoutOnde é

whereis prog_name

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

which prog_name

Além disso, issográfico e explicação/exemplospode ser útil.

Responder2

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

yum install yum-utils

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

repoquery --list yum-utils

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

Para apt-get, você pode usar:

dpkg -L package-name

Responder3

No Windows, principalmente nas versões mais antigas, era comum que os programas armazenassem arquivos de configuração e dados não constantes em seus C:\Program Filesdiretórios. Isso é derivado de como os programas geralmente eram instalados e executados em DOS de usuário único, sem rede e sem permissão de arquivo.

Do ponto de vista da segurança, esta é uma má ideia. Os locais onde reside o código executável devem ser separados dos dados modificáveis. Dessa forma, é mais fácil aplicar permissões de arquivo apropriadas para evitar 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, essa tradição está finalmente começando a perder força.

UNIX e Linux, sendo um sistema multiusuário desde muito antes, tiveram a tendência de separar diretórios executáveis ​​de outros diretórios muito antes, uma vez que havia a necessidade de evitar que outros usuários além do root modificassem os binários instalados. É também por isso que /usràs /sbinvezes são partições separadas - um administrador particularmente preocupado com a segurança pode montar essas partições somente leitura e remontá-las para leitura/gravação quando uma instalação/desinstalação precisar acontecer.

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

O gerenciador de pacotes permite navegar em repositórios, baixar, instalar, consultar e remover software, como uma "loja de aplicativos" sofisticada (e gratuita). Ele assume a responsabilidade de garantir que as dependências sejam atendidas e rastrear o que está instalado atualmente.

Normalmente, o gerenciador de pacotes também permitirá as mesmas operações em um pacote que você baixou manualmente fora de qualquer repositório. Ferramentas também estão disponíveis se você quiser criar o seu próprio software a partir de software que você mesmo 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 faz. (O Windows está finalmente chegando com atualizações distribuindo .msu's em vez de .exe's - mas .msijá existe há algum tempo...)

Responder4

No Linux/Unix a maioria dos programas geralmente não termina em um único diretório, mas diferentes partes dele (executáveis, arquivos de configuração, arquivos de log, documentação, outros recursos) estão espalhadas pelo sistema de arquivos — geralmente por meio de links simbólicos. OArtigo da Wikipédiadescreve com mais detalhes a estrutura de diretórios padrão em uma hierarquia normal de sistema de arquivos, mostrando os diferentes diretórios e o que você pode esperar encontrar em cada um.

informação relacionada