Localização padrão para armazenar arquivos de origem de software

13

Existe um local padrão no Linux para armazenar arquivos de origem, por exemplo, OpenSSL . Eu estou construindo Nginx da fonte com a versão não padrão do OpenSSL. Eu preciso baixar e descompactar OpenSSL e eu fiz isso no diretório home. Agora, gostaria de saber se existe uma localização padrão no Linux, talvez /opt ?

    
por user3448600 02.05.2017 / 18:23

4 respostas

20

Sempre que você se perguntar algo assim, confira o Padrão de Hierarquia do Sistema de Arquivos (FHS). Lá, você encontrará o seguinte entrada:

usr/src : Source code (optional)

Purpose

Source code may be placed in this subdirectory, only for reference purposes

Assim, você pode colocar seus arquivos de origem em subdiretórios de /usr/src . Dito isto, este é um diretório opcional para que você possa realmente mantê-los onde quiser. O código-fonte não é relevante depois de compilado em um executável, para que o sistema nunca exija que a fonte de algo esteja acessível em um local específico.

Em conclusão: /usr/src é um local bastante normal, mas sinta-se à vontade para escolher o seu, se preferir.

    
por 02.05.2017 / 18:32
9

Se por "padrão" você quer dizer convencional, então o lugar para descompactar e construir o código fonte é o seu diretório pessoal. Espera-se que esses arquivos sejam transitórios, excluídos quando você estiver pronto ou mantidos, se desejar, organizados da forma que desejar. Seu diretório home é a sua área para jogar com todo esse tipo de coisa.

Se você deseja mantê-los depois, para referência , o " Padrão de Hierarquia do Sistema de Arquivos "recomenda /usr/src . No entanto, este é um guia e não uma lei; e, se você se habituar a esse hábito e depois se aventurar em um sistema não-Linux, estará sujeito a causar problemas seguindo-o. Por exemplo, em um sistema BSD, as fontes do sistema base são mantidas lá e você realmente não quer estar mexendo nelas. Mesmo no Linux, você pode correr o risco de se misturar com qualquer fonte armazenada pelos gerenciadores de pacotes, o que não é desejável.

Eu recomendaria evitar /usr/src no geral. Não há nenhum benefício óbvio em guardar qualquer coisa, e risco potencial se você confundir o significado pretendido.

    
por 02.05.2017 / 22:39
6

Você pode usar /usr/src como este lugar razoável e as distribuições baseadas em rpm o usam para armazenar o conteúdo dos pacotes srpm. Mas qualquer outro lugar como /opt , /usr/local , ~/src é bom

    
por 02.05.2017 / 18:27
6

/usr/local/src é um local seguro para manter o código-fonte e compilá-lo também. O FHS diz :

Directory   Description  
src         Local source code

e também

The /usr/local hierarchy is for use by the system administrator when installing software locally. It needs to be safe from being overwritten when the system software is updated.

Não está claro o que significa "código-fonte local", mas está claro que o sistema não tentará colocar nada em /usr/local/src , ao contrário de /usr/src , então parece haver pouca desvantagem em colocar o código lá.

Na verdade, eu tenho o meu em um sistema de arquivos separado:

Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/data-local_src     79G   46G   30G  61% /usr/local/src

Nota: pelo menos no Debian, seu usuário precisa ser adicionado ao grupo staff para escrever em /usr/local .

    
por 03.05.2017 / 10:20