web-development-kb-pt.site

Como compilar e instalar programas da fonte

Esse é um problema que realmente limita meu gosto pelo Linux. Se o aplicativo não estiver em um repositório ou se não tiver um script de instalação, eu realmente luto onde e como instalar um aplicativo da fonte.

Comparativamente ao Windows, é fácil. Você (praticamente) precisa usar um aplicativo instalador que faça todo o trabalho em um Assistente. Com o Linux ... nem tanto.

Então, você tem dicas ou instruções sobre isso ou há sites que explicam explicitamente como, por que e onde instalar programas Linux a partir da fonte?

42
Nitrodist

Normalmente, o projeto terá um site com instruções sobre como construí-lo e instalá-lo. Google para isso primeiro.

Na maior parte, você fará:

  1. Faça o download de um tarball (arquivo tar.gz ou tar.bz2), que é uma versão de uma versão específica do código fonte
  2. Extraia o tarball com um comando como tar zxvf myapp.tar.gz para um tarball compactado com gzip ou tar jxvf myapp.tar.bz2 para um tarball compactado
  3. cd no diretório criado acima
  4. corre ./configure && make && Sudo make install

Ou:

  1. Use git ou svn ou o que for para obter o código-fonte mais recente de seu repositório de fontes oficial
  2. cd no diretório criado acima
  3. corre ./autogen.sh && make && Sudo make install

O configure e o autogen.sh aceitarão um argumento --prefix para especificar onde o software está instalado. Eu recomendo verificar Onde devo colocar o software que eu me compilar? para obter conselhos sobre o melhor local para instalar software personalizado.

24
Sandy

Eu só quero acrescentar que existem gerenciadores de pacotes que compilam pacotes a partir do código-fonte e lidam com todas as dependências, sinalizadores, etc.

Nos sistemas BSD é ports: sando a coleção de portas

No Debian, o apt-get _ o gerenciador de pacotes também pode instalar a partir do código-fonte: APT HOWTO: Trabalhando com pacotes-código-fonte (O mesmo vale para o Ubuntu, Linux-mint e tudo mais baseado no Debian)

A distribuição do Gentoo usa o gerenciador de pacotes portage, que compila todo o sistema apenas a partir da fonte: Introdução ao Portage .

O Slackware pode compilar pacotes, mas não sei se existe algum gerenciador de pacotes lá .. =)

De qualquer forma, você sempre pode compilar pacotes manualmente como o Sandy mencionado acima =) Além disso, deve ser possível usar apt-get ou portage gerenciadores de pacotes em qualquer outra distro ...

4
holms

Eu acho que é melhor ler a documentação que acompanha esse programa ou aplicativo específico que você deseja instalar. Geralmente, existem readmes/READMEs dentro dos tarballs (o arquivo de origem do aplicativo que você geralmente pode baixar) ou talvez até INSTALAR arquivos para ler e aprender sobre qual é a maneira preferida de instalar o aplicativo. Em resumo: RTFM;)

2
reiche

Um resumo para usar a coleção de portas no FreeBSD:

Localizar porta

As portas são organizadas por categoria, portanto, se você não souber em que categoria está a porta, será necessário encontrá-la primeiro:

cd /usr/ports
make search name=myport

Às vezes, há muitas entradas dessa maneira. Eu pessoalmente prefiro:

find /usr/ports -name myport* -print -depth 2

Use * Ao pesquisar, pois geralmente existem várias versões de uma porta disponíveis. O argumento de profundidade garante que seus resultados de retorno não sejam desnecessariamente confusos com correspondências que você provavelmente não deseja.

Configuração

Freqüentemente, você desejará fazer algumas configurações; software como o Apache e o Postgres praticamente exigem. Existem três opções principais: linha de comando, ambiente e criar arquivos de configuração. Para começar com a linha de comando:

make showconfig

isso listará as opções de configuração padrão. Se você gosta dos padrões, está pronto para compilar e instalar. Se não,

make config

irá abrir uma caixa de diálogo onde você pode selecionar quais opções deseja. (Não se confunda com isso e make configure Que configura sua porta com as opções escolhidas!) Isso geralmente é suficiente, mas para alguns softwares, como o Apache, existem geralmente é uma configuração complexa que uma caixa de diálogo simples não suporta. Para isso, você também deve consultar os Makefile (s), que às vezes fornecerão alguns alvos adicionais para make que fornecerão mais informações. Para continuar o exemplo do Apache

make show-modules
make show-options
make show-categories

fornecerá informações sobre como configurar os módulos escolhidos, as opções de encadeamento e similares. Se os padrões da sua porta estiverem bons e você quiser alterar algumas coisas, também poderá passar os pares chave = valor como variáveis ​​de ambiente:

make MYVBL1=MYVAL1 ... install clean

Além disso, você pode definir opções de opção através da opção -D:

make -D MYVAR -D MYOTHERVAR ... install clean

Para configurações complexas, no entanto, a linha de comando não funcionará bem e você é melhor que nenhum dos dois primeiros métodos seja eficaz. Nesse caso, você pode criar um arquivo de configuração e passá-lo para make com a variável __MAKE_CONF. O FreeBSD possui um arquivo de configuração padrão: /etc/make.conf, Que geralmente contém informações sobre portas instaladas anteriormente e outras configurações do sistema. Para começar, crie um arquivo com suas opções de portas, chame-o de ~/myport.mk E depois combine esse arquivo com /etc/make.conf:

cat /etc/make.conf ~/myport.mk >> ~/make.myport.conf

então você pode verificar sua configuração:

make showconfig __MAKE_CONF=~/make.port.conf

e se tudo parecer bem:

make install clean __MAKE_CONF=~/make.myport.conf

Cuidado! Se você precisar ajustar as definições de configuração após make configure Ou uma instalação total ou parcial, você absolutamente deve limpar sua configuração primeiro :

make rmconfig

Não fazer isso resultará em interações inesperadas entre o subsistema de portas, os padrões make da sua porta e a configuração desejada.

Isso é muito para um resumo, mas a complexidade da configuração é principalmente sobre o aplicativo, não a porta. O Bash, por exemplo, não tem realmente nenhuma opção.

Instalação

Esta é a parte fácil:

make install clean

ou você pode

make build
make install
make clean

que é apenas mais digitação.

É praticamente isso. Obviamente, há mais que você pode fazer, como listar recursivamente dependências e opções de configuração, atualizar com patches e assim por diante. Aqui, vou referir-lhe a seção Portas do Manual , a página de manual do subsistema de portas (boas informações sobre destinos de criação adicionais) e a página de manual make .

1
gvkv

Recentemente, comecei a usar o "Checkinstall" ao instalar a partir do código fonte fora do meu gerenciador de pacotes. Ele cria um "pacote" a partir de um tarball de terceiros que pode ser instalado e gerenciado (e desinstalado) por meio das ferramentas do gerenciador de pacotes.

Confira este artigo - http://www.linuxjournal.com/content/using-checkinstall-build-packages-source

0
aryeh