non ho mica capito la differenza... :/evaimitico ha scritto: optional soft: il sw A, se presente B, offre funzionalità in più
optional hard: il sw A, se compilato con un'apposita opzione e se presente B, offre funzionalità in più
beh... basta che il tool _PRIMA_ di installare (e in questo caso prima di scaricare il tgz) verifichi le richieste di tale file (e le altre in cascata). sul fatto che una versione di una lib possa creare conflitti, beh il problema è uguale in tutte le distro per questo in realtà dovrebbe essere il pacchettizzatore a definire le dipendenze in base ai dati forniti dal programmatore (e magari qualcuno dovrebbe controllare l'esattezza dei dati)Inoltre la cosa più problematica e difficile da tracciare nelle dipendenze è che per ogni programma variano nel tempo col crescere delle versioni. inoltre possono esserci conflitti o che siano richieste particolari versioni di un sw stesso.
In quest'ottica, il file aggiunto nel pacchetto ti esprime le reali ( e storiche dipendenze ) di un pacchetto. Mantenere però queste informazioni solo nel pacchetto è limitativo, perché non ti permetterebbe di calcolare a priori le conseguenze dell'installazione di un pacchetto: finché non lo scarico non posso sapere che cosa richiede per funzionare.
Per questo io metterei le info dettagliate nel pacchetto, ma anche distribuite su un network di server, dal quale scaricare la lista dei pacchetti e delle dipendenze. Qui ci sarebbe da discutere un bel po' su come memorizzare tali info e come dovrebbe procedere l'upgrade. l'optimum sarebbe un modo che permette di scaricare solamente le differenze che vi sono rispetto alle info che ho in cache ( tanti file diff? oppure un file generato al volo con tutti gli aggiornamenti rispetto ad un certa data? )
Ovviamente per mantenere le info delle dipendenze sia nei pacchetti che nei repository possiamo prevedere dei tool automatici
tool automatici che riescano a fare sta cosa senza il minimo intervento umano non ne conosco... mi sembrano anche un pò pericolosi...
mai usato debian ma che intendi per dipendenze obbligate? voglio dire: se vuoi far partire mplayer anche la slack rchiede un bel pò di tgz...ultimamente ho provato ad usare nuovamente debian: è stata la mia prima distribuzione (woody, a dir la verità), ma è durata un paio di giorni sul mio computer per l'allucinante mondo delle dipendenze OBBLIGATE. dopo tale esperienza ho provato slackware e il fatto che non fossi sempre obbligato ad installare un mare di sw mi ha reso contento. recentemente ho provato sarge, e devo dire che aptitude, unito a dpkg-reconfigure mi ha dato una impressione molto buona. In Debian hanno inoltre iniziato a realizzare i pacchetti a slice, in modo da ridurre il numero di dipendenze per il pacchetto principale. se slackware permettesse, quando si vuole espressamente di gestire le dipendenze, sarei l'uomo più felice della terra
Ad ogni modo l'attuale gestione debian può servire come spunto, in particolare per la varietà di tipi di dipendenza che individua.
dopo attenta riflessione direi... BOH!Un dubbio: possono esserci dipendenze circolari?
in teoria vorrebbe dire aver bisogno degli header di A per compilare B e viceversa... ma allora non si tratterebbe di due parti di codice contenute nello stesso programma?
solitamente si ricorre alle "dipendenze" di esecuzione perchè per comodità si utilizza nel proprio software elementi già creati da altri e non perchè in contemporanea si cerca di realizzare due binari tra loro collegati per funzionalità... io personalmente non ricordo se ne ho trovate... devo dare un occhio quando riaccendo il portatile...
M


