Configurando sua compilação
Quando você tem o código-fonte que é compilado executando ./configure
e make
, geralmente você usa make install
(ou sudo make install
) para instalá-lo. Isso copia os arquivos do diretório de construção para o local da instalação. Quando a coisa que você está instalando fornece comandos executáveis, esses executáveis geralmente são copiados para um diretório que esteja $PATH
ou que você deve considerar adicionar
$PATH
.
Embora a construção e instalação de software é muitas vezes tão simples como executar ./configure
, make
, às vezes make check
ou make test
, em seguida, make install
ou sudo make install
, às vezes você vai querer passar opções para o configure
script para configurar a compilação. Em particular, como diz o pfnuesel , é assim que você configura
onde o software será instalado. Embora a make install
etapa realmente instale o software, os locais onde tudo será instalado são normalmente estabelecidos na
./configure
etapa.
A opção mais comum para isso é --prefix
. O prefixo padrão, quando você não diz configure
o que usar, é geralmente /usr/local
. (Ocasionalmente, o código-fonte de um programa ou biblioteca é padronizado com outro prefixo. Felizmente isso é raro.)
Então, ./configure
geralmente é equivalente a ./configure --prefix=/usr/local
. Para instalar o software em seu diretório pessoal, você pode usar ./configure --prefix=/home/galahad
(se /home/galahad
for seu diretório pessoal) ou --prefix="$HOME"
. Então é claro que você ainda deve criar e instalar o software make
. Devo dizer que nem todos os softwares distribuídos em código-fonte são criados dessa maneira. Você deve sempre procurar documentação dentro do arquivo de código-fonte extraído.
O que --prefix
significa
Ao executar , você indica que o software deve ser instalado no
diretório Mas isso raramente, se é que alguma vez, coloca arquivos soltos . Em vez disso, coloca arquivos que servem a propósitos diferentes nos diferentes subdiretórios de . Se esses subdiretórios não existirem, eles serão criados../configure --prefix=directory
directory
directory
directory
Os executáveis geralmente entram directory/bin
, mas podem entrar directory/sbin
se forem comumente usados para administração do sistema ou podem (mais raramente, hoje em dia) entrar
directory/games
se são jogos. As bibliotecas entram directory/lib
ou em
outro diretório com o mesmo nome, como
directory/lib32
. Arquivos de cabeçalho entram
directory/include
. As páginas do manual entram
directory/man
. Os arquivos de dados usados pelo software entram
directory/share
.
É isso que significa directory
ser um prefixo . É o diretório pai que contém os locais em que arquivos diferentes serão instalados. Portanto, ele aparece como um prefixo nos caminhos absolutos da maioria dos arquivos e diretórios criados executando make install
ou sudo make install
.
Existem algumas exceções a isso. Os arquivos de configuração em todo o sistema - que às vezes são criados durante a instalação do software que os usará, embora nem sempre - geralmente entram /etc
. Isso normalmente não é afetado pela especificação de um prefixo diferente. Mesmo se você instalar muitos softwares /usr/local
, ele ainda será usado em grande parte
/etc
e seu /usr/local/etc
diretório provavelmente não existirá, estará vazio ou conterá muito poucos arquivos.
Em muitos sistemas, você pode encontrar mais informações sobre o layout típico do sistema de arquivos executando man hier
. Se você estiver usando um sistema GNU / Linux, poderá estar interessado no Padrão de Hierarquia do Sistema de Arquivos .