desenv-web-rp.com

Qual é o equivalente do Linux a C: \ Arquivos de Programas?

Entendo que no Windows e no Linux e Unix, um software | aplicativo | programa 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 é 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?

65
Thomas

O Projeto de Documentação do Linux possui um descrição da hierarquia do sistema de arquivos do Linux onde eles explicam as diferentes pastas e seu significado (parcialmente histórico).

Como o xenoterracide já apontou /bin e /opt são os diretórios padrão que podem ser comparados com "Arquivos de Programas" no Windows.

/bin contém vários comandos úteis que são úteis tanto para o administrador do sistema quanto para usuários não privilegiados. Geralmente contém os shells como bash, csh, etc .... e comandos comumente usados ​​como cp, mv, rm , cat, ls.

( citado em TLDP )

/opt é reservado para todos os pacotes de software e complementos que não fazem parte da instalação padrão. Por exemplo, os pacotes StarOffice, Kylix, Netscape Communicator e WordPerfect são normalmente encontrados aqui.

( citado em TLDP )

60
Axel Knauf

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 programa xscreensaver estão instalados:

/etc/pam.d/xscreensaver
/etc/xscreensaver
/etc/xscreensaver/README
/usr/bin/xscreensaver
/usr/bin/xscreensaver-command
/usr/bin/xscreensaver-demo
/usr/bin/xscreensaver-gl-helper
/usr/share/X11/app-defaults/XScreenSaver
/usr/share/applications/xscreensaver-properties.desktop
/usr/share/doc/packages/xscreensaver
/usr/share/doc/packages/xscreensaver/README
/usr/share/locale/ca/LC_MESSAGES/xscreensaver.mo
/usr/share/locale/da/LC_MESSAGES/xscreensaver.mo
/usr/share/locale/de/LC_MESSAGES/xscreensaver.mo
[ ... ]
/usr/share/locale/zh_TW/LC_MESSAGES/xscreensaver.mo
/usr/share/man/man1/xscreensaver-command.1.gz
/usr/share/man/man1/xscreensaver-demo.1.gz
/usr/share/man/man1/xscreensaver.1.gz
/usr/share/man/man6/xscreensaver-gl-helper.6x.gz
/usr/share/pixmaps/xscreensaver.xpm
/usr/share/xscreensaver
/usr/share/xscreensaver/glade
/usr/share/xscreensaver/glade/screensaver-cmndln.png
/usr/share/xscreensaver/glade/screensaver-colorselector.png
[ ... ]

Não se preocupe, geralmente quando um instalador pergunta para onde instalar, a resposta correta é uma das seguintes: /, /opt, /usr, /usr/local

Como você pode ver, todos os (1) arquivos de xscreensaver estão instalados em /usr de 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, normalmente deseja agora o caminho base em que instala o programa. No meu xscreensaver exemplo, é /usr.

Como regra simples: / deve conter apenas o programa necessário para inicializar o sistema (como C:\windows\system32), /usr/local deve conter os programas necessários apenas nesse computador exclusivo, /opt (2) todos os opcionais programas que possuem estrutura de diretórios não padrão e /usr todo o software padrão.

Em qualquer caso, 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

45
andcoz

Normalmente, /bin, /usr/bin, /usr/local/bin ou /opt/bin. Eu acho que /usr/bin e /opt/bin são os arquivos de programas mais próximos, porque geralmente são para binários não críticos para o sistema 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. /bin é para binários críticos do sistema como /bin/sh.

12
xenoterracide

Dê uma olhada em man hier é uma "Descrição da hierarquia do sistema de arquivos".

8
vasily-vm

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 em /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

3
Jan

Tipo echo $PATH no seu terminal para ver o (s) caminho (s) em que o Shell procurará para encontrar um comando. Ele procura um arquivo na ordem em que é impresso.

3
Jaseem

Bem, você não encontrará todas as suas soluções em /bin e sbin porque eles possuem principalmente comandos do sistema (ou seja, os comandos usados ​​pelo sistema).

/usr/bin pode ser idealmente chamado de "Program Files" do mundo unix. A respeito de /opt muito poucos pacotes optam por usar esse local para instalação, o mesmo se aplica aos pacotes que usam /etc/ ou /var como locais

1
pankajdoharey