Registrare un Mac mini usato arrivato indietro di due versioni di macOS
La macchina andava bene. Sedici gigabyte, un Apple M4, cancellata e pulita. Ma aveva macOS 15.6.1, e l’Xcode che diamo a ogni cliente non si avvia sotto la 26.2. Ecco come accorgersene, e le parti dell’aggiornamento che non sono ovvie. In fondo c’è la lista che ora seguiamo prima di pagare un Mac usato.
Leggi il minimo direttamente da Xcode
Non andare a intuito dalle note di rilascio. Xcode dichiara il suo minimo nella sua property list.
$ /usr/libexec/PlistBuddy -c "Print :LSMinimumSystemVersion" \
/Applications/Xcode.app/Contents/Info.plist
26.2Una macchina sotto quella versione si registra senza errori e poi fallisce la prima build del cliente. Ora il nostro script di registrazione controlla questo prima di ogni altra cosa. Se non va, si ferma e indica il comando esatto per scaricare una release più recente.
Aggiornamento Software mostra solo la major più recente
Da macOS 15, Impostazioni di Sistema offriva macOS 27 e nient’altro. Le major più vecchie esistono ancora. Devi chiederle per nome, dalla riga di comando.
$ softwareupdate --list-full-installers * Title: macOS 27 Golden Gate, Version: 27.0, Build: 26A428 * Title: macOS Tahoe, Version: 26.7, Build: 25G229 * Title: macOS Tahoe, Version: 26.6.2 ... * Title: macOS Sequoia, Version: 15.8 ... $ softwareupdate --fetch-full-installer --full-installer-version 26.7
L’elenco dipende dal modello, quindi eseguilo sulla macchina in questione. Sulla nostra veniva offerta solo la 27. Così abbiamo preso la 27 per scelta, non per default. Su una flotta questa differenza conta.
Prima di mettere una nuova major su una macchina della flotta
Ogni formula Homebrew che installiamo aveva già un bottle per la nuova release. Per questo la registrazione ha richiesto il solito tempo e non un pomeriggio a compilare Ruby.
Cosa verifica la registrazione prima che la macchina vada in vendita
Superare il controllo di versione è dove il lavoro inizia, non dove finisce. Prima di essere offerta a qualcuno, una macchina deve dimostrare quattro cose. Ognuna viene misurata, non presunta.
- Un desktop reale. Un client VNC scarica un framebuffer e conta i colori. Oltre centomila colori distinti sono un desktop. Due sono uno schermo nero.
- Una compilazione reale.
xcrun swiftccompila ed esegue un binario con l’account del cliente. - Una sessione attiva.
whomostra una riga console per l’account del cliente. - La telemetria che arriva. L’hub vede la macchina, la sua versione di macOS e la sua sessione nella dashboard della flotta.
La nostra li ha superati tutti e quattro su macOS 27. È per questo, e non per il numero di versione, che è in vendita.
Lo spavento che non era un bug
I primi due avvii dopo la registrazione non hanno fatto il login automatico. Su una major di macOS nuovissima sembra una regressione, e stavamo quasi per segnalarla come tale. Non lo era.
Al primo avvio la macchina stava indicizzando un Xcode da 3.8 GB appena copiato, con un load average sopra 160. Il login non si è completato in tempo, e macOS ha impostato lastLoginPanic nelle preferenze di loginwindow. Quel flag gli fa saltare il login automatico anche all’avvio successivo. Cancellare il flag e riavviare a macchina tranquilla ha funzionato, con la stessa password e gli stessi script, sia a 8 sia a 32 caratteri.
sudo defaults delete /Library/Preferences/com.apple.loginwindow lastLoginPanic sudo shutdown -r now
A provare che non era colpa del nuovo OS è stato un controllo di confronto. Abbiamo eseguito lo stesso comando diagnostico su una macchina sana, una major indietro, e abbiamo ottenuto lo stesso errore. Quella storia, e altre quattro simili, sono in controlli che non possono fallire.
Cosa controllare quando compri un mini usato
Niente di tutto questo è specifico della CI. È ciò che dovresti controllare prima di pagare qualsiasi Mac usato. Noi abbiamo solo più motivi di altri per farlo bene al primo colpo, perché la macchina va a un cliente entro un’ora.
Domande
- Come installo una versione di macOS che Aggiornamento Software non mostra?
- Esegui softwareupdate --list-full-installers per vedere ogni release che Apple offre per quel modello. Poi esegui softwareupdate --fetch-full-installer --full-installer-version 26.7 con la versione che vuoi. L’installer finisce in /Applications.
- Xcode 26.6 gira su macOS 27?
- Sì. LSMinimumSystemVersion nell’Info.plist di Xcode è 26.2, ed è un minimo, non una versione fissa. Si avvia e compila sulla 27.
- Su una macchina di CI conviene prendere semplicemente il macOS più recente?
- Solo per scelta consapevole. Un’unità su una major diversa dal resto della flotta rompe la riproducibilità per i clienti di CI. Prima verifica che esistano i bottle di Homebrew per la nuova release, altrimenti ogni installazione compila dai sorgenti.
- Cosa devo controllare prima di comprare un Mac mini usato?
- Numero di serie e modello, RAM, la vera dimensione del disco, la versione di macOS. Poi che FileVault e il Blocco attivazione siano disattivati, che Dov’è sia disattivato e che non ci sia una registrazione MDM. Il nostro era venduto come 500 GB e ne aveva 256.
Fai i tuoi conti con il calcolatore oppure noleggia un runner.