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?
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á:
tar zxvf myapp.tar.gz
para um tarball compactado com gzip ou tar jxvf myapp.tar.bz2
para um tarball compactado./configure && make && Sudo make install
Ou:
./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.
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 ...
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;)
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
.
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