Newsgroup: it.comp.macintosh
Titolo: help installazione pacchetti open source

Salve a tutti, Mi scuso se questo è un "old topic" magari già
affrontato profondamente in precedenza...
Devo installare -per motivi di studio- un programma open source, getfem
++ (è una libreria in c++ per l'implementazione del metodo agli
elementi finiti...ha anche un'interfaccia matlab) ma non riesco a
farlo, e le informazioni al riguardo sono per me incomprensibili!
(La mia macchina è un Mac OS X 10.4)
Per caso qualcuno si è imbattuto in questo problema? O più in generale
qualcuno mi potrebbe dare qualche suggerimento utile per risolvere i
problemi legati ad errori in ./configure + make + install?
Grazie!
marco

 problemi legati ad errori in ./configure + make + install?
Data la complessità e la flessibilità di autoconf/automake, parlare di
errori senza avere l'output con l'errore stesso è decisamente follia.
 - ∞

è decisamente follia anche perchè non so assolutamente usare il
terminale, quindi di fatto annaspo a caso, non sapendo nemmeno bene
dove andrebbero installate le librerie per il corretto
fuunzionamento.
Comunque qui di seguito c'è l'output dopo il make:
marco-trevisans-computer:~/desktop/building/getfem++-3.0.3
marcotrevisan$ make
make  all-recursive
Making all in m4
make[2]: Nothing to be done for `all'.
Making all in cubature
make[2]: Nothing to be done for `all'.
...
(...un sacco di output...)
...
make[5]: Nothing to be done for `all'.
Making all in @gfMdState
make[5]: Nothing to be done for `all'.
Making all in @gfLevelSet
make[5]: Nothing to be done for `all'.
Making all in @gfMeshLevelSet
make[5]: Nothing to be done for `all'.
Making all in private
make[5]: Nothing to be done for `all'.
/Applications/matlab/bin/utils -output gf_matlab -g CDEBUGFLAGS="-O3"
LD="g++" \
-I. -I./.. -DMATLAB_RELEASE= \
./gfm_mex.c ./gfm_common.c ./../gfi_array.c \
../.libs/libgetfemint.a ../../../src/.libs/libgetfem.a  -lblas -lg2c
|| (rm gf_matlab; false)
/bin/sh: line 1: /Applications/matlab/bin/utils: No such file or
directory
rm: gf_matlab: No such file or directory
make[5]: *** [gf_matlab] Error 1
make[4]: *** [all-recursive] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Temo che sia comunque poco utile- la mia speranza è quella che
qualcuno abbia a che fare con quel particolare pacchetto.
Forse un tutorial su ciò che c'è dietro un'installazione di librerie
(i.e. dove vanno a finire i file o dove dovrebbero andare a finire)
sarebbe utile, ma non so dove trovarlo, inoltre non è propriamente il
mio campo.
Ti ringrazio comunque!
marco

 -I. -I./.. -DMATLAB_RELEASE= \
Sembra che manchi qualcosa qui. Dove e come è fatta la tua installazione
matlab?
-- 
-riko

Grazie per la velocità della risposta!
Matlab è installato nelle applicazioni. In matlab/bin/util c'è
solamente una cartella "mex" (tra l'altro fondamentale per il
pacchetto) e altri due file .sh ma non c'è traccia del file gf_matlab
che viene cercato...



ri...@despammed.com
 (Enrico Franchi) wrote in news:1imrrm0.hh3hu5lkh28pN%
ri...@despammed.com
:

infatti piu' sotto dice che non trova: /Applications/matlab/bin/utils
Se non sbaglio Matlab si installa nella dir MATLAB7 e non in matlab.
Ciao Jack
-- 
Eroi non si nasce, ti incastrano
- Jim Belushi

Grazie- c'era effettivamente un problema nella specifica del path per
mex, che è matlab/bin e non matlab/bin/util come credevo. ()
tra l'altro era "util" e non "utils"!)
Il make comunque si ferma sempre al solito posto:
/Applications/matlab/bin/mex -output gf_matlab -g CDEBUGFLAGS="-O3"
LD="g++" \
-I. -I./.. -DMATLAB_RELEASE=14 \
./gfm_mex.c ./gfm_common.c ./../gfi_array.c \
../.libs/libgetfemint.a ../../../src/.libs/libgetfem.a  -lblas -lg2c
|| (rm gf_matlab.mexmaci; false)
/usr/libexec/gcc/i686-apple-darwin8/4.0.1/ld: can't locate file for: -
lg2c
collect2: ld returned 1 exit status
    mex: link of 'gf_matlab.mexmaci' failed.
rm: gf_matlab.mexmaci: No such file or directory
make[5]: *** [gf_matlab.mexmaci] Error 1
make[4]: *** [all-recursive] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
...in giro per siti ho trovato qualcuno con lo stesso problema, ma non
capisco le indicazioni che gli vengono date. Vi posto tutto:
Koenraad Janssens wrote:
    [...]
    compilation still crashes at the same location:
    /Applications/MATLAB73/bin/mex -output gf_matlab -g CDEBUGFLAGS="-
g -O2"
    LD="g++" \
    -I. -I./.. -DMATLAB_RELEASE=14 \
    ./gfm_mex.c ./gfm_common.c ./../gfi_array.c \
    ../.libs/libgetfemint.a /usr/local/lib/libgetfem.a -lqhull -lblas
|| (rm
    gf_matlab.mexmac; false)
    gcc-3.3: installation problem, cannot exec `cc1': No such file or
directory
        mex: compile of './gfm_mex.c' failed.
Julien Pommier wrote:
ok at this point, you have to try by hand some variations of the
command line :)
for example:
/Applications/MATLAB73/bin/mex -v -output gf_matlab -g CDEBUGFLAGS="-g
-O2"
CC="gcc-4.0" LD="g++" -I. -I./.. -DMATLAB_RELEASE=14 ./gfm_mex.c ./
gfm_common.c
./../gfi_array.c ../.libs/libgetfemint.a /usr/local/lib/libgetfem.a -
lqhull -lblas
you can use the "-v" flag with mex to see how it invokes the
compilers. Apparently your gcc-3.3 is not working so I think the above
command should work
--
Julien
Grazie ancora!
marco

     mex: link of 'gf_matlab.mexmaci' failed.
si ferma sempre li, ma con un altro errore, non trova una libreria, la 
libg2c, che e' una libreria runtime per il fortran.
A questo punto sorge una domanda: hai installato i Developer Tools?
Se si (come credo, perche' altrimenti non avrebbe neanche trovato il 
make) allora puoi recuperarla tramite fink (
http://fink.sourceforge.net
) 
installando il pacchetto g77.
Se no, installali (
developer.apple.com
, la registrazione e' gratuita).


Ciao Jack,
ho i Dev Tools installati, ma fink non trova il pacchetto g77, solo la
versione g95. Va bene lo stesso secondo te?
E Se usassi MacPorts invece di fink?

 E Se usassi MacPorts invece di fink?
non uso macports, non so se il pacchetto esiste.


 qno mi consiglia una guida niubba per la compilazione sotto osx?
./configure
make
sudo make install
-- 
-riko


Cercando di capire quali fanno per te.
-- 
-riko

 Cercando di capire quali fanno per te.
e' un po' uno sbattimento pero'...
Ciao Jack
-- 
Yoda of Borg am I! Assimilated shall you be! Futile resistance is, hmm?

 convertire l'app in dmg)
DiskUtility, tipicamente. Non è che "converti" alcunchè: metti l'app in
un dmg. E non ha nulla a che vededere con la compilazione o con il
terminale.
-- 
-riko

 Cercando di capire quali fanno per te.
Eh, si, tu dici bene, ma tu sai esattamente cosa fai ogni volta che apri
il terminale, tu conosci, e giustamente applichi quello che conosci per
avere la cosa migliore.
Marco credo di no, e io nemmeno, anzi, ho un po' di infarinatura sul
terminale, ma se mi si chiede di fare qualche cosa in più mi blocco
tragicamente. Il problema nasce dal fatto che per studio capita di aver
bisogno di usare certe librerie, pacchetti, applicazioni, e la
frustrazione più grande deriva dal fatto di non potersi dedicare allo
studio perché si passa intere giornate a cercare di far funzionare le
cose, districandosi tra comandi da terminale e istruzioni di Unix. Cose
che sono un bene come cultura personale, ma che interrompono e fermano
quello che stavo studiando a monte. Per quello non sono del tutto contro
fink, macports, e simili.
Poi fink non mi piace perché risulta comunque criptico, e purtroppo non
sono ancora riuscito a trovare in rete dei wiki per far funzionare
queste cose.
Credo che come sia un mio problema/difficoltà sia la stessa cosa anche
per marco che ha aperto il topic.
Dico male?
-- 
Guru       Non coltivate i beni terreni,
               non rimarrà niente.
         Coltivate l'amore delle persone,
            vale più di qualsiasi oro. 

 per marco che ha aperto il topic.
Si comincia piano piano. Si cerca di ragionare, capire quello che si fa
e si progredisce. Il primo passo è il classico ./configure && make &&
sudo make install[0]
------
[0] di fatto sudo make install è poi una cattiva pratica. Sarebbe meglio
usare altri sistemi che non richiedono permessi di root etc etc etc.
Tuttavia, come dire... mi sembrano un po' fuori dallo scopo della
discussione, visto che siamo ancora alle basi.
-- 
-riko

 debuild, checkinstall, dpkg...
Mah. apt è una tristezza unica. BSD è la via.
-- 
-riko

 sudo make install[0]
E da qualche parte c'è documentazione su come usare questi strumenti
immagino... Ora vado da Zio Google e chiedo, spero lo faccia anche
l'OP...


 l'OP...
Beh, configure è semplicemente uno script che "configura" il software
per il tuo sistema. Ha un dozzilione di opzioni che dipendono dal
programma da configurare. Spesso va bene lasciare tutti i default, a
volte no. C'è poco da "imparare": meglio leggere i vari README e INSTALL
volta per volta.
Scrivere i makefile è utile. Per usare make basta dare il make! :P
Poi se ci sono errori... bisogna interpretarli. Usare il cervello e
google di comune accordo. Per quanto ci lavori, c'è sempre la
probabilità che un dato pacchetto sul tuo sistema dia un errore che non
hai mai visto prima. 
make install, dai, quello ci arriviamo! :P
-- 
-riko

Vi ringrazio tutti per l'ardore della conversazione!
premetto che non ho ancora scaricato la presunta panacea g95 ma
cercherò di farlo al più presto.
Solo una breve risposta a Enrico:
"...Eppure nessuno (sano di mente) pensa che un fisico o un ingegnere
non
deve sapere la matematica perchè è un fisico o un ingegnere. La usa,
gli
serve, ed è giusto che la sappia. A questo punto evade la mia
comprensione il perchè l'informatica (quella "facile" e pratica poi)
non
dovrebbe subire lo stesso trattamento..."
Il concetto di "facile" è estremamente relativo, come il concetto di
"sapere la matematica"- ci sono esempi di argomenti di matematica
ritenuti fondamentali che un ingegnere può decidere di non studiare
perchè, giustamente, non gli interessano e soprattutto non gli sono
utili per continuare la sua ricerca. Tipo tutte le basi di analisi
funzionale su cui si basa il metodo agli elementi finiti, ad esempio.
detto questo, vado a cercare il caro pacchetto.
grazie ancora!
- marco

...volevo dire la panacea g77 ovviamente...

Rieccomi.
Ho trovato questo: 
http://hpc.sourceforge.net/
che mi ha sollevato un po' dato che dopo il configure in output è
sfrecciato
(...)
checking for g77... g77
checking whether we are using the GNU Fortran 77 compiler... yes
(...)
e quindi bene. L'ultimo output del make è questo:
/Applications/matlab/bin/mex -output gf_matlab -g CDEBUGFLAGS="-O3"
LD="g++" \
-I. -I./.. -DMATLAB_RELEASE=14 \
./gfm_mex.c ./gfm_common.c ./../gfi_array.c \
../.libs/libgetfemint.a ../../../src/.libs/libgetfem.a  -lblas -lg2c
|| (rm gf_matlab.mexmaci; false)
Making all in python
make[4]: *** No rule to make target `-lblas', needed by `_getfem.so'.
Stop.
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Almeno pare abbia compilato l'interfaccia python ("making all in
python"...o no?) come gli avevo chiesto, ma ci sono ancora problemi.
Vi ripasso la palla, se volete continuare a giocare!
grazie ancora! Che mondo sarebbe senza gente che sa usare il computer?

 make[4]: *** No rule to make target `-lblas', needed by `_getfem.so'.
Questa puzza. Di solito con -lqualcosa significa linka alla libreria
libqualcosa. Incidentalmente blas č una libreria, per cui un -lblas lo
prenderei proprio come un'opzione per il linker.
Sfortunatamente lui lo interpreta come un target del Makefile. E sui due
piedi non ho idea del perchč. Buttando l'errore in google (eventualmente
a pezzi) cosa dice?
-- 
-riko

 funzionale su cui si basa il metodo agli elementi finiti, ad esempio.
Che dire... vero. Qualcosa bisogna pur sacrificare. Fortunatamente
Analisi I e II *almeno* gliela fanno tutt'ora fare. D'altra parte sono
ingegneri e non matematici: ad un certo punto è giusto che comincino ad
usare per fare gli ingegneri. I fondamenti però se li prendano!
-- 
-riko

 a pezzi) cosa dice?
Immagino che sia in una variabile di comando, tipo CC="gcc -lblas", e
che la variabile sia per qualche motivo finita sul lato destro di una
regola. Brutto casino.
C'è un motivo per cui detesto gli autotools...
 - ∞

Ciao a tutti!
Dopo aver installato il compilatore g77 ho provato a mandare un make
check e con mio sommo stupore misto ad uno strano timore mistico ha
eseguito tutto fino alla fine! tutti i test passati correttamente,
nessun problema neanche dopo il make install.
Sinceramente non so spiegare cosa sia successo, nè come mai il make e
il make check abbiano dato risultati così diversi...possibile? Non mi
pare di aver tralasciato di aggiornarvi sui passaggi...accidenti!
comunque vi ringrazio sentitamente, il vostro aiuto è stato prezioso!
marco
ps- il regno dell'installazione dei pacchetti rimane sempre e comunque
avvolto da una certa nebbia oscura...che non è altro che la mia
ignoranza!

 ignoranza!
Non è la tua ignoranza, è autotools.
Tranquillo: ho oramai diversi anni di esperienza nel lavorare con
programmazione nativa su più piattaforme, e ogni volta che vedo che devo
dare un ./configure mi viene un nodo in gola ché lo so che succederà
qualche casino. :(
 - ∞

 qualche casino. :(
Io posso dire che invece per parte mia le volte in cui qualcosa va
storto sono una parte minoritaria.
Questo non toglie che gli autotools siano uno strumento baroccamente
complesso e che di per se alternative più moderne danno molti meno
problemi. Peccato che non siano lontanamente altrettanto diffusi.
-- 
-riko

 problemi. Peccato che non siano lontanamente altrettanto diffusi.
Già.
Mi stavo baloccando con qmake e ant e scons e rake, peccato che salta
sempre fuori qualcosa che
non-si-integra-esattamente-con-lo-strumento-X-come-vorrei... (sto usando
il sistema di build di Xcode per tutto -- dalle app al mio bel sito web
-- per ora, ma non ho idea di che farò quando avrò a che fare, come sta
per accadere, anche con software Windows e Linux... brr).
 - ∞

 per accadere, anche con software Windows e Linux... brr).
1. ant: verboso e barocco. oltretutto non risolve la classe di problemi
che gli autotools fanno in modo semi-automatico
2. qmake sbaglio o è molto qt targeted?
3. scons: direi il mio favorito. A quanto sento quello più avanti nella
gara
4. rake: fatto benino. ma di fatto manca di tante cose che autotools e
scons hanno. oltretutto ruby è IMHO una dipendenza più pesante di python
ormai
5. Non hai menzionato cmake. È fatto molto bene, usato in almeno un
progetto veramente grosso, crea Applicazioni OS X... Ma IMHO è meno
immediato di scons.
-- 
-riko

 immediato di scons.
Avevo anche visto CMake ma non m'è venuto in mente al momento di
scrivere il post.
Il problema grosso è che gran parte delle cose che faccio su OS X sono
"bizzarre" dal punto di vista di molti di questi strumenti. Cose come
firmare le applicazioni (che deve essere per forza l'ultimissimo step e
non produce file nuovi, costringendomi a fare contorsionismi con
l'equivalente locale dei phony target e delle dipendenze) o unire un DMG
template ai file costruiti, possibilmente senza dover ogni volta
specificare a manina di quali file fare il merge perché ci sono template
vuoti nel DMG dove va ciascun elemento.
Sono due cacchiate queste che ogni volta che cerco di reimplementarle in
qualche motore di build mi sporco le mani di grasso in maniera orrenda,
e sono solo esempi.
Generalmente: non c'è, a quanto mi è parso di vedere, un solo coso che
dica "sì, voglio fare il build di un'applicazione come la intendi tu,
PERÒ fatta così e colà e cosìcolà". E ora sono bloccato con Xcode (che
non è male e più o meno mi permette di fare pure questo), perché a) ho
chili di script che funzionano bene, seppur il fatto che debbano
esistere mi rivolta e b) nessun altro ambiente di sviluppo sa come si fa
a fare una firma di un'applicazione iPhone nel modo che intende lui.
 - ∞