|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Bergamo
Messaggi: 405
|
Path di installazione software
Ciao!
A causa di un comando root un po' troppo avventato (rm -rf etc/* ....solo che non ero in /usr/local, ma in / Con Slack xò voglio cambiare l'approccio all'installazione: voglio innanzitutto installare tutti i programmi in /usr/local, e poi per ogni programma creare una propria dir (/usr/local/<nomesoftware>). Con installpkg nulla di più facile: basta utilizzare "-root <pathinstallazione>" ed il gioco è fatto! Solo che xò mi è venuta in mente una domanda: come fa il software a trovare il path delle proprie librerie, dei propri file di config, ecc se non sono presenti nella $PATH in /etc/profile? Esempio: io ho installato amule in /usr/local/amule/ dentro ho le varie cartelle usr, opt, var con le relative sottodirectory e file. Come fa amule a sapere dei sui file contenuti in queste sottodir se come PATH in /etc/profile ho solo PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games"? Spero di essermi spiegato Thx a l8 Michele81 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Se lo script di installazione è ben fatto, è in grado di linkare il programma in modo da trovare le proprie librerie nel path in cui è stato installato (tecnicamente: -Wl,--rpath= in fase di linking).
Altrimenti devi usare le solite tecniche -- ld.so.conf, LD_LIBRARY_PATH, ...
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Uff non avevo letto bene la domanda (la risposta precedente è comunque in qualche modo legata) -- per tutti gli altri file, viene fatto con l'ausilio degli script di compilazione ("definiscono" una macro contenente il prefisso di installazione, che viene poi utilizzata all'interno del codice del programma)
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Bergamo
Messaggi: 405
|
Grazie ilsensine per la spiegazione!
La domanda sorge spontanea: se il path nn è presente nella $PATH di sistema e in ld.so,conf, dov'è che viene scritto (dai programmi come installpkg o il semplice make install) il percorso del software? Giusto per curiosità...nulla di più! Grazie ancora! Michele81 |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Innanzitutto $PATH non serve al programma, serve alla shell per trovare l'eseguibile senza obbligarti a digitare il percorso completo.
Al programma servono i suoi file di configurazione (che "sa" dove sono, in quanto "conosce" il --prefix che hai passato a configure). Al linker serve sapere dove sono le librerie necessarie per lanciare il programma (deve poterle trovare nei percorsi standard, nei percorsi indicati da ld.so.conf, nel percorso LD_LIBRARY_PATH, oppure nell'eseguibile stesso, se è stato linkato con -Wl,--rpath=<path>)
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:36.



















