Ένα από τα πρώτα πράγματα που ήθελα να κάνω στο mac ήταν να μπορώ να δω τα shared drives των Windows (samba). Το Mac Os X λόγω της φύσης του δίνει τη δυνατότητα να κάνεις κάτι με πολλούς τρόπους. Έτσι βρήκα αυτό το post που δείχνει 10 διαφορετικούς τρόπους για να κάνω αυτό που ήθελα. Εγώ θα επικεντρωθώ σε 2 τρόπους και προεκτάσεις που σκέφτηκα. Η διαδικασία δεν είναι τόσο πολύπλοκη όσο ίσως σας φανεί με την πρώτη ματιά.
Ο πρώτος τρόπος εκμεταλλεύεται το autofs το οποίο ενσωματώθηκε στο Mac os X 10.5 και πάνω. Το mounting γίνεται αυτόματα στην “καρδιά” του filesystem. Το πλεονέκτημα αυτού του τρόπου είναι ότι αν μία εφαρμογή χρειαστεί πρόσβαση στον απομακρυσμένο φάκελο αυτός γίνεται αυτόματα mount. Έτσι αν έχετε εκεί τη βιβλιοθήκη του itunes τα κομμάτια θα είναι συνεχώς διαθέσιμα. Ωστόσο ο finder δεν εμφανίζει τους φακέλους όπου έγινε το mount όπως θα έπρεπε, αλλά τα δείχνει σαν shortcuts που οδηγούν στο mounded drive. Δηλαδή αλλιώς τα εμφανίζει το Gui του Mac Os και αλλιώς είναι στην πραγματικότητα όπως επιβεβαιώνει και το terminal. Το μεγάλο πρόβλημα αυτής τη προσέγγισης είναι ότι αν χαθεί η σύνδεση με τον server τότε το “automount” τρώει κόλλημα και παίρνει μαζί του όποιο άλλο application ζητάει πρόσβαση στους απαμακρυσμένους φακέλους. Το κόλλημα είναι τόσο μεγάλο που ο mac δεν μπορεί καν να κλείσει. Αυτό μου φαίνεται απαράδεκτο για ένα λειτουργικό που ισχυρίζεται ότι είναι το πιο εξελιγμένο του πλανήτη..
Ο δεύτερος τρόπος είναι με bash script και είναι πιο high level. Δουλεύει καλύτερα με τον finder και όταν διακοπεί η σύνδεση βγαίνει (συνήθως) μήνυμα ώστε να γίνει eject το drive. Ωστόσο πρέπει εσείς να προνοείτε για το mount πριν μια εφαρμογή ζητήσει πρόσβαση στον απομακρυσμένο φάκελο, διαφορετικά αυτό που θα δει είναι ένας απλός τοπικός φάκελος. Τις εντολές του terminal τις έσωσα σε ένα bash script (με κατάληξη command) το οποίο μπορεί να εκτελεστεί με διπλό click. Έκανα 2 scripts: mount.command, unmount.command . Το αρνητικό είναι ότι ανοίγει και το terminal.app όταν τα τρέχω με διπλό κλικ. Οπότε αποφάσισα να αυτοματοποιήσω λίγο ακόμα τη διαδικασία.
Έτσι έβαλα τα scripts σε ένα φάκελο που να μπορεί να δει το Quicksilver. Οπότε ανοίγω το QS, αρχίζω να γράφω “mount” πατάω enter και εκτελείται το script εσωτερικά χωρίς να ανοίξει το terminal!! Και εμφανίζονται εκεί που πρέπει τα drives μου! Ένας άλλος τρόπος αυτοματοποίησης με χρήση applescript είναι η αντιστοίχηση του “mount.command” με το άνοιγμα του φακέλου από τον finder. Έτσι όταν πάει να μπει κανείς μέσω Finder στο φάκελο, τα drives γίνονται αυτόματα mount. Μπορεί κανείς να δημιουργήσει και services ώστε με δεξί κλικ να εμφανίζονται οι επιλογές mount, unmount. Το τελευταίο γίνεται εύκολα με τον automator και χρήση των mount, unmount scripts.
Συμπερασματικά το Mac Os δίνει πολλούς τρόπους για το mounting samba (και όχι μόνο) drives, ωστόσο η βασική υλοποίηση στον πυρήνα δεν είναι αυτή που θα έπρεπε. Από αυτά που διαβάζω πριν το Snow Leopard τα πράγματα ήταν χειρότερα, αλλά χρειάζεται περαιτέρω βελτίωση γιατί καλώς ή κακώς στα windows αυτά τα προβλήματα δεν υφίστανται. Παρακάτω ακολουθούν οδηγίες για τις υλοποιήσεις.