Questão Ao instalar aplicativos do usuário, onde as “melhores práticas” sugerem que elas estejam localizadas?


Ocasionalmente eu instalo aplicativos manualmente, em vez de usar apt ou outro gerenciador de pacotes.

Qual local (/usr/, /usr/local/, /opt/, /home/, etc.) é sugerido pelas "melhores práticas" para a instalação de aplicativos de usuário?


184
2017-08-05 14:42


origem


Gostar de instalar coisas da fonte de vez em quando, eu escrevi uma pequena ferramenta para fazer isso que faz as alterações em seu arquivo de inicialização do shell por conta própria (e também modifica o prefixo da sua biblioteca, se você solicitar, para programas que dependem de bibliotecas compartilhadas). Não muito rico em recursos, mas funciona 99% do tempo. - new123456
Post relacionado: askubuntu.com/q/138547/62483 - Lucio
Grande discussão sobre a distinção entre /opt e /usr/local : unix.stackexchange.com/q/11544/11917 - blong


Respostas:


Isso depende, realmente. Se o aplicativo tiver um makefile, (para aplicativos python) usará distutils (tem um setup.py arquivo) ou um sistema similar de compilação / instalação, coloque-o /usr/local/ (comportamento padrão).

Se você só precisa extrair um tarball e executá-lo diretamente (por exemplo, Thunderbird, Firefox), coloque-o /opt/.

Por quê? Pelo que entendi, /usr/local/ tem uma hierarquia semelhante à /usr/. Então, um programa esperando para "instalado" em /usr/ deve funcionar bem em /usr/local/. Um programa que só precisa de um diretório e obterá todos os arquivos / bibliotecas relativos a esse diretório pode obter um diretório para si mesmo em /opt/.


163
2017-08-05 14:53



Parece que muitas pessoas esquecem opt/ - na minha opinião, você acertou em cheio na cabeça quanto ao propósito. - Marco Ceppi♦
Eu baixei o eclipse e extraí para / opt. Como posso executá-lo a partir do terminal como outros programas como o javac, java. Fiz com update-alternatives como segue, sudo update-alternatives --install "/usr/bin/ eclipse" "eclipse" "/ opt / eclipse / eclipse" 1 MAS DIZ O COMANDO NÃO ENCONTRADO I TYPE sudo eclipse - Deepen
Faça um symlink de / usr / bin ou adicione-o ao PATH em ~ / .bashrc - Alex


É bom lembrar que /usr não significa do utilizador mas sim recursos do sistema unix.

Como tal, tenho a tendência de perceber que qualquer distribuição tem o direito de pisar em todo o conteúdo de /usr, e que minhas adições específicas ao sistema entrem /usr/local, que eu preservo antes de fazer um upgrade.

Enquanto isso, aplicativos e outras coisas entram /opt.

Algumas pessoas se sentem confortáveis ​​em colocar coisas /home, embora eu raramente siga essa convenção.

Tudo o que disse, eu deixo o gerenciador de pacotes de distribuição fazer as coisas do seu jeito primeiro, e então fazer o acima quando as coisas rolam a mão.


99
2017-09-17 17:39



Vale a pena lembrar que 'recursos do sistema Unix' é uma renomeação realizada AFTER '/ home' foi adicionado. Nos velhos e velhos tempos (Unix Versão 6 et.al.) você veria diretórios como / usr / jimmy, / usr / siobhan, / usr / ahmed, etc. porque os diretórios "user" estavam armazenados em / usr . - Mark Leighton Fisher
OK, eu vou morder: o que significa? - Seth
@Seth Eu acho que é 'opcional' - era originalmente para software que não fazia parte de uma instalação padrão. - Carl H
/ usr é User. Isso foi porque os usuários do Linux eram desenvolvedores. Primeiro, como ele começou a se dedicar aos desenvolvedores e usuários /home dir foi introduzido. E então alguém teve a ideia de dizer que significa Unix System Resources, o que realmente não faz sentido, porque nós temos o Unix system Resources dentro /dev - Info-Screen
Correto, o / usr é um backronym. O propósito mudou desde os dias em que o Unix rodava em um PDP-7 em 1969. - Walt Stoneburner


Instale programas instáveis ​​como o firefox devel em / home / user / opt / torna muito mais fácil de remover, e não há confusão para outros usuários sobre qual versão eles devem usar ... Então, se não for um programa para uso global, instale em uma subpasta em seu diretório pessoal.

Nunca instale programas em / usr /, é provável que cause caos, coisas instaladas em / usr / devem ser apenas para pacotes de distribuição. / usr / local / é para pacotes compilados localmente. E a estrutura funciona exatamente da mesma maneira! arquivos em / usr / local / serão priorizados sobre arquivos em / usr /

/ opt / deve ser usado para instalação de pacotes pré-compilados (binários) (Thunderbird, Eclipse, Netbeans, IBM NetSphere, etc.) e similares. Mas se eles são apenas para um único usuário, eles devem ser colocados em seu diretório pessoal.

Se você quer ser capaz de executar um programa instalado em um local "estranho" (como / home / user / opt / firefox /) sem digitar todo o caminho que você precisa para adicioná-lo à sua variável $ PATH, você pode fazer isso ser adicionando uma linha como essa em seu /home/user/.profile

export PATH=/home/user/opt/firefox:$PATH

O nome da pasta deve ser aquele em que o arquivo executável que você precisa executar está localizado.


30
2017-08-07 08:40





O Padrão de Hierarquia do Sistema de Arquivos Linux indica /usr/local.

A partir de http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html:

A ideia original por trás de '/ usr / local' era ter um separado ('local')   '/ usr' em cada máquina além de '/ usr', que pode ser apenas   montado somente leitura de algum outro lugar. Copia a estrutura de   '/ usr'. Atualmente, '/ usr / local' é amplamente considerado como um bom lugar   que manter programas auto-compilados ou de terceiros. O / usr / local   hierarquia é para uso pelo administrador do sistema ao instalar   software localmente. Precisa estar seguro de ser sobrescrito quando o   o software do sistema é atualizado. Pode ser usado para programas e dados que   são compartilháveis ​​entre um grupo de hosts, mas não são encontrados em / usr. Localmente   software instalado deve ser colocado dentro de / usr / local em vez de / usr   a menos que esteja sendo instalado para substituir ou atualizar o software em / usr.


25
2017-08-05 14:45



Parece contradizer este material / usr / local com a informação na página de opt: tldp.org/LDP/Linux-Filesystem-Hierarchy/html/opt.html "" Este diretório é reservado para todos os softwares e pacotes complementares 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. Para estar em conformidade com o FSSTND, todos os aplicativos de terceiros devem ser instalados nesse diretório. "..." (semelhante à maneira como o Windows instalará o novo software em sua própria árvore de diretórios C: \ Windows \ Arquivos Progam \ "Nome do Programa ")" - Pod


Eu geralmente tenho uma pasta chamada "Programas" em minha casa onde eu instalo esses programas, estranho o suficiente (ou não), eles são todos coisas java agora.

Tem uma grande vantagem para mim, quando eu reinstalo ou troco de computadores eles são movidos com o resto da minha casa. Tem uma clara desvantagem, esses aplicativos só estão disponíveis para o meu usuário.


5
2017-08-05 14:57



Como posso reinstalar o Ubuntu 16.04 sem perder dados na pasta inicial? Eu tentei fazer pelo formato / Apenas diretório, em seguida, digite o mesmo nome de usuário e senha antigos, mas eu achei que o Ubuntu cria outra pasta de início. - Ibrahim Disouki


Use "checkinstall" para converter seu pacote alienígena para um deb, para que ele seja desinstalável usando o gerenciador de pacotes.

Observe que os arquivos de configuração geralmente não serão tratados como arquivos de configuração (talvez ignorados ou talvez tratados como parte do aplicativo), e que os scripts de pré e pós-instalação às vezes são confusos, embora geralmente avisem quando eles acham que deb terá um script ruim de pré ou pós-instalação.


1
2017-08-16 01:41