in Tanto per

Prestazioni Mac OS Big Sur su MacBook Air 2017

Le prestazioni Mac OS Big Sur sul mio MacBook Air 2017 sono crollate. L’aggiornamento del sistema operativo Apple alla nuova versione 11 Big Sur per me non è stato particolarmente felice. Uso Big Sur su un MacBook Air 2017 e da quando ho aggiornato il sistema operativo dal precedente Catalina le prestazioni sono peggiorate in modo drastico.

Tanto per rendere l’idea, mentre su Chrome sto facendo un videochiamata con Google Meet, Safari non si apre neanche.

Un post riportava che installando la versione 11.2RC si erano risolti i problemi. Ho atteso con calma che il nuovo aggiornamento fosse rilasciato e appena disponibile ho aggiornato il sistema operativo alla versione 11.2. Risultato, nessun miglioramento significativo.

Catalina era un missile, Big Sur un bradipo.

Premetto che uso il Mac principalmente per sviluppare piccoli software, Microsoft Office, Web, nulla di più. Mi metto alla ricerca di qualche errata impostazione del mio sistema o qualche software installato che possa risultare incompatibile con l’aggiornamento a Big Sur.

Ricerca del problema

Per prima cosa ho provato a vedere se l’antivirus AVG presentasse problemi con il nuovo sistema operativo. Non ho trovato particolari notizie riguardo problemi di AVG con Big Sur ma per fare una prova diretta sono passato da AVG ad Avast. Alla fine un piccolo miglioramento l’ho trovato. Il tempo di avvio è diminuito ma in uso nessun vantaggio particolare.

Ho verificato allora le applicazioni che si avviano in automarico e i servizi che girano in background.

Sorpresa… Non bella. Quando cerco di vedere i servizi attivi installati nel sistema con Homebrew trovo un bel messaggio di errore

$ brew services list
 Traceback (most recent call last):
 11: from /usr/local/Homebrew/Library/Homebrew/brew.rb:23:in `<main>'
 10: from /usr/local/Homebrew/Library/Homebrew/brew.rb:23:in `require_relative'
  9: from /usr/local/Homebrew/Library/Homebrew/global.rb:37:in `<top (required)>'
  8: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
  7: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
  6: from /usr/local/Homebrew/Library/Homebrew/os.rb:3:in `<top (required)>'
  5: from /usr/local/Homebrew/Library/Homebrew/os.rb:21:in `<module:OS>'
  4: from /usr/local/Homebrew/Library/Homebrew/os/mac.rb:58:in `prerelease?'
  3: from /usr/local/Homebrew/Library/Homebrew/os/mac.rb:24:in `version'
  2: from /usr/local/Homebrew/Library/Homebrew/os/mac.rb:24:in `new'
  1: from /usr/local/Homebrew/Library/Homebrew/os/mac/version.rb:26:in `initialize'
 /usr/local/Homebrew/Library/Homebrew/version.rb:368:in `initialize': Version value must be a string; got a NilClass () (TypeError)

Questo problema indica che Homebrew ha qualche problemino. Niente male. Probabilmente avere degli errori nel sistema che gestisce i servizi in background potrebbe essere un problema. Mi sembra un punto interessante da approfondire.

Cerco di analizzare lo stato di brew con il comando

brew doctor

e ottengo lo stesso errore.

Soluzione

Tento di eseguire l’aggiornamento di homebrew per vedere se questo possa risolvere l’errore. Lo faccio tramite il comando

brew update

Con le prestazioni attuali attendo circa venti minuti (20, 20 minuti) per avere l’elenco degli aggiornamenti da Homebrew. Ma piacevolemente, questo comando non presenta errori. Anzi.

Una volta eseguito l’aggiornamento con brew update rilancio il comando brew doctor per verificarne lo stato e questa volta non ottengo errori ma una risposta.

Premesso questo messaggio

Please note that these warnings are just used to help the Homebrew maintainers
 with debugging if you file an issue. If everything you use Homebrew for is
 working fine: please don't worry or file an issue; just ignore this. Thanks!

il comando riporta di seguito una serie di messaggi in cui viene indicato che i Command Line Tools richiedono un aggiornamento e nel dettaglio dei messaggi sono riportate tutte le modalità per effettuare l’aggiornamento..

Warning: Your Command Line Tools are too outdated.

In dettaglio, questi i vari warning che il comando presenta.

Warning: Your Command Line Tools are too outdated.
...
Warning: A newer Command Line Tools release is available.
...
Warning: Your CLT does not support macOS 11.
...

tutti con la stessa soluzione, che è:


 Update them from Software Update in System Preferences or run:
   softwareupdate --all --install --force
 

 If that doesn't show you any updates, run:
   sudo rm -rf /Library/Developer/CommandLineTools
   sudo xcode-select --install
 

 Alternatively, manually download them from:
   https://developer.apple.com/download/more/.

Provo ad utilizzare il comando

softwareupdate --all --install --force

ma ottengo un messaggio in cui mi indica che non ci sono aggiornamentoi disponibili.

Software Update Tool
 

 Finding available software
 No updates are available.

Decido allora di provare con un altro comando tra quelli indicati. Eliminare manualmente i Command Line Tools e reinstallarli

sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install

Questo comando sembra funzionare. Lentamente l’installazione inizia.

il tempo è dalla nostra parte…

Fortunatamente, il tempo passa molto più in fretta e nel giro di pochi minuti si conclude l’operazione.

A questo punto verifico se si sono risolti i problemi su homebrew tramite il comando

$ brew doctor
 Your system is ready to brew.

Tutto a ripreso a funzionare e ottengo una risposta senza errori.

Verifico i servizi attivi e MongoDB è attivo.

Riavvio il Mac per verificare se tutte queste operazioni hanno dato un qualche effetto e piacevolmente vedo che la velocità del sistema è migliorata notevolmente.

All’avvio rispetto a Catalina trovo ancora un po’ di lentezza ma niente a che vedere rispetto a prima.

Nell’uso invece è notevolmente migliorato.

Conclusione

A volte capita di trovare problemi con alcuni aggiornamenti del proprio sistema operativo e spesso in modo frettoloso si tende ad attribuire il problema all’aggiornamento stesso.

Ogni utente configura il proprio sistema secondo le proprie necessità e molti sistemi diversi devono convivere trovando la giusta configurazione.

Spero questa breve nota sia utile per risolvere problemi simili.