O que é o equivalente do Linux para C: \ Arquivos de Programas?

64

Eu entendo que tanto no Windows quanto no Linux e no Unix, um programa | aplicativo | software pode ser instalado em qualquer diretório. Além disso, se os pacotes forem instalados usando o sistema de pacotes 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 distro Linux, onde está 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 ?

    
por Thomas 11.09.2011 / 10:59

7 respostas

60

O Projeto de Documentação do Linux tem uma descrição da hierarquia do sistema de arquivos 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 a "Arquivos de Programas" no Windows.

/bin contains several useful commands that are of use to both the system administrator as well as non-privileged users. It usually contains the shells like bash, csh, etc.... and commonly used commands like cp, mv, rm, cat, ls.

( citado do TLDP )

/opt is reserved for all the software and add-on packages that are not part of the default installation. For example, StarOffice, Kylix, Netscape Communicator and WordPerfect packages are normally found here.

( citado do TLDP )

    
por 11.09.2011 / 11:36
45

Não há equivalente direto. A estrutura do diretório é 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 vários 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 onde instalar, a resposta correta é uma das seguintes: / , /opt , /usr , /usr/local

Como você pode ver, todos (1) arquivos de xscreensaver estão instalados em /usr de acordo com alguma regra simples: executáveis em /usr/bin , páginas de manual em /usr/share/man , documentação em /usr/share/doc/packages/PROGRAMNAME e assim em.

Quando um instalador solicita uma instalação prefix , geralmente ele quer agora o caminho base sob o qual instala o programa. No meu exemplo xscreensaver , é /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 programas opcionais que possuem estrutura de diretório 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) arquivos de configuração de todo o sistema devem residir em /etc

(2) bastante obsoleto no Linux

    
por 11.09.2011 / 11:55
12

Usualmente, /bin , /usr/bin , /usr/local/bin ou /opt/bin . Acho que /usr/bin e /opt/bin são os mais próximos dos Arquivos de Programas, porque geralmente são para binários não essenciais ao sistema que são instalados pelo administrador do sistema, embora, ao contrário das janelas, 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 .

    
por 11.09.2011 / 11:09
8

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

    
por 12.09.2011 / 07:53
3

Como outros apontaram, os programas instalados através do gerenciador de pacotes estão espalhados por vários diretórios. Embora o binário seja encontrado normalmente /usr/bin , os arquivos de configuração de todo o sistema estão em /etc e assim por diante.

Se um aplicativo não for instalado através do gerenciador de pacotes, os arquivos deverão ser instalados em um local onde eles não interfiram com o gerenciador de pacotes. Este lugar é /usr/local .

Se você for perguntado por um caminho de instalação, a escolha mais comum seria /usr/local/appname

    
por 11.09.2011 / 22:21
3

Digite echo $PATH no seu terminal para ver o (s) caminho (s) que o shell irá procurar para encontrar um comando. Ele vai procurar por um arquivo na ordem em que é impresso.

    
por 11.09.2011 / 22:46
1

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

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

    
por 11.09.2011 / 14:11