Comment savoir quelles applications Mac sont 32 bits?

28

Le 28 juin 2017, Apple a annoncé que

macOS High Sierra sera la dernière version de macOS à prendre en charge les applications 32 bits sans compromis.

Comment puis-je savoir quelles applications sur mon Mac sont 32 bits afin de voir si je dois les mettre à niveau?

Thunderforge
la source
1
Vont-ils créer leur propre carte vidéo 64 bits?
2
Qu'entendez-vous exactement par «carte vidéo 64 bits», @ Physics-Compute? Je suppose que vous faites référence à la bande passante mémoire? Cela n'a rien à voir avec le témoin du processeur ou pris en charge par le système d'exploitation. Vous n'avez pas besoin d'une carte vidéo 64 bits sur un système d'exploitation 64 bits; en fait, les cartes vidéo 64 bits fonctionnent bien sur les systèmes d'exploitation 32 bits (ce qui n'est bien sûr pas le cas des applications).
Cody Gray
1
@CodyGray Je suppose qu'il fait référence au nombre de bits d'adresse qu'il prend en charge pour les opérations DMA. C'est un problème si vous avez plus de mémoire que ce qui peut être adressé avec 32 bits et que vous avez alloué un tampon pour DMA dont vous devez informer un morceau de matériel 32 bits.
kasperd
1
Désolé, je voulais dire plus précisément les pilotes 64 bits. Les pilotes graphiques ne sont-ils pas majoritairement en 32 bits, ce qui nécessite que tous les processus qui les utilisent soient également en mode 32 bits? Un processus qui est généralement 64 bits aujourd'hui doit utiliser IPC avec un processus 32 bits pour parler aux pilotes de carte vidéo 32 bits. Ne pas autoriser les pilotes ou processus 32 bits semble être un problème si les fabricants de cartes vidéo n'ont pas créé de pilotes 64 bits, non?
1
Les pilotes vidéo ne peuvent pas être 32 bits, car un noyau 64 bits ne peut pas charger / utiliser des pilotes 32 bits. Les fabricants de cartes vidéo produisent des pilotes 64 bits depuis un certain temps, et ils doivent le faire pour d'autres systèmes d'exploitation, donc ce n'est pas exactement une proposition folle. Et le pilote gérerait les choses DMA dont parle Kasperd, donc ce n'est pas un problème également.
Cody Gray

Réponses:

27

Une façon d'identifier les applications 32 bits que vous utilisez toujours consiste à utiliser l'option Informations système sous À propos de ce Mac. Les étapes exactes varient en fonction de la version de macOS que vous utilisez, mais voici les étapes générales que vous devriez pouvoir suivre en fonction de votre situation:

  1. Cliquez sur le menu Apple
  2. Sélectionnez À propos de ce Mac
  3. Dans la fenêtre À propos de ce Mac qui apparaît, cliquez sur le System Report...bouton en bas à gauche (si vous utilisez un ancien système d'exploitation, vous devrez peut-être cliquer sur le More Info...bouton près du centre en bas).
  4. Cela ouvre la fenêtre Informations système (ou la fenêtre System Profiler dans les anciennes versions du système d'exploitation).
  5. Dans la barre latérale à gauche, vous verrez un certain nombre de titres et sous-titres.
  6. Sous la rubrique Logiciels (c'est la 3e en bas), vous verrez une sous-rubrique intitulée Applications. Cliquez dessus.
  7. Dans la partie principale de la fenêtre sur le côté droit, vous verrez une liste d'applications apparaître. Soyez patient car cela peut prendre un peu de temps à remplir.
  8. Une fois que la liste apparaît, vous verrez les en-têtes de colonne en haut.
  9. La dernière colonne est intitulée 64-Bit (Intel)Cliquez sur cet en-tête de colonne pour trier les applications selon qu'elles sont 64 bits ou non (c'est-à-dire qu'elles auront un oui ou un non répertorié pour chaque application).

Reportez-vous à l'image ci-dessous à titre d'exemple:

entrez la description de l'image ici

REMARQUE: dans l'image ci-dessus, je n'ai délibérément pas trié la dernière colonne afin que vous puissiez voir les entrées avec un oui et un non répertoriés. Ainsi, dans l'exemple ci-dessus, vous verrez qu'iMovie v10.1.6 est une application 64 bits alors qu'iMovie 9.0.9 n'est pas 64 bits.


Modifier - Si les étapes ci-dessus entraînent une erreur

J'ai vu des rapports qu'un petit nombre d'utilisateurs recevaient un message d'erreur «Le plug-in n'a pas répondu assez rapidement lors de la collecte de ces informations» en attendant que la liste se remplisse.

Si cela se produit, quittez l'application Informations système (ou l'application System Profiler dans les anciennes versions de macOS) et redémarrez, mais cette fois ignorez les étapes 1 à 4 et accédez directement à votre dossier Applications / Utilitaires et ouvrez l'application Informations système (ou Système Application Profiler) directement à partir de là. Une fois ouvert, suivez les étapes 5 à 8 ci-dessus.

Monomeeth
la source
1
Il continue à expirer pour moi avec le message "Le plug-in n'a pas répondu assez rapidement lors de la collecte de ces informations."
JBis
Merci @Josh de m'avoir rappelé cette réponse. J'ai pris conscience à la fin de l'année dernière que c'était un problème possible mais j'ai oublié que j'avais répondu à cette question! Je viens de modifier ma réponse avec une solution de contournement possible qui fonctionne pour la plupart des utilisateurs. Faites-moi savoir si vous avez encore des problèmes.
Monomeeth
Même problème lors de l'ouverture directement depuis / Applications / Utilitaires.
JBis
27

Dans le Finder, cliquez sur cmdFpour obtenir une fenêtre de recherche.

  • Choisissez Rechercher: Ce Mac
  • Frappez le premier critère de recherche et choisissez " Autre ... " et ici " Architectures exécutables " " Est " " i386 "
  • Appuyez sur le bouton + et ajoutez un deuxième critère " Architectures exécutables " " N'est pas " " x86_64 "

    entrez la description de l'image ici

et vous obtiendrez une liste de toutes les applications i386 uniquement (c'est-à-dire 32 bits).


Dans Terminal, cela se fait avec:

mdfind "(kMDItemExecutableArchitectures == 'i386') && (kMDItemExecutableArchitectures != 'x86_64')"
klanomath
la source
Étrangement pour moi, cette méthode récupère quelques fichiers PDF d'il y a des années, comme "Welcome to Leopard". Sinon semble bien fonctionner.
Thunderforge
3
@Thunderforge "Welcome to Leopard" n'est pas un .pdf mais une application IIRC, lorsque vous l'ouvrez, il choisit votre langue pdf et l'ouvre en Aperçu.
Manuel
@Manuel Intéressant! J'ai été bouleversé par le fait qu'il a une icône PDF. Il ne m'est même pas venu à l'esprit que c'était en fait une application qui a choisi un PDF pour vous.
Thunderforge
Je viens de remarquer que cette méthode ne trouve pas d'applications ~/Library/Application Supporttelles que les jeux Steam. L'autre solution le fait. Savez-vous s'il existe un moyen de modifier la recherche pour l'inclure?
Thunderforge
1
@Thunderforge, la version du terminal trouve des jeux Steam.
Andrea Lazzarotto
3

Les autres réponses jusqu'à présent, d'après ce que je comprends, répertorieront les applications macOS 32 bits (et peut-être certains binaires 32 bits) dans l'index des métadonnées. Si vous souhaitez répertorier tous les fichiers binaires exécutables 32 bits uniquement sur votre système, essayez cette ligne unique:

find / -type f -perm +111 -exec file -p {} \; -exec head -c 1 /dev/zero \; | xargs -0 -n 1 sh -c 'echo "$@" | head -n 1' -- | grep -v x86_64 | grep -E Mach-O.+i386

Si vous avez installé GNU findutils, cela peut probablement être considérablement simplifié. Une partie de la complexité ici est de surmonter les limitations des trouvailles BSD incluses dans macOS.

Kevin Mark
la source
3

Cette commande Terminal d'une ligne va collecter une liste d'applications dans un fichier texte sur votre bureau. Il saisit les 6 lignes avant et 2 lignes après chaque occurrence de "(Intel): Non" dans la requête. Cependant, il ne fouille pas dans les binaires ou bibliothèques de support 32 bits pour les applications 64 bits déjà compilées. Cette liste est beaucoup plus longue et je ne trouve aucune ressource qui réponde à un niveau de préoccupation plus profond, même s'il s'agit d'un problème.

system_profiler SPApplicationsDataType | grep -B 6 -A 2 "(Intel): No" > ~/Desktop/32BitAppList.txt
Kevin Hagan
la source
2

Lorsque vous avez juste besoin de vérifier une seule application:

file myapplication

Par exemple, mon traceur de rayons rt:

==> file rt
rt: Mach-O 64-bit executable x86_64
==>

La filecommande examine essentiellement de nombreux types de fichiers et essaie de les identifier. Pour les exécutables OSX, vous en verrez presque toujours un ou plusieurs: i386, x86_64 et ppc qui sont respectivement des architectures intel / amd 32 bits, des architectures intel / amd 64 bits et des architectures Power PC (ce sont assez anciennes maintenant.) Donc, vous n'avez vraiment à vous soucier que d'i386 (applications 32 bits) et x86_64 (applications 64 bits).

Pour les applications packagées, il faut faire un clic droit et afficher le contenu du package . Dans la plupart des applications, moins d' contents → macOSun trouvera un exécutable. Son chemin doit être utilisé comme argument pour file.

fyngyrz
la source
1
Pour file /Applications/BitTorrent.app/Contents/MacOS/BitTorrent, je comprends Mach-O executable i386. Qu'est-ce que ça veut dire ?
ankii
Cela signifie que l'application est un exécutable 32 bits; et l'implication est qu'il ne pourra pas fonctionner sous les systèmes d'exploitation 64 bits uniquement les plus récents d'Apple.
fyngyrz
Je ne pouvais pas trouver le tableau où je pouvais trouver des significations de choses comme i386etc. Pourriez-vous ajouter une telle référence s'il vous plaît?
ankii
La filecommande examine essentiellement de nombreux types de fichiers et essaie de les identifier. Pour les exécutables OSX, vous verrez presque toujours un ou plusieurs d'entre eux: i386,, x86_64et ppcqui sont respectivement des architectures intel / amd 32 bits, des architectures intel / amd 64 bits et des architectures Power PC (ces dernières sont assez anciennes maintenant. ) Vous n'avez donc vraiment à vous préoccuper que des applications i386 (applications 32 bits) et x86_64 (applications 64 bits.) La seule raison pour laquelle elles sont importantes est que Apple supprime la prise en charge des applications 32 bits.
fyngyrz
1

J'ai gardé en série le "Le plug-in n'a pas répondu assez rapidement lors de la collecte de ces informations." problème et n'a pas pu le résoudre en utilisant l'une des méthodes suggérées.

Il s'avère qu'il existe un outil en ligne de commande appelé system_profilerqui fournit les mêmes informations.

Je suis donc allé directement à la source et j'ai écrit un petit script ruby ​​pour compiler une liste avec plus d'informations sur l'emplacement de l'application et la source d'installation (si disponible).

Vous pouvez trouver le script ici .

Vidur
la source