60 votes

Apple Silicon : porter tous les paquets Homebrew sous /usr/local/opt/ vers /opt/homebrew

J'ai récemment acheté un MacBook Pro 13" avec la puce M1 et j'ai transféré toutes mes données en utilisant une sauvegarde Time Machine. Les paquets Homebrew sont actuellement installés dans /usr/local/opt/ mais j'ai cru comprendre qu'ils devraient être sous /opt/homebrew pour les Apple Silicon Macs.

Comment puis-je :

  1. Obtenir la liste des paquets que j'ai actuellement installés
  2. Retirez-les de /user/local/opt
  3. Réinstallez-les sous /opt/homebrew

Je pensais que Homebrew serait assez intelligent pour faire cela automatiquement, mais apparemment, cela nécessite une maintenance manuelle.

Voici ma configuration Homebrew si cela peut vous aider :

HOMEBREW_VERSION: 2.7.2
ORIGIN: https://github.com/Homebrew/brew
HEAD: dad7dc6a1498b80770d98f2d7cd6fb927c300bbb
Last commit: 3 days ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 2b1d79d038bffdbfcee93283051d48919a4caf3d
Core tap last commit: 16 hours ago
Core tap branch: master
HOMEBREW_PREFIX: /usr/local
HOMEBREW_REPOSITORY: /usr/local/Homebrew
HOMEBREW_CELLAR: /usr/local/Cellar
HOMEBREW_CASK_OPTS: []
HOMEBREW_MAKE_JOBS: 8
Homebrew Ruby: 2.6.3 => /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby
CPU: octa-core 64-bit arm_firestorm_icestorm
Clang: 12.0 build 1200
Git: 2.30.0 => /usr/local/bin/git
Curl: 7.64.1 => /usr/bin/curl
macOS: 11.1-arm64
CLT: 12.3.0.0.1.1607026830
Xcode: N/A
Rosetta 2: false

Merci d'avance !

85voto

nohillside Points 82672

Selon https://docs.brew.sh/Installation , /usr/local est pour les binaires Intel, /opt/homebrew pour ARM. Vous pouvez donc vouloir réinstaller au lieu de simplement migrer.

Vous pouvez vider la liste des paquets actuellement installés avec brew bundle dump . Pour dupliquer votre installation actuelle, vous devrez

  • exécuter brew bundle dump pour créer un Brewfile

  • installer ARM Homebrew dans /opt/homebrew en suivant les instructions figurant dans https://docs.brew.sh/Installation

    cd /opt
    sudo mkdir -p homebrew
    sudo chown -R $(whoami) homebrew
    curl -L https://github.com/Homebrew/brew/tarball/master |\
        tar xz --strip 1 -C homebrew
  • Assurez-vous que la version ARM se trouve au début de votre PATH.

    PATH=/opt/homebrew/bin:$PATH
  • Réappliquez le fichier brew créé à l'étape 1

    hash -d brew
    brew bundle install --file /path/to/Brewfile
  • Vous pouvez aussi exécuter brew analytics off pour éteindre le le suivi et l'analyse des données sont effectués par Homebrew.

PS : certaines formules ne semblent pas encore fonctionner sur ARM

PPS : /usr/local/Cellar et tous les liens symboliques de /usr/local/bin dans laquelle il peut être retiré par la suite.

17voto

DaniG2k Points 573

Voici l'approche que j'ai finalement adoptée.

D'abord, j'ai pris note de mes paquets brew installés :

brew list

Je l'ai gardé dans un fichier texte pour pouvoir m'y référer plus tard. J'ai ensuite désinstallé l'ancienne version de Homebrew et tous ses paquets :

cd ~/Desktop
wget https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh
chmod +x ./uninstall.sh
sudo ./uninstall.sh --path=/usr/local

et a supprimé le fichier une fois que c'était fait :

rm uninstall.sh

J'ai ensuite installé Homebrew avec le support M1 :

cd /opt; sudo mkdir homebrew
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew

J'ai ajouté ce qui suit à mon ~/.zshrc fichier :

export PATH=/opt/homebrew/bin:$PATH

et le sourcer avec :

source ~/.zshrc

Je me suis ensuite référé à la liste de ma première étape et j'ai commencé à installer les paquets nécessaires un par un :) La plupart des paquets que j'utilisais semblaient déjà avoir le support ARM, ce qui est génial !

0 votes

Ah. Je n'ai pas pensé à supprimer l'ancienne installation :-)

0 votes

@DaniG2k Je reçois l'erreur suivante brew list Warning : your HOMEBREW_PREFIX is set to /usr/local but HOMEBREW_CELLAR is set to /opt/homebrew/Cellar. Votre emplacement HOMEBREW_CELLAR actuel vous empêchera d'utiliser tous les paquets binaires (bouteilles) fournis par Homebrew. Nous vous recommandons de déplacer votre HOMEBREW_CELLAR vers /usr/local/Cellar qui vous donnera accès à toutes les bouteilles."

2 votes

Running sudo ./uninstall.sh --path=/usr/local essaie en fait de supprimer l'ensemble du /usr/local répertoire ! rmdir: /usr/local: Operation not permitted . Est-ce que c'est sûr de courir quand même ?

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X