Entendo que no Windows, assim como no Linux e Unix, um programa | aplicativo | software pode ser instalado em qualquer diretório. Além disso, se os pacotes forem instalados usando o sistema de empacotamento da distribuição, os arquivos serão colocados no local correto.
Mas, às vezes, uma instalação de software solicita um caminho para colocar arquivos. No caso de uma distribuição Linux, onde fica esse local padrão ( C:\Program Files
ou C:\progra~1
equivalente)? É diferente para várias distribuições? Se sim, onde isso seria para RHEL
, Suse
e Ubuntu
?
Não há equivalente direto. A estrutura de diretórios é muito diferente. No Windows, você tem um único diretório para cada pacote / software instalado que contém todos os arquivos relacionados a (por exemplo
C:\Program Files\MyProgram
). No Linux, cada software é "disperso" em muitos diretórios, de acordo com o tipo de arquivo e alguma outra regra.Como exemplo, podemos examinar onde diferentes arquivos relacionados ao
xscreensaver
programa estão instalados:Não se preocupe, geralmente quando um instalador pergunta onde instalar para, a resposta correta é um dos seguintes:
/
,/opt
,/usr
,/usr/local
Como você pode ver, praticamente todos os arquivos de (1)
xscreensaver
são instalados de/usr
acordo com uma regra simples: executável em/usr/bin
, páginas de manual em/usr/share/man
, documentação em/usr/share/doc/packages/PROGRAMNAME
e assim por diante.Quando um instalador solicita uma instalação
prefix
, geralmente ele deseja agora o caminho base sob o qual instalar o programa. No meuxscreensaver
exemplo, é/usr
.Como regra simples:
/
deve conter apenas o programa necessário para inicializar o sistema (asC:\windows\system32
),/usr/local
deve conter os programas necessários apenas nesse computador exclusivo,/opt
(2) todos os programas opcionais que possuem estrutura de diretório não padrão e/usr
todo o software padrão .De qualquer forma, existe um padrão que define todas essas regras em detalhes: Padrão de Hierarquia do Sistema de Arquivos
(1) os arquivos de configuração em todo o sistema devem residir em
/etc
(2) bastante obsoleto no Linux
fonte
/opt
é preferido para software de terceiros em vez de/usr/local
por algum tempo./usr/share
é chamada "compartilhamento" porque é compartilhada entre diferentes arquiteturas (documentação, scripts, imagens), enquanto/usr/lib*
é para arquivos dependentes da arquitetura (e não executáveis, quais/usr/bin
).Ususually,
/bin
,/usr/bin
,/usr/local/bin
, ou/opt/bin
. Penso/usr/bin
e/opt/bin
sou o mais próximo dos Arquivos de Programas, porque geralmente são para binários não críticos ao sistema que são instalados pelo administrador do sistema, embora, diferentemente do Windows, ambos contenham programas instalados com um gerenciador de pacotes. Onde/usr/local/bin
é para software não distribuído em pacote./bin
é para binários críticos do sistema, como/bin/sh
.fonte
/bin
,/usr/bin
,/usr/local/bin
Ou/opt/bin
. Não há um local padrão? O motivo pelo qual pergunto é porque estou instalando o software em algumas VMs e o local padrão leva para qual partição já possui o maior espaço. Desejo alterar o espaço da partição para o diretório em que o software costuma ir e não ter o software colocado de maneira diferente em todas as VMs./opt
por exemplo, geralmente é usado para software proprietário./usr/
é uma partição separada./bin
e/usr/bin
é obsoleta agora; historicamente, o material crítico de sistema estaria em/bin
,/lib
... (diretamente na raiz), enquanto/usr
(com/usr/bin
,/usr/lib
...) seria montado mais tarde (talvez através da rede), não sendo necessário para a funcionalidade básica do sistema./opt
não deve sair. Algumas pessoas pensavam no passado que era uma boa ideia ter alguns aplicativos em um local diferente de todos os outros aplicativos./bin
está na partição raiz. Como em algum sistema, o espaço na partição raiz é limitado, os binários não essenciais (ou seja, todos os aplicativos do usuário) foram movidos para/usr/bin
.Dê uma olhada na
man hier
"Descrição da hierarquia do sistema de arquivos".fonte
Como outros já apontaram, os programas instalados através do gerenciador de pacotes estão espalhados por vários diretórios. Enquanto o binário normalmente é encontrado
/usr/bin
, os arquivos de configuração em todo o sistema estão presentes/etc
e assim por diante.Se um aplicativo não for instalado via gerenciador de pacotes, os arquivos deverão ser instalados em um local em que não interfiram no gerenciador de pacotes. Este lugar é
/usr/local
.Se você for solicitado para um caminho de instalação, a escolha mais comum seria
/usr/local/appname
fonte
Digite
echo $PATH
seu terminal para ver o (s) caminho (s) que o shell procurará para encontrar um comando. Ele procura um arquivo na ordem em que é impresso.fonte
Bem, você não encontrará todas as suas soluções
/bin
esbin
porque elas contêm principalmente comandos do sistema (ou seja, os comandos usados pelo sistema)./usr/bin
pode ser idealmente chamado"Program Files"
de mundo unix. Em relação a/opt
pouquíssimos pacotes optarem por usar esse local para instalação, o mesmo se aplica aos pacotes que usam/etc/
ou/var
como locaisfonte