SDB:Compilare software

(Reindirizzamento da SDB:Compiling software)


Icon-checked.png Questa procedura è stata testata con openSUSE 12.1 e successive
A volte il software non è disponibile come pacchetti binari RPM (già compilati), ma solamente come codice sorgente. Possono esserci molte motivazioni per questo, ma spesso si tratta di mancanza di tempo e conoscenza sulla pacchettizzazione. Nonostante suoni molto impressionante sentire: "Ho compilato <nome_programma> da sorgente", in molti casi è semplice compilare e installare il software. Le opzioni predefinite funzionano e c'è una procedura standard che tende a ripetersi in ogni README. Questa procedura standard è spiegata qui.

Attenzione

Possono esserci dei problemi al momento della compilazione di un software. Il nuovo software compilato potrebbe sostituirne uno vecchio perfettamente funzionante o peggio ancore compilare un virus o un trojan.

Perciò è preferibile innanzitutto cercare se l'applicazione che desideri è già disponibile come pacchetto binario RPM (precompilati, l'RPM più comune) in uno dei repository dei pacchetti. Puoi anche cercare RPM funzionanti qui, qui o qui o con un motore di ricerca. Un'altra opzione è cercare programmi alternativi che abbiano le stesse funzionalità. Un'ultima opzione è che per le applicazioni semplici, non è sempre obbligatorio avere "RPM SUSE", c'è una grande possibilità che qualsiasi RPM funzioni (RPM per una qualsiasi ordinaria distribuzione).

È piuttosto improbabile trovare del codice così maligno, e certamente sarà proveniente da zone poco raccomandabili di Internet. Ciò nonostante, è meglio non essere troppo confidenti. Una simile situazione è molto rara con Linux, ma in futuro ci potrebbe essere maggior rischio di problemi. Fatta questa precauzione, ricordati di non essere neppure paranoico. Ci sono validi software disponibili sono per compilazione, quindi, se tutto ciò che abbiamo detto prima non dovesse funzionare, puoi compilare il tuo software. Compilare non è altro che trasformare il codice sorgente in un programma che puoi eseguire.

Icon-warning.png
Attenzione! Non essere paranoico, ma non compilare qualsiasi cosa proveniente da qualsiasi posto!

Prerequisiti

Prima di tutto sono necessari gli strumenti di sviluppo (development tools). Apri YaST, accedi a Gestione pacchetti e, dal menu a discesa Visualizza filtra i pacchetti in base ai Modelli. Seleziona almeno "Sviluppo di base" e "Sviluppo in C/C++". Potresti anche aver bisogno dei pacchetti in "Sviluppo di KDE" (o, in alternativa anche solo di "Sviluppo in Qt 4", a seconda del programma compilato), "Sviluppo di GNOME", "Sviluppo in Tcl/Tk" e in alcune situazioni del modello "Sviluppo del kernel Linux" (anche "Sviluppo in Python" potrebbe essere a volte utile). L'unico lato negativo di installare tutti questi pacchetti è l'utilizzo di spazio sul disco.

Alla fine, esegui l'Aggiornamento in linea di YaST per assicurarti che tutto sia aggiornato.

Se vuoi creare un RPM locale per poter installare e rimuovere con semplicità, allora installa anche "checkinstall" (L'utilizzo di checkinstall è solamente per le macchine locali e non deve essere utilizzato per programmi da distribuire). Questo processo è trattato nella sezione Installazione alternativa.

Molte applicazioni necessitano degli "header" (file di intestazione) installati per essere compilate. Gli header sono la parte del sorgente di un programma che indicano cosa c'è nel programma e dove si trova al suo interno (nel linguaggio del computer). Questi header sono spesso inclusi nei pacchetti "devel". Così se un messaggio dice "Non hai nome_programma" e sai di averlo già installato, probabilmente non hai installato la sua parte di sviluppo (devel). La maggior parte degli RPM "devel" hanno un nome che termina con -devel. È addirittura presente un'opzione in YaST per installare tutti i pacchetti di sviluppo, ma questo potrebbe utilizzare molto spazio sul disco. È utile solamente per compilare.

Compilare

Sei pronto per iniziare, visto che la sezione sopra necessita di essere eseguita una sola volta. Scarica il codice sorgente. Spesso il pacchetto termina con .tgz, .tar.gz, .tar.bz2 o .tar.xz.

Successivamente devi estrarre il pacchetto. Se il sorgente ha una delle estensioni menzionate sopra, puoi estrarlo con il comando tar xf nomefile.tar.bz2. Se utilizzi KDE, clicca sull'archivio in Dolphin e si aprirà mostrandoti una cartella con il nome del programma. Copia/Incolla questa cartella dove preferisci, oppure clicca con il tasto destro e seleziona la voce Estrai. Questo è il tuo codice sorgente :-). Un valido strumento per estrarre i pacchetti è eXtract Everything!.

Entra nella cartella che hai appena creato e leggi il file README e/o INSTALL presenti. Se il programma ha un processo di compilazione inconsueto, allora dovrebbe essere spiegato qui. Ciò è molto improbabile e questi file descriveranno quasi certamente la seguente procedura:

Verifica

Sarà necessario verificare che tutto il materiale necessario alla compilazione è disponibile. Lo strumento opportuno per eseguire questo è "configure". Dunque devi eseguire ./configure. Non dimenticare il punto+barra iniziali. Dovrai risolvere ogni problema presentato da eventuali messaggi di errore prima di poter proseguire. Se il programma non possiede lo strumento configure, il motivo di ciò sarà probabilmente spiegato nel file README.

Compilazione

Successivamente esegui il comando make. Questo compilerà il programma che, una volta terminata la sua compilazione, potresti già essere in grado di eseguire. Se il sistema dispone di più di un core logico (CPU con più core, più CPU, etc.), puoi aggiungere il suffisso -jX dove X è il numero di core che desideri utilizzare nella compilazione (questo velocizzerà il processo). Una volta trovata la posizione dell'eseguibile, puoi già tentare di eseguirlo con ./nome_programma o src/nome_programma o ovunque si trovi all'interno della directory. La compilazione può essere velocissima o lentissima. a seconda della dimensione dell'applicazione.

Installazione

Normalmente questa è l'unica parte dove è necessario avere i permessi di root. Questa è anche la parte in cui le precauzioni sopra riportate entrano in gioco. Procedi eseguendo il comando su -c 'make install' (su permette di ottenere i permessi di root, solo per questa operazione). Sarà richiesta la password di root e molto probabilmente installerà il software in /usr/local/bin/.

Installazione alternativa

Un'altra strada è creare un pacchetto RPM che puoi installare e disinstallare. Invece di su -c 'make install', utilizza su -c checkinstall. Questo creerà un RPM situato in /usr/src/packages/RPMS che può essere installato come qualsiasi altro pacchetto RPM. Ricorda che checkinstall è uno strumento per creare programmi da installare soltanto nel tuo computer.


Risoluzione dei problemi

La maggior parte dei pacchetti sarà normalmente funzionante. A volte, spesso con i programmi più vecchi e con quelli più complessi, le cose non andranno a buon fine. Dato che dovresti già aver cercato eventuali pacchetti RPM alternativi e già precompilati, dovrai cercare di capire cosa c'è che non va. Leggi i messaggi di errore. Se dice che non riesce a trovare qualcosa, molto probabilmente non lo hai installato. Copia e incolla questi messaggi di errore se stai chiedendo aiuto ad altri.

È una buona idea leggere il sito web del programmatore. Qui, molto spesso, quando le applicazioni necessitano di librerie particolari, la compilazione è descritta in modo dettagliato (meglio che nei file README o INSTALL).


Riassunto

In breve ciò che devi fare è:

tar xf software-1.1.1.tar.bz2
cd software-1.1.1
./configure
make

Se qualcosa va storto: leggi i messaggi di errore

su -c 'make install'

oppure

su -c checkinstall

Spostati nella cartella con Dolphin o Konqueror, seleziona il nuovo file RPM, e clicca su Apri con > Installa/rimuovi software.



Vedi anche

Alcuni siti in cui cercare programmi: