Univers Apple

07
Oct.
2019

Trouver les applications 32 bits de son Mac

Publié par sky

Vous le savez peut être, macOS Catalina, le successeur à Mojave, est disponible depuis aujourd'hui. En dehors de habituelles améliorations (ou régressions) promises par Apple, il y en a une qui affole un peu tout le monde en ce moment : l'optimisation du système pour le 64 bits.

Cette optimisation va permettre, selon Apple, de meilleures performances, en contrepartie, elle est met au rebut l'ensemble des applications 32 bits.

Avant de passer votre système vers Catalina, il est donc judicieux de vérifier si vous avez des applications 32 bits, et surtout si vous vous en servez fréquemment.

 

Comment faire pour trouver la liste de ses applications 32 bits ?

Vous pourriez lancer TOUTES vos applications, et attendre de voir si le message suivant apparait.

macOS : Application non optimisée pour 32 bits 

Heureusement, il existe une solution plus simple, et plus rapide.

A partir du menu Pomme :

  • A propos de ce Mac
  • Rapport Système
  • Applications (dans la partie Logiciels)
  • Laissez calculer, cela peut prendre du temps.

L'application Informations Système cherche sur l'ensemble de votre Mac, toutes les applications disponibles. Vous obtenez la liste des applications, avec leur nom, leur version, leur source, la date de modifications, et en dernière colonne, si l'application est 64 bits.

En cliquant sur l'en-tête de colonne "64 bits (Intel)", vous trierez les applications par cette valeur, pour grouper les applications qui seront compatibles, avec la valeur Oui, et celles que vous devrez abandonner avec la valeur Non.

Information Système - Onglet Logiciels

 

Et avec le terminal ?

Parce qu'il est parfois plus facile de passer par le terminal, pour par exemple, vérifier les applications d'un Mac distant via SSH, voici la solution en ligne de commande. Je vais détailler les étapes pour aller de plus en plus précisément.

Pour trouver la liste des applications, il faut passer par la commande system_profiler, qui correspond à l'application Informations Système en ligne de commande. Et nous lui demandons la liste des applications, avec la paramètre SPApplicationsDataType.

system_profiler SPApplicationsDataType

Nous voici avec la longue liste des applications, ainsi que les informations relatives à chacune, identiques à celle de l'application Informations Système.

Pour obtenir la liste réduite des applications 32 bits, nous allons utiliser la commande grep en cherchant la valeur "64-Bit (Intel): No"

system_profiler SPApplicationsDataType | grep "64-Bit (Intel): No"

Nous allons dire que le résultat à cette commande, n'est pas très satisfaisant... Elle ne renvoit, en effet, que les lignes contenant le texte "64-Bit (Intel): No".

Dans les résultats que nous avions au dessus, le nom de l'application, se trouve quelques lignes au dessus, mais est aussi présent en dessous dans le chemin de l'application.

Heureusement pour nous, grep est capable de récupérer quelques lignes au dessus, 6 pour être exacte.

system_profiler SPApplicationsDataType | grep -B6 "64-Bit (Intel): No"

Nous avons bien ici, le résultat souhaité, mais toujours pollué par de nombreuses lignes identiques. Pour ne récupérer que le nom de l'application.

Pour cela nous utiliser une nouvelle fois la commande grep, par dessus la précédente commande grep, avec une expression régulière

system_profiler SPApplicationsDataType | grep -B6 "64-Bit (Intel): No" | grep -Eo "[^:]*:$"

Dans le détail, dans l'expression régulière, nous demandons de récupérer tous les caractères qui ne sont pas le caractère ":" et qui se trouvent devant le caractère ":" juste avant un saut de ligne.

Les paramètre -Eo de grep indique :

  • E : utilisation d'une expression régulière
  • o : ne retourne que le résultat trouvé dans l'expression régulière et pas la ligne complète

Ici le résultat est quasi parfait. Pour les pinailleurs, qui souhaiterait retirer le ":" final, il suffit de mettre un 3ème grep, en demande tous les caractères sauf le ":".

system_profiler SPApplicationsDataType | grep -B6 "64-Bit (Intel): No" | grep -Eo "[^:]*:$" | grep -Eo "[^:]*"

Je suis sur qu'il y a moyen de réduire la commande mais, pour l'instant, je ne sais pas comment faire.

Si l'on souhaite récupérer le nom du fichier de l'application, il faut passer via une autre solution, en allant chercher les informations une ligne en dessous. L'expression régulière est, du coup, différente. Une des solutions est de chercher tous les caractères accolés qui ne sont pas un "/", qui se fini par ".app" et un saut de ligne.

system_profiler SPApplicationsDataType | grep -A1 "64-Bit (Intel): No" | grep -Eo "[^/]*.app$"

Si vous n'êtes pas fatigué, et que vous souhaitez aller plus loin, cette solution à l'avantage de pouvoir chercher les applications par dossier. En effet, comme nous nous servons de la ligne qui dispose du chemin complet vers l'application, nous pouvons nous en servir.

Ainsi si je ne souhaite avoir que les applications qui se trouvent dans le dossier Applications partagé

system_profiler SPApplicationsDataType | grep -A1 "64-Bit (Intel): No" | grep -E "Location: /Applications/*" | grep -Eo "[^/]*.app$"

En espérant que cela vous serve un petit peu. Un article sur l'utilisation de grep est prévu de longue date, il arrivera peut être, un jour sur le site.

 
 
Commentaires
Aucun commentaire pour le moment.

 

Poster un commentaire
En postant sur skymac.org, je m'engage à être courtois et à ce que mon message soit pertinent avec le sujet de l'article.
En outre, j'accepte, sans condition, que mon message soit refusé et supprimé si ces règles ne sont pas appliquées.
Les cookies assurent le bon fonctionnement de nos services. En continuant, vous acceptez leur utilisation sur notre site internet.
Accepter