PDA

View Full Version : Help installazione programma


nicolabb
21-07-2008, 14:33
ciao a tutti. sono nuovo del forum( e newby di linux) e cercando nelle varie discussioni non ho trovato la risposta al mio problema.

Ho da installare un programma, che ho scaricato in formato .tar
Ho provato ad installarlo tramite i classici:
./configure
make
make install(che non funziona, neanche da root)

Ho notato che contiene un file chiamato install-sh.sh : ho provato ad installarlo come ho letto in qualche discussione(l'ho reso eseguibile prima) ma, al comando

sh install-sh

mi dice che non ho specificato un input file.

Poi, ho provato a specificarne qualcuno per vedere che succedeva e

mi dice che vuole un file di destinazione.
Quali file devo dare come input e destinazione?

Grazie a chiunque mi sappia aiutare( e anche a chi solo ci provi )

ciao a tutti

nicolabb
21-07-2008, 14:34
Se puo servire: io uso Fedora 9 e il programma che voglio installare
è un programmimo matematico per la risoluzione di problemi di ottimizzazione combinatoria, in particolare risolve il problema STSP (traveling salesman problem simmetrico).

il programma si chiama Concorde ed è scaricabile presso

http://www.tsp.gatech.edu/concorde/d.../downloads.htm

ps:io ho seguito le istruzioni riportate nel readme fino al make...da li non so proseguire!

sasa83
21-07-2008, 15:34
l'ho scaricato e provato, e mi sembra funzioni....il makefile comq non ha una regola x l'install, quindi praticamente ti devi fermare al make, come anke c'è scritto nel readme. alla fine dice ke creera 4 eseguibili:
TSP/concorde the TSP solver
LINKERN/linkern the Lin-Kernighan TSP heuristic
EDGEGEN/edgegen generates edge sets
FMATCH/fmatch solves fractional 2-matching problems

provando a lanciare concorde dalla cartella TSP ad esempio mi vien fuori questo output:
sasa@darkstar:~/Desktop/concorde/TSP$ ./concorde
./concorde
Usage: ./concorde [-see below-] [dat_file]
-B do not branch
-C # maximum chunk size in localcuts (default 16)
-d use dfs branching instead of bfs
-D f edgegen file for initial edge set
-e f initial edge file
-E f full edge file (must contain initial edge set)
-f write optimal tour as edge file (default is tour file)
-F f read extra cuts from file
-g h be a grunt for boss h
-h be a boss for the branching
-i just solve the blossom polytope
-I just solve the subtour polytope
-J # number of tentative branches
-k # number of nodes for random problem
-K h use cut server h
-M f master file
-m use multiple passes of cutting loop
-n s problem location (just a name or host:name, not a file name)
-o f output file name (for optimal tour)
-P f cutpool file
-q do not cut the root lp
-r # use #x# grid for random points, no dups if #<0
-R f restart file
-s # random seed
-S f problem file
-t f tour file (in node node node format)
-u v initial upperbound
-U do not permit branching on subtour inequalities
-v verbose (turn on lots of messages)
-V just run fast cuts
-w just subtours and trivial blossoms
-x delete files on completion (sav pul mas)
-X f write the last root fractional solution to f
-y use simple cutting and branching in DFS
-z # dump the #-lowest reduced cost edges to file xxx.rcn
-N # norm (must specify if dat file is not a TSPLIB file)
0=MAX, 1=L1, 2=L2, 3=3D, 4=USER, 5=ATT, 6=GEO, 7=MATRIX,
8=DSJRAND, 9=CRYSTAL, 10=SPARSE, 11-15=RH-norm 1-5, 16=TOROIDAL
17=GEOM, 18=JOHNSON


però non so assolutamente come si usi, ma a quanto pare funziona.

nicolabb
21-07-2008, 15:56
grande sasa....mi sa che sto cominciando a capire...

senti una cosa: ho visto che nelle cartelle generate ci sono dei makefile...devo compilarli vero?


grazie mille sasa'....volevo scrivere nel post se qualcuno poteva scaricare e installare il programma ma mi era sembrato troppo invadente :)

nicolabb
21-07-2008, 16:11
e un'ultima cosa(sto diventando scocciante lo so :( )

DIR should be the full path name (not the relative path name) for a directory containing both qsopt.a and qsopt.h.

io questi file li ho messi nella cartella TSP....come devo scrivere il percorso?

lo so che faccio delle domande stupide :(

sasa83
21-07-2008, 18:00
senti una cosa: ho visto che nelle cartelle generate ci sono dei makefile...devo compilarli vero?


no, dovrebbe essere già tutto ok...ti basta lanciare il make dalla dir principale.


DIR should be the full path name (not the relative path name) for a directory containing both qsopt.a and qsopt.h.

io questi file li ho messi nella cartella TSP....come devo scrivere il percorso?


quì sinceramente non so di cosa stia parlando, forse mi sono perso un pezzo...:confused:

nicolabb
22-07-2008, 11:44
sasa', scusa se rispondo solo ora, ma non ho avuto internet disponibile fino a poco fa.

quel rigo in inglese che ho postato era un pezzo del Readme che mi avevi fatto notare tu ieri...Il fatto è che devo passare al programma quello due librerie, delle queli mi chiede il percorso assoluto a quanto ho capito.

questo persorso glielo devo dare al ./configure, come altro parametro vero?

Grazie ancora!

sasa83
22-07-2008, 12:26
sasa', scusa se rispondo solo ora, ma non ho avuto internet disponibile fino a poco fa.

quel rigo in inglese che ho postato era un pezzo del Readme che mi avevi fatto notare tu ieri...Il fatto è che devo passare al programma quello due librerie, delle queli mi chiede il percorso assoluto a quanto ho capito.

questo persorso glielo devo dare al ./configure, come altro parametro vero?

Grazie ancora!

dici questo?
--with-qsopt=DIR Indicates to use the QSopt LP solver. DIR should
be the full path name (not the relative path name)
for a directory containing both qsopt.a and qsopt.h.
QSopt is available for no charge at
http://www.isye.gatech.edu/~wcook/qsopt/

vuol dire ke devi indicargli il percorso completo dove hai messo quei file, ke ne so una cosa tipo (è solo un esempio):
$./configure --with-qsopt=/home/nicolabb/Desktop/concorde

nicolabb
22-07-2008, 12:48
sisi ho fatto cosi pero...
quando lancio una istanza( magari se volessi provare ti mando il file in qualche modo)... in pratica mi dice che gli serve il link a un solver(qsopt appunto) e ferma l'esecuzione.

allora ho fatto in 2 modi:

ho provato a ridargli il ./configure --with... come mi hai detto tu direttamente nella cartella concorde (solo che non funziona, mi da lo stesso errore)

allora ho provato a cancellare tutto ( a questo proposito volevo chiederti se devo disinstallare qualcosa o fare l'unmake...io ho solo cancellato la cartella)
e rifare da capo come hai scritto tu .... e a questo punto non mi da piu neanche la lista dei comandi ottenibile da TSP$ lanciando ./concorde...

posso dargli il percorso anche dopo aver eseguito il ./configure secondo te?

comunque adesso riprovo.....quello che mi preme soprattutto è sapere se, volendo ripartire da capo con la compilazione, basta cancellare o devo dare qualche comando del tipo unmake o uninstall.


Grazie

sasa83
22-07-2008, 14:11
posso dargli il percorso anche dopo aver eseguito il ./configure secondo te?


questo non lo so, se lanci cmq il programma ti fa vedere i possibili comandi.


comunque adesso riprovo.....quello che mi preme soprattutto è sapere se, volendo ripartire da capo con la compilazione, basta cancellare o devo dare qualche comando del tipo unmake o uninstall.
Grazie

no, niente di questo...non ha installato niente ma ha creato solo l'eseguibile, ke poi tu sposti dove vuoi (con tutte le cartelle annesse). per cancellare gli eseguibili creati ti basta dare:
make clean

nicolabb
28-07-2008, 14:36
sasà...volevo ringraziarti per l'aiuto che mi hai dato!
Posso dire che ho "quasi" risolto grazie al tuo fondamentale aiuto.

Il quasi è dovuto al fatto che adesso dovrei installare il concorde con il solver cplex
e, nel readme che mi avevi fatto notare, mi dice che per farlo devo modificare il Makefile(perche' le librerie che mi chiede sono in directory diverse) ed io non so come fare.

ecco quello che dice il readme:
"--with-cplex=DIR Indicates to use the CPLEX LP solver. DIR should be the full path name (not the relative path name) for a directory containing both libcplex.a and and cplex.h. (If these are in different directories then you will need to edit the Makefiles in several of the concorde directories to include the correct search path with -I.) By default this option supports CPLEX 8.0. For earlier versions use with-cplex6, with-cplex5, or with-cplex4. Depending on the version of cplex, you may need to include the -lpthreads option on the linking step in TSP/Makefile (add this to the end of the line defining LIBFLAGS)."

Non ho capito in che modo modificare i vari Makefile...come uso questa opzione -I che dice nel readme? a quanto ho capito serve per dargli il percorso dove trovare le librerie che vuole....
Sapresti aiutarmi?

Grazie mille per la tua fondamentale collaborazione.

sasa83
28-07-2008, 14:51
Il quasi è dovuto al fatto che adesso dovrei installare il concorde con il solver cplex
e, nel readme che mi avevi fatto notare, mi dice che per farlo devo modificare il Makefile(perche' le librerie che mi chiede sono in directory diverse) ed io non so come fare.
.

allora, queste 2 librerie mi sembra di capire ke vadano scaricate a parte, xkè io non le ho nell'archivio che ho scaricato....giusto? quindi quello che mi chiedo è: non puoi semplicemente metterle nella stessa directory? c'è una ragione particolare xkè debbano stare in directory diverse? altr vediamo un po' com'è fatto questo makefile, ma a prima vista mi sembra abbastanza semplice...o forse no :confused:

edit: ma questo cplex ha qualcosa a ke fare col plex del matlab?

nicolabb
28-07-2008, 14:58
il discorso è che per avere quelle librerie bisogna installare un programma che si chiama CPLEX(della ILOG) che non si puo scaricare( a me lo ha fornito l'universita e lo uso tramite un file di accesso al server di facolta...).

Ho provato a mettere questi files nella stessa directory(come avevo fatto ,su tuo consiglio, per QSOPT) ma il make mi da errore (***make[1] error).
Quindi credo che debba per forza modificare il makefile.
Che ne pensi?

Grazie

nicolabb
28-07-2008, 15:01
PS:
non so se il cplex abbia a che fare col plex del matlab....comunque posso dirti che serve per problemi matematici(in particolare di ottimizzazione combinatoria).

Probabilmente il plex sara una qualche versione gratuita del cplex della ilog...

ciao

sasa83
28-07-2008, 15:15
PS:
non so se il cplex abbia a che fare col plex del matlab....comunque posso dirti che serve per problemi matematici(in particolare di ottimizzazione combinatoria).

Probabilmente il plex sara una qualche versione gratuita del cplex della ilog...

ciao

no allora non c'entra niente, il plex serve, x farla semplice, x trasformare un circuito elettrico in uno schema a blocchi x il simulink...

il discorso è che per avere quelle librerie bisogna installare un programma che si chiama CPLEX(della ILOG) che non si puo scaricare( a me lo ha fornito l'universita e lo uso tramite un file di accesso al server di facolta...).

Ho provato a mettere questi files nella stessa directory(come avevo fatto ,su tuo consiglio, per QSOPT) ma il make mi da errore (***make[1] error).
Quindi credo che debba per forza modificare il makefile.
Che ne pensi?

Grazie

dunque, x questo, dovresti fare un po' di prove, visto ke io non ho il solver sotto mano....xkè nel readme dice esplicitamente che se vuoi usare il solver lo devi dire al configure, ma se i file sono in directory diverse lo devi dire al makefile...quello che mi chiedo è se le cose sono mutuamente esclusive. perchè se così non fosse nella parte dove vengono settati i flags del compilatore secondo me basta aggiungere il percorso dove si trova questo maledetto cplex.h. la parte incriminata è questa:
CFLAGS = -O3 -g -Wall -Wshadow -W -Wtraditional -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wnested-externs -Wundef -Wcast-qual -Wcast-align -Wwrite-strings -I$(BLDROOT)/INCLUDE -I$(CCINCDIR)
secondo me basta che aggiungi i percorsi dove sono i file, se ad esempio sono in /usr/tsp/pippo e /usr/tsp/paolo scrivi così:
-I/usr/tsp/pippo -I/usr/tsp/paolo
probabilmente dovrai dare cmq il --with-cplex al configure...questo non lo posso sapere con certezza.

nicolabb
28-07-2008, 16:11
intanto ti ringrazio per i tuoi consigli.

Ma dici di aggiungere solo la seconda stringa chemi hai scritto?
magari aggiungo 2 stringhe : una per ogni percorso(dato che sono in cartelle diverse)?

eppoi dove le devo aggiungere? in che sezione del makefile?

Grazie

sasa83
28-07-2008, 16:18
eppoi dove le devo aggiungere? in che sezione del makefile?


secondo me vanno aggiunte quì, è l'unico posto sensato:


CFLAGS = -O3 -g -Wall -Wshadow -W -Wtraditional -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wnested-externs -Wundef -Wcast-qual -Wcast-align -Wwrite-strings -I$(BLDROOT)/INCLUDE -I$(CCINCDIR)


quindi questa parte del makefile dovrebbe diventare così:
CFLAGS = -O3 -g -Wall -Wshadow -W -Wtraditional -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wnested-externs -Wundef -Wcast-qual -Wcast-align -Wwrite-strings -I$(BLDROOT)/INCLUDE -I$(CCINCDIR) -I/usr/tsp/pippo -I/usr/tsp/paolo
con le dovute modifiche ai percorsi ovviamente.

nicolabb
28-07-2008, 16:26
OK

grazie sasa...provo subito e ti faccio sapere se funziona.

nicolabb
28-07-2008, 17:06
niente da fare sasa...
ti dico come ho fatto (forse ho sbagliato qualche passsaggio):

io la riga che mi hai scritto tu l'ho ritrovata solo dopo aver lanciato il make dalla cartella concorde.
Questo perche quando estraggo i file(sto rifacendo da capo il procedimento) non esiste un file Makefile ma solo Makefile.in (e quindi la stringa scritta da te all'inizio non esiste perche non esiste il file).
Dopodiche ho rilanciato il make con il makefile modificato ma mi ha dato lo stesso errore:

gcc: yes/libcplex.a: No such file or directory
make[1]: *** [concorde] Error 1

a quanto ho capito non riesce a trovarmi la libreria(ho controllato se ho scritto bene il percorso ed è giusto)

E' possibile che debba modificare il Makefile.in anziche il makefile?
e se si come?

Grazie mille

sasa83
28-07-2008, 17:33
niente da fare sasa...
ti dico come ho fatto (forse ho sbagliato qualche passsaggio):

io la riga che mi hai scritto tu l'ho ritrovata solo dopo aver lanciato il make dalla cartella concorde.
Questo perche quando estraggo i file(sto rifacendo da capo il procedimento) non esiste un file Makefile ma solo Makefile.in (e quindi la stringa scritta da te all'inizio non esiste perche non esiste il file).
Dopodiche ho rilanciato il make con il makefile modificato ma mi ha dato lo stesso errore:

gcc: yes/libcplex.a: No such file or directory
make[1]: *** [concorde] Error 1

a quanto ho capito non riesce a trovarmi la libreria(ho controllato se ho scritto bene il percorso ed è giusto)

E' possibile che debba modificare il Makefile.in anziche il makefile?
e se si come?

Grazie mille

:confused: :confused:
nel readme dice di modificare il makefile, non il makefile .ini, quindi (secondo me :mc: ) devi prima lanciare il configure, in modo ke ti crei il makefile, e dopo modificare quello...ma il mio dubbio, come ti avevo già detto, stà nel fatto ke probabilmente devi passare cmq qualche paramentro al configure, ma in questo il readme è un po' lacunoso...:muro:
adesso faccio qualke ricerca, se trovo qualcosa ti faccio sapere.

nicolabb
28-07-2008, 17:44
ho provato a fare come ti avevo detto.
In pratica:

ho modificato il makefile.ini e mi hacreato il makefile nello stesso modo in cui tu mi dicevi di modificarlo.....ma niente..mi rida l'errore che ti ho postato prima

gcc : yes/libcplex.a No such file or directory
..

che sara mai 'sto yes?

sasa83
28-07-2008, 17:52
ho provato a fare come ti avevo detto.
In pratica:

ho modificato il makefile.ini e mi hacreato il makefile nello stesso modo in cui tu mi dicevi di modificarlo.....ma niente..mi rida l'errore che ti ho postato prima

gcc : yes/libcplex.a No such file or directory
..

che sara mai 'sto yes?

ho fatto un po' di ricerche e in un forum ho trovato questo:
CPLEX has C# APIs, but UBUNTU is not a supported platform. CPLEX supports C and C++ interfaces in RedHat and SuSe and .NET APIs in Windows.
cmq....mi fai un po' vedere com'è fatto il tuo makefile?
edit: x il fatto ke usi fedora quindi non ci dovrebbero essere problemi, visto ke è una specie di red hat.
edit2: ke versione di cplex stai usando? nel readme dice ke se usi una versione diversa dalla 8 devi andare a modificare anke un altro makefile.
edit3: altra cosa, rileggendo meglio il readme mi sono accorto di una cosa:
If these are in different directories then you will need to edit the Makefiles in several of the concorde directories to include the correct search path with -I.
quindi bisogna andare a modificare vari makefile, all'interno delle sotto-directory, non solo quello della directory principale.
edit4: dando l'opzione al configure, ne ho messo una a cavolo:
--with-cplex=/usr/local
ho notato che vari makefile vengono modificati, e viene aggiunta una linea:
LPSOLVER_LIB = /usr/local/libcplex.a
i makefile se non ricordo male sono quelli di:
bigguy,combs,localcut,tiny,tools,tsp,verify.
ora sinceramente la cosa è un po' ambigua visto ke il readme dice di aggiungere i percorsi (come flag penso) con -I davanti.

nicolabb
28-07-2008, 18:12
certo. quale makefile vuoi vedere...quello principale?
vuoi che lo posti? o mi dai un indirizzo email dove mandarlo?

1)si ho mandato una mail alla georgia tech e funziona con fedora(tra l'altro con l'altro solutore funziona anche a me)

2) uso la versione 10.0 del cplex
3)(io avevo modificato 3 makefile...quello principale-quello nella cartella TSP ove c'è l'eseguibile che devo lanciare- e quello nellacartella LP dove ci sono vari files per la programmazione lineare)

sasa83
28-07-2008, 18:20
3)(io avevo modificato 3 makefile...quello principale-quello nella cartella TSP ove c'è l'eseguibile che devo lanciare- e quello nellacartella LP dove ci sono vari files per la programmazione lineare)

bisogna vedere quali makefile vanno modificati, se almeno lo dicesse nel readme....
edit: ho notato ke nel makefile della cartella lp, e solo in quello, aggiunge il percorso nei flag come avevamo visto all'inizio, cioè con -I.
quindi andando a tentativi potresti, dare al configure il parametro --with-cplex="percordo dove si trova libcplex.a", e successivamente nel makefile di lp aggiungere ai flag -I"percorso dove si trova l'altro file".

nicolabb
28-07-2008, 18:25
sai cosa faccio adesso?

mando una mail alla georgia tech(che ha fatto il concorde) e gli chiedo come vanno modificati i makefile e quali di preciso.
Vediamo cosa rispondono .... magari c'è qualcosa di particolare da settare...

Poi ti faccio sapere ok?

vuoi ancora vedere il makefile o vediamo prima cosa mi rispondono?


Ciao e GRAZIE MILLE per l'aiuto!!!

sasa83
28-07-2008, 18:31
sai cosa faccio adesso?

mando una mail alla georgia tech(che ha fatto il concorde) e gli chiedo come vanno modificati i makefile e quali di preciso.
Vediamo cosa rispondono .... magari c'è qualcosa di particolare da settare...

Poi ti faccio sapere ok?

vuoi ancora vedere il makefile o vediamo prima cosa mi rispondono?


Ciao e GRAZIE MILLE per l'aiuto!!!

no no, niente makefile....cmq hai provato a fare come ti ho detto nel post precedente? ormai quì bisogna andare a tentativi...

nicolabb
28-07-2008, 18:47
si ho provato

ho modificato il makefile(della cartella lp) prodotto dopo il make aggiungendo -I/percorso del cplex.h maniente da fare...

nicolabb
28-07-2008, 18:59
guarda cosa mi ha risposto il tipo della georgia tech:

Thanks for the email. I do not have a version of Cplex 10.0 to test, but it
should work using the configure command:

configure --with-cplex=XXX

where XXX is the directory for the cplex library. If you want to change the
makefile yourself (rather than with the configure script), you will need to
change LP/Makefile to compile lpcplex8.c rather than lpqsopt.c

Che ne pensi?

sasa83
28-07-2008, 19:03
guarda cosa mi ha risposto il tipo della georgia tech:

Thanks for the email. I do not have a version of Cplex 10.0 to test, but it
should work using the configure command:

configure --with-cplex=XXX

where XXX is the directory for the cplex library. If you want to change the
makefile yourself (rather than with the configure script), you will need to
change LP/Makefile to compile lpcplex8.c rather than lpqsopt.c

Che ne pensi?

ma sbaglio o così non funzionava?

sasa83
28-07-2008, 19:04
si ho provato

ho modificato il makefile(della cartella lp) prodotto dopo il make aggiungendo -I/percorso del cplex.h maniente da fare...

prodotto dopo il make? forse volevi dire dopo il configure!!!!:confused:

nicolabb
28-07-2008, 19:16
Ehi Sasa'....funziona!!!

ci siamo scambiati un paio di mail col tipo americano e alla fine come ultimo consiglio(lui non sapeva aiutarmi perche non usa la versione 10 del cplex) mi ha detto di provare:

configure --with-cplex=XXX --enable-pthreads


E sembra che funzioni!!!

In ogni caso il tuo aiuto mi è stato veramente fondamentale.

Se dovessi capitare dalle parti di bologna ti offriro una cena :))

Se vieni a bologna avvisami con una mai a hurricane001@gmail.com ok?

Ancora grazie e buona serata!!

sasa83
28-07-2008, 19:20
Se dovessi capitare dalle parti di bologna ti offriro una cena :))


wow!!!! andiamo alla trattoria di don vito nel quartiere san vitale....