80 votes

zsh : mauvais type de CPU dans l'exécutable

J'utilise le terminal sur un MacBook Apple M1. J'essaie d'utiliser un outil cli qui n'est pas construit pour aarm64, et j'obtiens ce message d'erreur dans le terminal :

zsh: bad CPU type in executable

Y a-t-il quelque chose que je puisse faire pour utiliser cet outil cli, par exemple avec une émulation ou autre ? Comment puis-je exécuter des binaires sur un Mac basé sur M1 dans le Terminal qui n'est pas construit nativement pour Arm ?

118voto

grg Points 181593

Lorsque MacOS essaie d'exécuter une application qui n'est pas conçue pour le silicium d'Apple, il est invité à installer Rosetta 2 pour traduire automatiquement l'application en silicium d'Apple.

Dans Terminal, il n'y a pas de détection automatique de l'absence de Rosetta pour exécuter des outils de ligne de commande d'ancienne architecture.

Si aucune autre application ne vous a déjà été proposée, installez manuellement Rosetta 2 :

softwareupdate --install-rosetta

Si vous devez exécuter un binaire universel dans l'architecture précédente, utilisez arch et spécifier l'architecture. Vous devez spécifier manuellement l'architecture pour les binaires qui doivent exécuter d'autres binaires qui ne sont pas construits pour le silicium d'Apple, comme Homebrew.

arch -x86_64 …

par exemple arch -x86_64 brew install packagename

Vous pouvez également exécuter toute l'application Terminal à l'aide de Rosetta en ouvrant Get Info on Terminal.app dans le Finder et en cochant "Open using Rosetta". De cette façon, Terminal et tous les binaires qu'il tente d'exécuter passent par Rosetta. Les binaires siliconés d'Apple ne seront donc pas pris en charge et les performances seront affectées, mais vous n'avez pas besoin de spécifier l'architecture pour exécuter les anciens binaires.

Pour passer un terminal zsh existant à x86_64, utilisez cette commande :

arch -x86_64 zsh

-2voto

ahmadalibaloch Points 99
  1. Ouvrez une nouvelle session de Terminal.
  2. Retirer /usr/local/bin de PATH pour cette session par PATH=${PATH/\/usr\/local\/bin:}
  3. Exécuter which git curl dans cette session.
  4. Confirmez que vous n'obtenez pas d'erreurs et qu'aucun chemin signalé ne commence par /usr/local/bin
  5. Exécutez le programme d'installation dans cette session.

Source : https://github.com/Homebrew/discussions/discussions/1379#discussioncomment-672727

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