La struttura di macOs rende possibile / facilita una serie di procedure che per un utente abituato a Windows sembrano impensabili, e si tratta di alcuni dei motivi chiave che lo rendono a mio parere un sistema più adatto per macchine di lavoro.
La gestione delle applicazioni e la separazione tra sistema e utente
Molti programmi semplici in macOs sono distribuiti in semplicissimi file .app (in realtà cartelle) indipendenti che possono esser installati/disinstallati semplicemente trascinando nella/dalla cartella Applicazioni; questi si definiscono “self-contained”.
Ovviamente app più complesse potranno richiedere funzioni accessorie, ad esempio driver di dispoisitivi (nella cartella library/extensions), componenti in avvio automatico (in cartelle launchagents/launchdaemons) e file di supporto in /Library/ApplicationSupport, mentre ogni singola personalizzazione all’app eseguita dall’utente verrà salvata nella cartella omonima sotto alla home dell’utente in xml con estensione .plist. Il tutto in file o cartelle nominate coerentemente con l’app stessa.
In nessun caso, a partire da El Capitan (con l’introduzione dell’accoppiata SIP/CSR) e pian piano fino alla partizione completamente separata da Catalina, un applicazione potrà inserire i suoi file all’interno di cartelle riservate di sistema operativo, creando una divisione netta tra esso e tutte le modifiche che un utente potrà applicarvi.
Per parallelo, non starò ad elencare tutte le possibli directory dove un applicazione su windows va a “ramificarsi” ma mi limiterò ai due enormi problemi principali: le librerie condivise, che vengono installlate dalle app nella grande cartella di sistema principale “C:\Windows\System32″, e il file di database monolitico chiamato “registro di sistema” dove le applicazioni registrano variabili legate al loro funzionamento e settaggi dell’utente – che possono in parte anche esser contenuti in files .cfg in varie diverse locazioni.
Inoltre, è possibile trovarsi in situazioni (ad esempio mi è capitato di recente con McAfee) di programmi che lasciano componenti residue dopo uninstall che sono impossibili da rimuovere nonostante si abbia account amministratore.
Conseguenze pratiche
Grazie alla sua struttura più ordinata, iniziamo a dire che con macos è molto più facile mantenere pulito il sistema, spostare le configurazioni dei singoli programmi e liberarsi manualmente di eventuali “residui” se si sa dove andare a cercare.
Ma sopratutto sono possibili due operazioni utilissime per la produttività: la prima è l’install in place che consiste nell’utilizzare un media per installare il sistema operativo “sopra” uno già presente, ma mantenendo tutte le applicazioni e personalizzazioni in ogni dettaglio delle stesse, la seconda la migrazione account che permette di muovere un sistema già installato ad un nuovo disco/computer con macos versione uguale o successiva sempre con tutte le app e personalizzazioni al loro posto.
L’immediatezza d’uso di queste funzioni rende più semplici gli aggiornamenti in staging, quando si procede invece che aggiornare il disco di sistema ad un nuovo software, a creare una nuova install con sistema operativo aggiornato e migrarvi il proprio sistema senza andare a modificare il disco di origine, mantenendo entrambi avviabili a scelta.
Rende anche possibile per apple implementare molto bene il backup del sistema intero con Time Machine.
Non è tutto oro
Sembra tutto bellissimo, vero?
Purtroppo, anni di esperienza sul campo mi dimostrano che il sistema è tutt’altro che infallibile; più il sistema originario è già stratificazione di vecchie install e carico di programmi, più alto il rischio di trovarsi con una migrazione fallita che può addirittura rendere impossibile l’accesso al sistema.
Una fonte di bug che riscontro è la facilità quando si sale di versione che in qualche modo il sistema inglobi (vedendoli a volte addirittura come di sistema) componenti/kext di una vecchia versione di un programma, a volte rendendo il sistema inavviabile, o semplicemente rimangono impossibili da rimuovere o aggiornare (classico esempio i driver UAD) perchè variano la modalità della loro gestione.
Successo di recente con il nuovo sistema kmutil
introdotto con BigSur – che mi ha causato nell’ultimo anno molti grattacapi sia su mac originali sia su hackintosh – o in passato all’introduzione di SIP con ElCapitan; addirittura ci sono macchine che hanno visto entrare in BigSur kext nati originariamente con Yosemite o precedenti.
Articolo a riguardo qui
Altri casi ovviamente sono fallimenti parziali, dove non si trasferisce completamente tutto, o problemi di applicazioni che non sono in grado di funzionare sul sistema nuovo e quando vengono aggiornate non riconoscono i files di config precedenti.
Una situazione particolarmente difficile sono le migrazioni da sistema Intel ai nuovi M1, a causa del cambio radicale di architettura e la necessità di dove riconoscere talvolta a mano un eseguibile come eseguibile per rosetta.
Quindi, cosa si fa?
Partiamo dal ricordare una regola d’oro sempre fondamentale: in ogni macchina macOs, per prima cosa creare e mantenere sempre attivo un secondo account Admin pulito in parallelo al proprio. Questo garantisce la possibilità di intervento facile e veloce in caso di questi fallimenti.
In secondo luogo, consiglio di ricorrere comunque a migrazioni ed install in place solo in caso di necessità effettiva ad esempio per rottura della macchina o sistema non avviabile nel mezzo di una consegna.
Pianificarlo come procedura all’acquisto di una nuova macchina va provato solo se questa è davvero molto simile e “vicina” alla versione di SO attuale, per un semplice motivo: nel caso durante l’uso successivo dovesse presentarsi un problema di qualsiasi genere, il tarlo del dubbio che sia causato da una migrazione rimarrà sempre.
Consiglio quindi di cogliere l’occasione di una macchina nuova vincendo la pigrizia e sfruttando l”occasione per razionalizzare e aggiornare la propria suite di lavoro, plugins e app.
Potrei definire quindi questi strumenti come salvavita, fondamentali e comodissimi ma da riservare se possibile solo a quelle situazioni.