it-swarm.it

Come compilare e installare programmi dal sorgente

Questo è un problema che limita davvero il mio godimento di Linux. Se l'applicazione non è su un repository o se non ha uno script di installazione, allora faccio davvero fatica a dove e come installare un'applicazione dalla fonte.

Rispetto a Windows, è facile. Ti viene richiesto (praticamente) di utilizzare un'applicazione di installazione che fa tutto il lavoro in una procedura guidata. Con Linux ... non così tanto.

Quindi, hai suggerimenti o istruzioni su questo o ci sono siti Web che spiegano esplicitamente come, perché e dove installare i programmi Linux dal sorgente?

42
Nitrodist

Normalmente, il progetto avrà un sito Web con le istruzioni su come costruirlo e installarlo. Google per primo.

Per la maggior parte farai:

  1. Scarica un tarball (file tar.gz o tar.bz2), che è una versione di una versione specifica del codice sorgente
  2. Estrai il tarball con un comando come tar zxvf myapp.tar.gz per un tarball gzip o tar jxvf myapp.tar.bz2 per un tarball con zip
  3. cd nella directory creata sopra
  4. correre ./configure && make && Sudo make install

O:

  1. Usa git o svn o altro per estrarre il codice sorgente più recente dal loro repository di fonti ufficiale
  2. cd nella directory creata sopra
  3. correre ./autogen.sh && make && Sudo make install

Sia configure che autogen.sh accettano un argomento --prefix per specificare dove è installato il software. Consiglio di provare dove devo mettere il software che compilo da solo? per consigli sul posto migliore dove installare software personalizzato.

24
Sandy

Voglio solo aggiungere che ci sono gestori di pacchetti che compilano pacchetti dall'origine e gestiscono tutte le dipendenze dei pacchetti, flag, ecc.

Nei sistemi BSD è ports: so della raccolta porte

In Debian, il apt-get il gestore pacchetti può installare anche dal sorgente: APT HOWTO: lavorare con i pacchetti sorgente (Lo stesso vale per Ubuntu, Linux-mint e tutto il resto basato su Debian)

La distribuzione Gentoo utilizza il gestore pacchetti portage, che compila l'intero sistema solo dal sorgente: Portage Introduction .

Slackware può compilare pacchetti ma non so se ci sia un gestore di pacchetti per questo dentro .. =)

Comunque puoi sempre compilare i pacchetti manualmente come Sandy menzionato sopra =) Inoltre deve essere possibile usare apt-get o portage gestori di pacchetti in qualsiasi altra distribuzione ...

4
holms

Penso che sia meglio leggere la documentazione fornita con quel programma o applicazione specifici che si desidera installare. Di solito ci sono file Leggimi/README all'interno dei tarball (l'archivio dei sorgenti dell'applicazione che di solito è possibile scaricare) o forse anche INSTALLARE i file per leggere e conoscere qual è il modo preferito di installare detta applicazione. In breve: RTFM;)

2
reiche

Un riepilogo per usare la collezione di porte in FreeBSD:

Trova porta

Le porte sono organizzate per categoria, quindi se non sai in quale categoria si trova la porta devi prima trovarla:

cd /usr/ports
make search name=myport

A volte ci sono troppe voci in quel modo. Personalmente preferisco:

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

Usa il * durante la ricerca poiché spesso sono disponibili più versioni di una porta. L'argomento approfondito assicura che i risultati di ritorno non siano inutilmente ingombra di partite che è improbabile che tu voglia.

Configurazione

Spesso, ti consigliamo di fare un po 'di configurazione; software come Apache e Postgres praticamente lo richiedono. Esistono tre scelte principali: riga di comando, ambiente e creazione dei file di configurazione. Per iniziare con la riga di comando:

make showconfig

questo elencherà le opzioni di configurazione predefinite. Se ti piacciono le impostazioni predefinite, sei pronto per compilare e installare. Altrimenti,

make config

verrà visualizzata una finestra di dialogo in cui è possibile selezionare le opzioni desiderate. (Non confonderti con questo e make configure che configura la tua porta con le opzioni scelte!) Questo è spesso sufficiente ma per alcuni software, come Apache, esiste spesso una configurazione complessa che una semplice finestra di dialogo non è in grado di gestire. Per questo, dovresti anche guardare i Makefile che a volte ti daranno alcuni obiettivi aggiuntivi per make che ti daranno maggiori informazioni. Per continuare l'esempio di Apache

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

ti darà informazioni su come impostare i moduli scelti, le opzioni di thread e simili. Se i valori predefiniti della tua porta sono per lo più corretti e vuoi solo cambiare alcune cose, puoi anche solo passare coppie chiave = valore come le variabili di ambiente:

make MYVBL1=MYVAL1 ... install clean

Inoltre, puoi impostare le opzioni di commutazione tramite -D opzione:

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

Per una configurazione complessa, tuttavia, la riga di comando non funzionerà bene e tu sei meglio nessuno dei primi due metodi sarà efficace. In questo caso è possibile creare un file di configurazione e passarlo a make con la variabile __MAKE_CONF. FreeBSD ha un file di configurazione predefinito: /etc/make.conf che di solito contiene informazioni su porte precedentemente installate e altre impostazioni di sistema. Per iniziare, crea un file con le opzioni delle tue porte, chiamalo ~/myport.mk e quindi combinare quel file con /etc/make.conf:

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

puoi quindi ricontrollare la tua configurazione:

make showconfig __MAKE_CONF=~/make.port.conf

e se tutto sembra a posto:

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

ATTENZIONE! Se è necessario regolare le impostazioni di configurazione dopo make configure o un'installazione in tutto o in parte tu prima devi assolutamente cancellare la tua configurazione:

make rmconfig

In caso contrario, si verificheranno interazioni impreviste tra il sottosistema delle porte, le impostazioni predefinite make della porta e la configurazione desiderata.

È un po 'troppo per un riepilogo, ma la complessità della configurazione riguarda principalmente l'app, non la porta. Bash, ad esempio, non ha davvero alcuna opzione.

Installazione

Questa è la parte facile:

make install clean

o puoi

make build
make install
make clean

che è solo più digitando.

È praticamente tutto. Ovviamente c'è molto altro che puoi fare come elencare ricorsivamente dipendenze e opzioni di configurazione, aggiornare con patch e così via. Qui ti farò riferimento alla sezione Ports del Handbook , alla pagina man del sottosistema port (buone informazioni su target di make aggiuntivi) e alla pagina man make .

1
gvkv

Di recente ho iniziato a utilizzare "Checkinstall" durante l'installazione da fonti esterne al mio gestore pacchetti. Crea un "pacchetto" da un tarball di terze parti che può quindi essere installato e gestito (e disinstallato) tramite gli strumenti del gestore pacchetti.

Dai un'occhiata a questo articolo - http://www.linuxjournal.com/content/using-checkinstall-build-packages-source

0
aryeh