Newsgroup: it.comp.os.linux.iniziare
Titolo: symlink deprecati

$ touch a
 
Per specifiche esigenze devo rinominare, nessun problema...
 
$ mv -i a b
 
In realtà un problema c'è: tutti i software che continueranno a usare il 
vecchio nome avranno di problemi...
Ma ecco la soluzione
 
$ ln -s b a
 
Però insomma...
Sarebbe bello che ogni volta che ogni volta che si accede ad 'a' 
comparisse da qualche parte una notifica (un errore), ad esempio:
 
Symlink deprecato: a (usare il nuovo nome: b): in futuro tale symlink 
verrà rimosso definitivamente.
 
Possibile che non esiste ancora un file system che introduca i symlink 
deprecati, creabili con un comando del tipo
 
$ ln -s --deprecated ...


Non e` un problema del filesystem questo.
 
Il FS non puo` e non deve sapere se un
programma, tra due file accessibili,
debba preferenzialmente usarne uno
invece dell'altro.
 
E` un problema del programma.
Soprattutto di come sia scritto tale
programma che, in ogni caso, non dovrebbe
avere nomi di file hardcoded...
 
I vari livelli di astrazione devono evitare
di fare cose che non sono di loro competenza.
 
bye,
 
-- 
 
piergiorgio

 Per specifiche esigenze devo rinominare, nessun problema...
 
Gia` qui c'e` qualcosa che non va...
 
Il fatto che tu debba rinominare dei
file e questo causi un problema di
compatibilita` con dei programmi,
dimostra che qualcosa e` andato storto
nella pianificazione delle interfacce.
Che in questo caso sono i file, o meglio,
i nomi dei file.
 
I link simbolici sono una soluzione,
direi corretta.
 
Sarebbe pero` da capire per quale motivo
sia successo questo (incompatibilita`
delle interfacce) e cercare di evitare
il problema la prossima volta.
 
bye,
 
-- 
 
piergiorgio

 $ ln -s --deprecated ...
 
e che senso ha?
il link simbolico nel tuo caso è per mantenere retrocompatibilità. raggiunge il suo scopo. qual è il problema?
 
 
 

Il 10/12/20 12:16, rootkit ha scritto:

Forse non mi sono spiegato.
Il symlink fa il suo lavoro, ma silenziosamente, senza segnalare che 
stai percorrendo una vecchia strada che da un giorno all'altro verrà chiusa.
Oggi è andata bene, domani anche, ma poi un bel giorno...
 
Hanno costruito una nuova strada?
Però non si mai visto un cartello, un'insegna, niente di niente.

 Oggi è andata bene, domani anche, ma poi un bel giorno... 
 
no no ti sei spiegato, è che non ha proprio senso.
 
 
 
 

 Oggi è andata bene, domani anche, ma poi un bel giorno...
 
Fai il refactoring del codice che
richiede il vecchio nome.
 
Non puoi risolvere i problemi che credi
con pezze da altre parti.
 
Fai le cose come si deve e vedrai che
questi problemi non si pongono neanche.
 
bye,
 
-- 
 
piergiorgio

 
 
Nessuno è perfetto.
I vari software (come tutte le cose) quanti 
update/correzioni/sviluppi/riprogettazioni subiscono nel corso del tempo?

 update/correzioni/sviluppi/riprogettazioni subiscono nel corso del tempo?
 
Certo, ma se uno e` un pelo furbo,
sapendo questo, organizza il tutto
in modo da minimizzare i problemi.
Non in modo da eliminare gli imprevisti,
che, per definizione, non e` possibile.
Bensi` in modo da avere sempre un paracadute.
 
Per esempio, sei il programma in questione
trova il nome del file in qualche modo,
magari tale nome non e` piu` rilevante.
 
Ripeto: il link va benissimo, documenta
la cosa e vivi felice.
 
bye,
 
-- 
 
piergiorgio

 Oggi è andata bene, domani anche, ma poi un bel giorno...
 
Io non sono un programmatore e sviluppo solo di tanto in tanto qualche
progettino ad uso personale; per ovviare a problemi come quello che hai
descritto adotto questa banale strategia che però nel mio caso si è
sempre rivelata soddisfacente: colloco tutti i file che necessitano al
progetto in un'unica directory, o in eventuali sub-directory; se però
qualcuno dei file che comporranno il progetto è già esistente perché
salvato precedentemente in altra directory, per evitare di occupare
inutilmente spazio su disco non lo copio duplicandolo nella directory
del progetto ma ne faccio solo un hard link, cosicché anche se in futuro
dovessi rinominare il vecchio file originale, o se lo spostassi altrove
sul disco, o perfino lo cancellassi, non andrei incontro a nessun
disguido per quanto riguarda tale file nel progetto.
 
 
cp -l a hardlink_of_a
 

 magari tale nome non e` piu` rilevante.
 
Quindi ci mettiamo a dare (ai file) nomi a casaccio?
Forse non ho capito il concetto.

 Forse non ho capito il concetto.
 
Non hai capito il concetto... :-)
 
Tu puoi dare un nome che ha senso _oggi_,
ma magari non _domani_.
 
bye,
 
-- 
 
piergiorgio