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

177

Ocasionalmente, 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?

    
por citadelgrad 05.08.2010 / 16:42
fonte

6 respostas

156

Isso depende, na verdade. Se o aplicativo tiver um makefile, (para aplicativos python) usar distutils (possui um arquivo setup.py ) ou um sistema semelhante de compilação / instalação, coloque-o em /usr/local/ (comportamento padrão).

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

Por quê? Pelo que entendi, /usr/local/ tem uma hierarquia semelhante a /usr/ . Portanto, um programa que espera ser "instalado" em /usr/ deve funcionar bem em /usr/local/ . Um programa que apenas 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/ .

    
por Umang 05.08.2010 / 16:53
fonte
91

É bom lembrar que /usr não representa usuário , mas sim recursos do sistema unix .

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

Enquanto isso, os aplicativos e outras coisas vão em /opt .

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

Tudo o que foi dito, deixei o gerenciador de pacotes de distribuição fazer as coisas primeiro, e depois fazer as coisas acima quando estiver rolando coisas.

    
por Walt Stoneburner 17.09.2010 / 19:39
fonte
30

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 global use, instale-o 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 rodar um programa instalado em um local "estranho" (como / home / user / opt / firefox /) sem digitar o caminho inteiro que você precisa para adicioná-lo à sua variável $ PATH, você pode faça isso 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.

    
por LassePoulsen 07.08.2010 / 10:40
fonte
24

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

Do link :

  

A idéia 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.

    
por popey 05.08.2010 / 16:45
fonte
5

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 do 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.

    
por Javier Rivera 05.08.2010 / 16:57
fonte
1

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 pré e pós-instalação sejam, às vezes, confundidos, embora geralmente avisem quando acha que o deb terá um script ruim de pré ou pós-instalação.

    
por A Student at a University 16.08.2010 / 03:41
fonte