Μια πρόταση για κοινούς home καταλόγους μεταξύ διαφορετικών εγκαταστάσεων

Από Κοινότητα Ελεύθερου Λογισμικού ΕΜΠ
Μετάβαση σε: πλοήγηση, αναζήτηση

Χωρίς να εξετάσουμε το γιατί, έτσω ότι στον ίδιο υπολογιστή έχουμε εγκατεστημένα 2 διαφορετικές διανομές του linux ή ακόμα και δύο διαφορετικές εκδόσεις της ίδιας διανομής. Σε τέτοιες περιπτώσεις θα ήταν πολύ βολικό να μπορούσαμε να διατηρούμε τις αλλαγές στο home μας από την μία εγκατάσταση στην άλλη. Πολλές διαφορετικές λύσεις είναι εφαρμόσιμες, εδώ όμως θα περιγράψω τι έκανα εγώ και δούλεψε για πάρα πολύ καιρό.

Ποίο είναι το πρόβλημα

Η προφανής λύση να χρησιμοποιήσουμε τον ίδιο κατάλογο για home και στην μία και στην άλλη διανομή είναι βέβαιο ότι θα οδηγήσει σε προβλήματα. Συνήθως δύο διανομές θα έχουν διαφορετικές εκδόσεις των προγραμμάτων και είναι πολύ συχνό το φαινόμενο παλιότερες εκδόσεις να μην μπορούν να διαβάσουν σωστά τις ρυθμίσεις των νεότερων.

Η πρότασή μου

Αυτό που έκανα εγώ ήταν, αντί να έχω κοινό home να έχω κοινούς πολλούς καταλόγους κάτω από αυτό. Σε αυτό το εγχείρημά μου έκανα μαζική χρήση software links.

Αρχικά έκοψα κι μια τρίτη διαμέρηση στον δίσκο μου, με αρκετό χώρο για να μπορεί να κουβαλάει τα δεδομένα μου. Μιας και δεν θα έβαζα πολλά πράγματα στους μη κοινούς καταλόγούς στα home μου, πήρα όσο χώρο μπορούσα από τις διαμερήσεις των δύο εγκαταστάσεων και τον έδωσα για την καινούρια διαμέρηση που έφτιαξα. Και στις δύο εγκαταστάσεις φρόντισα η καινούρια διαμέρηση να προσαρτήται στην ίδια διαδρομή, το /local.

# mount <big_storage_device> /local

Το δεύτερο βήμα ήταν να πάω στο home της μίας εγκατάστασης και να φτιάξω ένα link από αυτό τον κατάλογο, /local, καπου στο home μου. Με αυτό τον τρόπο αν ποτέ ήθελα να αλλάξω σημείο προσάρτησης απλά θα έπρεπε να αλλάξω ένα link.

$ ln -s /local ~/local

Στη συνέχεια ήθελα να μεταφέρω του καταλόγους που σκόπευα να μοιράζομαι ανάμεσα στις δύο εγκαταστάσεις

$ mv ~/Desktop ~/local/Desktop
$ ln -s local/Desktop ~/Desktop
$ mv ~/Documents ~/local/Documents
$ ln -s local/Documents ~/Documents
$ mv ~/Pictures ~/local/Pictures
$ ln -s local/Pictures ~/Pictures
$ mv ~/Music ~/local/Music
$ ln -s local/Music ~/Music
$ mv ~/Videos ~/local/Videos
$ ln -s local/Videos ~/Videos
$ mv ~/Incoming ~/local/Incoming
$ ln -s local/Incoming ~/Incoming

Πέρα από τα δεδομένα μου όμως ήθελα να μοιράζομαι και τις ρυθμίσεις κάποιων εφαρμογών. Ήξερα εκ των προτέρων ότι οι εφαρμογές αυτές υπήρχαν και στις δύο εγκαταστάσεις και ότι οι ρυθμίσεις τους ήταν συμβατές και με τις δύο εκδόσεις.

$ mv ~/.mozilla -> ~/local/dot.mozilla
$ ln -s local/dot.mozilla ~/.mozilla
$ mv ~/.thunderbird ~/local/dot.thunderbird
$ ln -s local/dot.thunderbird ~/.thunderbird
$ mv ~/.openoffice.org2 ~/local/dot.openoffice.org2
$ ln -s local/dot.openoffice.org2 ~/.openoffice.org2

Χρήσιμο ακόμα θα ήταν να είχα προσβάσιμα και από τις δύο εγκαταστάσεις μου τα ssh κλειδιά μου και τα gpg πιστοποιητικά μου

$ mv ~/.ssh ~/local/dot.ssh
$ ln -s local/dot.ssh ~/.ssh
$ mv ~/.gnupg ~/local/dot.gnupg
$ ln -s local/dot.gnupg ~/.gnupg

Και επειδή τρέχω GNOME και μου αρέσει να έχω σε όλες τις εγκαταστάσεις την ίδια εμφάνιση αποφάσισα να μοιραστώ και τα θέματα, τα εικονίδια και τις γραμματοσειρές μου. Ειδικά τα εικονίδια είναι αρκετός όγκος για να τα αφήσω να υπάρχουν και στις δύο εγκαταστάσεις (όχι ότι δεν ψιλοπειράζω και τα θέματα :)).

$ mv ~/.themes ~/local/dot.themes
$ ln -s local/dot.themes ~/.themes
$ mv ~/.icons ~/local/dot.icons
$ ln -s local/dot.icons ~/.icons
$ mv ~/.fonts ~/local/dot.fonts
$ ln -s local/dot.fonts ~/.fonts

Το ίδιο έκανα και για κάθε άλλη εφαρμογή που θα ήθελα να μοιράζομαι και μπορούσα να το κάνω λόγω συμβατών εκδόσεων. Αν σας έχει προβληματίσει γιατι βάζω το πρόθεμα dot. σε κάθε φάκελο που μετακινώ η απάντηση είναι απλή. Έτσι, γιατί δεν θέλω να υπάρχουν κρυφά αρχεία μέσα στον κοινό φάκελο.

$ mv ~/.aMule ~/local/dot.aMule
$ ln -s local/dot.aMule ~/.aMule

Και κάτι τελευταίο αλλά χρήσιμο. Στις διανομές που είναι βασισμένες στο Debian, ο φάκελος των ρυθμίσεων για τον Thunderbird ονομάζεται .mozilla-thunderbird αντί .thunderbird. Πρακτικό είναι να κάνουμε ένα link από τον ένα φάκελο στον άλλο (ανάλογα ποιον έχουμε).

 $ ln -s ~/.mozilla-thunderbird ~/.thunderbird

Και για να μην ξεχνιόμαστε, έκανουμε επανεκκίνηση στον υπολογιστή μου, μπήκα στην δεύτερη εγκατάσταση και έκανα κάτι ανάλογο.

# mount <big_storage_device> /local
$ ln -s /local ~/local

Μετακίνησα ότι ήθέλΑ από το ~/Desktop αυτής της εγκατάστασης στο κοινό local/Desktop

$ mv ~/Desktop/* ~/local/Desktop

Το έσβησα

$ rm -rf ~/Desktop

Και έφτιαξα το link.

$ ln -s local/Desktop ~/Desktop

Την ίδια διαδικασία ακολούθησα και για κάθε άλλο φάκελο που μετέφερα. Βέβαια μερικά πράγματα δεν γίνεται να μεταφερθούν, όπως για παράδειγμα οι ρυθμίσεις του firefox και του thunderbird.

Συμβουλές

  • Και στις δύο εγκαταστάσεις οι χρήστες πρέπει να έχουν το ίδιο username, uid και gid, και όλα τα κοινά αρχεία πρέπει να ανήκουν στον χρήστη με αυτό το username, uid και gid.
  • Όσο πιο γρήγορα μετά την εγκατάσταση της διανομής γίνει αυτή η διαδικασία τόσο πιο εύκολη είναι η συνένωση των όμοιων καταλόγων.
  • Προφανώς δεν υπάρχει κάτι που μας περιορίζει σε δύο μόνο εγκαταστάσεις :-)