Então, eu só tinha uma pergunta simples que provavelmente me deixaria burra, mas estou aprendendo
Quando eu faço um
./configure --prefix/usr/bin/
O que o prefixo está fazendo? Isso é apenas instalar o pacote nesse local
E uma resposta pode dar uma resposta mais elaborada para uma instalação complicada e explicar em detalhes os prefixos e opções que a acompanham.
Se eu fosse executar uma instalação do apt-get, como instalá-lo em um determinado local com prefixo
Eu também vi
PREFIX=/tmp/installdir make
PREFIX=/tmp/installdir make install
Se o prefixo é chamado em ./configure, por que ele está sempre sendo feito nesses dois exemplos?
Agradeço antecipadamente!
Respostas:
Quando você instala o software com
make install
ousudo make install
, arquivos diferentes são colocados em diretórios diferentes. Os executáveis que fornecem comandos que o usuário deve executar geralmente entram em umbin
diretório, as bibliotecas geralmente em umlib
diretório, as páginas de manual geralmente em umman
diretório e assim por diante.Quando você executa
./configure
, a--prefix
opção permite especificar onde estão esses diretórios . É chamado--prefix
porque permite fornecer o prefixo que aparece nos caminhos de cada um dos diretórios em que os arquivos do programa ou da biblioteca que você está construindo devem ser instalados. A maioria dosconfigure
scripts suporta--prefix
, e omiti-lo e apenas executar./configure
normalmente é equivalente a./configure --prefix=/usr/local
.Para responder isso de maneira mais completa, reproduzi duas seções da minha resposta em Como instalar o arquivo tar "globalmente"? (no Unix e Linux ), que abordam essa questão especificamente:
fonte
Ele informa a localização das coisas necessárias para configurar o pacote ou software atual.
Como em um caso simples, ele pode dizer a localização das bibliotecas ssl:
e também informa quais pacotes não configurar, para fazer compilações adequadas do programa de acordo com o seu sistema:
Estas são apenas opções extras para tornar uma compilação adequada ao seu sistema. É o que eu penso. Corrija-me se for outra coisa.
A
--prefix=PREFIX
opção instala arquivos independentes da arquitetura noPREFIX
. Quando você executa ummake install
comando, as bibliotecas são colocadas noPREFIX/lib
diretório, os executáveis noPREFIX/bin
diretório e assim por diante.Se esse argumento não é passado para o
configure
comando, em seguida, o valor padrão é/usr/local
.fonte