PDA

View Full Version : domandona sui programmi, le librerie e le dipendenze


Amon-Ra
09-03-2011, 17:39
in windows ci sono programmi portable e programmi non portable
(per portable intendo che il programma ha tutto l'occorrente nella stessa cartella)
quando installo un programma di solito accade questo:
il setup scompatta il programma nella cartella che hai scelto, magari aggiunge qualche riga di registro che di solito si puo' ignorare, poi spara qualche dll magari nella cartella di windows.
alcuni programmi tipo firefox mettono i dati nella cartella "dati applicazioni".
Ora, per fortuna, tutte le applicazioni cercano automaticamente le dll nella stessa cartella di dove si trova l'eseguibile, quindi taglio la cartella del programma, la piazzo in una partizione apposita, aggiungo le dll che magari gli servono (me lo dice il programma stesso quale dll manca) e anche se il programma non e' portable, posso formattare e ritrovare il mio bel programmino pronto senza doverlo reinstallare.

Ho centinaia di programmi, quindi fase 2:
ordino il menu dello start in varie categorie, tipo il menu delle varie distro, sposto la cartella del menu in un'altra partizione.
In questo modo cosa succede? formatto, reinstallo win, cambio il path delle cartelle nel registro, riavvio e mi trovo un sistema pulito e con centinaia di programmi pronti a partire
se c'e' qualche programma particolarmente menoso da configurare e che non salva le impostazioni in un file dentro il programma ma dentro il registro, mi salvo le modifiche che fa al registro e me lo salvo, poi rimetto le info nel registro con un click e lo trovo configurato.

ecco, vorrei fare la stessa cosa con ubunto

quando installo ubu, una delle prime cose che faccio e' togliere firefox. scaricarmi il mio bel tar.gz della versione 2 e usare quello
nella guida che ho letto che spiegava come farlo partire da tar diceva che serviva una libreria antica, mi pare libstdc o qualcosa del genere, che andava scaricata da un repository antico e installato, dopodiche' il programma sarebbe partito senza fare niente di piu' perche' ha tutto il necessario gia' nel programma
spiegava che invece di installare questa libreria, si poteva scompattare il deb, pigliare i due file .so, metterli dentro la cartella di firefox e aggiungere un parametro al lanciatore.

ora c'era il problema del flash, apro una pagina di streaming a caso, mi arriva il messaggino di ff che mi chiede se voglio installare il plugin mancante, gli dico si, ma dice che nn ha idea di che plugin mi serva, dico, vabbe' vado sul sito flash e mi scarico il deb di flash
lo installo, ma non succede una mazza
su win esiste firefox portable, un modo per avere i plugin di flash sempre pronti e' mettere una dll nella cartella plugin.
memore di questo scompatto il deb, piglio l'unico file che c'e' e lo metto dentro la cartella plugin.
Un momento di nerd-suspance ... e ... funziona :D

Ora io vorrei fare la stessa cosa che faccio con win con ubu, come faccio?
mi pare di intuire che le "librerie" di linux siano dei semplici file .so (un po' come le dll di win)
ho provato a inserire quella stringa di firefox ad altri programmi tipo amsn per vedere se funzionasse ma non ha funzionato.

morellik
10-03-2011, 10:43
Mah, di solito tutti i programmi fanno uso delle librerie standard che si trovano in una distro. Se ne usano di proprie le installano di conseguenza. Firefox è un po' una bestia a se che puo' venire facilmente utilizzato dalla directory in cui è stato scompattato.
Puoi controllare le librerie usate da un eseguibile con ldd. Se vuoi piazzare delle librerie usate da un programma al di fuori del percorso di ricerca standard puoi utilizzare la variabile LD_LIBRARY_PATH e specificare il nuovo percorso.

Pardo
10-03-2011, 11:43
Mai sentita una soluzione simile, il principio sarebbe lo stesso ma credo sia piu` complicato perche` su Linux si trovano incompatibilita` anche sulle lib fondamentali (come appunto stdc) mentre su Win la base sia del s.o. che delle app e` enormemente piu` stabile(oltre che releasano ogni 5 anni e non ogni 3 mesi).
Per questo non so se sia possibile far andare qualsiasi prog in questo modo.

E` fatica sprecata secondo me perche` su una distro come ubuntu o fedora normalmente per installare un programma ci vogliono 3 secondi, non e` come su Win che devi cliccare accetto-accetto-avanti-avanti 10 volte x ogni setup a parte rarissimi casi (a parte ke anke alcuni setup su win si possono automatizzare da command line).
Se hai cosi` tanta roba da installare fai uno script (simile a un file BAT) che li installa tutti in sequenza, puoi scriptare l'installazione da rete via apt-get o il download con wget + compilazione da sorgente ecc. e alla fine ci mettera` lo stesso tempo che ci impiegheresti a fare i tuoi spostamenti a mano secondo me. Ed e` sicuramente molto piu` semplice da preparare che non dar la caccia alle dll.

Ma cmq in una distro Linux non so quanta roba puoi avere da aggiungere, c'e` gia` un programma per ogni possibile cosa quindi al max qualche preferenza particolare, non e` certo come su Win che ci devi mettere tutto (tra cui una buona parte di programmi per la sicurezza e tweaking che su Linux non esistono..)

morellik
10-03-2011, 13:04
Aggiungerei che su Windows c'è anche un discorso di dimensioni. Un programma portable ha dimensioni anche decine di volte inferiore allo stesso non portable.
P.e. Photoshop portable è c.a. 70MB contro il quasi giga del PSP 'normale' e le funzionalità ci sono tutte.

penguin86
10-03-2011, 17:43
Ma come mai non usi il sistema di pacchetti integrato?

Amon-Ra
11-03-2011, 13:34
Ma come mai non usi il sistema di pacchetti integrato?

lo uso infatti, e' per avere la mia bella partizione sempre pronta con dei programmi che funzionano fin da subito

penguin86
11-03-2011, 14:28
Ah... io non uso programmi portable (eccetto il viewer di SL e l'SDK di Android), ma mi sono fatto uno scriptino a cui ogni volta che installo qualcosa aggiungo il nome dei pacchetti installati. Quando devo formattare o cambio computer basta installare Linux ed eseguire lo script, lui mi reinstalla tutto quello che avevo :)
Potrebbe essere una soluzione...

Amon-Ra
11-03-2011, 21:53
Ah... io non uso programmi portable (eccetto il viewer di SL e l'SDK di Android), ma mi sono fatto uno scriptino a cui ogni volta che installo qualcosa aggiungo il nome dei pacchetti installati. Quando devo formattare o cambio computer basta installare Linux ed eseguire lo script, lui mi reinstalla tutto quello che avevo :)
Potrebbe essere una soluzione...

in che formato sono i programmi che hai menzionato? come firefox?
si la soluzione che hai detto te la ho gia' semi adottata, ovvero ho un file di testo con tutti i programmini che scarico subito e che vengono aggiornati spesso, programmi di sistema importanti
posso vedere il tuo file?
intanto ho trovato questo http://portablelinuxapps.org/ non hanno bisogno di nessun pacchetto aggiuntivo (tempo fa avevo visto delle soluzioni portable che pero' abbisognavano di avere un programma per gestirli installato)
li metti e vanno, pero' lasciano le impostazioni nella home

penguin86
12-03-2011, 00:48
in che formato sono i programmi che hai menzionato? come firefox?
Sì, sono o file tar.gz da scompattare che contengono un eseguibile o file eseguibili che ti creano la cartella con tutti i file dentro.

si la soluzione che hai detto te la ho gia' semi adottata, ovvero ho un file di testo con tutti i programmini che scarico subito e che vengono aggiornati spesso, programmi di sistema importanti
posso vedere il tuo file?
intanto ho trovato questo http://portablelinuxapps.org/ non hanno bisogno di nessun pacchetto aggiuntivo (tempo fa avevo visto delle soluzioni portable che pero' abbisognavano di avere un programma per gestirli installato)
li metti e vanno, pero' lasciano le impostazioni nella home

Il mio apt-get dopo averlo pulito da un sacco di schifezze e giochini che non uso più:
sudo apt-get install emacs amarok vlc thunderbird audacity avidemux k3b wine google-gadgets-gtk filezilla mediatomb soundconverter gimp inkscape scribus gthumb amule pidgin wireshark backintime gsmartcontrol calibre

I file di configurazione nella home sono una buona cosa imho... quando faccio un backup della home e lo ripristino da un'altra parte al primo avvio di ogni programma ho già tutte le impostazioni al loro posto :) Bellissimo :D
Cmq li potresti spostare creando un link simbolico...
ln -s nomelink nomefile