PDA

View Full Version : compilare in modo pulito


david82
22-04-2007, 11:43
per compilare bisogna:
scompattare, ./configure, make, make install.... giusto?

una volta fatto, questa cartella dove si è scompattato, serve ancora o può essere cancellata?
se serve... si può spostare o no? e dove sarebbe meglio tenere le cartelle di tutti i programmi compilati?

Johnn
22-04-2007, 11:51
Da quello che so può servire in caso di ricompilazione o nel caso in cui si voglia lanciare la disinstallazione del programma con ./uninstall sempre se è presente.

Penso che la cartella la puoi spostare senza problemi.

Io tengo tutte le cartelle dei sorgenti in /usr/src .

david82
22-04-2007, 14:39
grazie!

jimmazzo
22-04-2007, 16:29
Ciao David, che distro usi?

Io ti consiglio di usare "checkinstall" al posto di "make install"; praticamente questo tool (che trovi in quasi tutte le distro; o meglio nei repository) ti permette di creare un pacchetto (tgz-> x slackware e simili; rpm-> red-hat e simili; deb-> per debian, ubuntu etc) che poi potrai tranquillamente rimuovere dal gestore dei pacchetti.

Io ho iniziato ad usarlo con la slack anni fa e funziona bene nel 99% dei casi, ora sono in ubuntu e lo uso felicemente anche quì...

Diciamo che l'unico difetto che puoi trovarci è questo: se lo usi in distro tipo debian o red-hat (rpm-deb) non tiene traccia delle dipendenze (neanche su slack ehh, ma in questa distro è così, le dipendenze sono un divertimento...); ma credo non sia troppo grave se i pacchetti li crei e li gestisci te perchè bene o male ti ricordi le dipendenze che devono essere soddisfatte (almeno io me le ricordo); poi in caso di molte dipendenze creo un file di testo e le segno; sposto il file e il pacchetto creato in una directory propria in modo da facilitarmi la vita se devo reinstallarlo dopo molto tempo o su qualche altra macchina.
Se non lo trovi nei repository della tua distro: http://asic-linux.com.mx/~izto/checkinstall/ .

Ciao.

Ps: Io i sorgenti decompressi in genere li rimuovo dopo un paio di giorni (il tempo di test del programma); se proprio per qualche motivo devo ricompilarlo riscarico il tarball e lo ricompilo ex-novo; poi vedi te, io lo faccio per risparmiare spazio, tengo solo i pacchetti creati con checkinstall.

david82
22-04-2007, 17:36
interessante....!

(kubuntu)

vediamo se ho capito....
decomprimo, ./configure, make e poi checkinstall.
a questo punto crea un .deb o ha già installato il programma?

per le dipendenze, se ne mancano non me ne accorgo già con ./configure?

cmq grazie!! ;)

-Slash
22-04-2007, 18:46
interessante....!

(kubuntu)

vediamo se ho capito....
decomprimo, ./configure, make e poi checkinstall.
a questo punto crea un .deb o ha già installato il programma?

per le dipendenze, se ne mancano non me ne accorgo già con ./configure?

cmq grazie!! ;)
sudo checkinstall

se mancano dipendenze ti da errore ./configure

comunnque nella maggior parte dei casi è inutile compilare perchè il gestore pacchetti di ubuntu ha tutto quello che serve

jimmazzo
22-04-2007, 19:45
interessante....!

(kubuntu)

vediamo se ho capito....
decomprimo, ./configure, make e poi checkinstall.
a questo punto crea un .deb o ha già installato il programma?

per le dipendenze, se ne mancano non me ne accorgo già con ./configure?

cmq grazie!! ;)


decomprimi, ./configure, make e poi sudo checkinstall . (il pacchetto checkinstall non è installato di default, cercalo e installalo con synaptics)

Poi, la configurazione predefinita (in k\ubuntu) di checkinstall ti installa automaticamente il pacchetto; io sinceramente preferisco installarmelo da solo con "dpkg -i nomepacchetto".

Apri il file /etc/checkinstallrc e dagli un'occhiata, oltre a disabilitare "l'auto installazione" del pacchetto puoi trovare\editare tutte le varie configurazioni possibili.

Ps: le dipendenze non le segna quando installi il pacchetto; la fase configure rimane invariata; per esempio se il programma xxx richiede la libreria yyy, e quest'ultima non è installata in fase "./configure", ti esce un errore finchè non la installi e non potrai dare il "make"; però una volta creati i pacchetti di xxx e yyy, se reinstalli la distro e installi xxx nessuno ti dice di installare yyy, è questa l'unica pecca; cmq te ne accorgerai da solo se dimentichi le dipendenze perchè o il programma non si avvia (e riporta l'errore: manca yyy) oppure si avvia e non funzionerà bene (e trà l'output in console ti segnalerà cmq che manca yyy). :)

Ciao.

david82
22-04-2007, 21:14
capito, grazie!

dvd100
23-04-2007, 00:39
se la cartella dei sorgenti ha al suo interno la cartella 'debian' e se su una distro debian-based puoi usare uno di questi due comandi per compilare:
dpkg-buildpackage oppure debian/rules binary
questi tengono conto delle dipendenze!