mas : utiliser le Mac App Store via le terminal
Le Mac App Store n’est pas le produit d’Apple qui bénéficie du maximum d’attention, c’est même encore rien de le dire. La boutique est délaissée par bon nombre de développeurs, parfois pour des raisons techniques, souvent pour des raisons politiques. Il faut dire que l’App Store iOS évolue régulièrement alors que la déclinaison dédiée aux Mac est laissée à l’abandon, à tel point que l’on y trouve même des faux antivirus !
La boutique d’apps est en si mauvais état que les utilisateurs la boudent aussi parfois. Dans mon cas, j’en ai besoin au quotidien pour tester des applications ou mettre à jour toutes celles que j’utilise et qui ne sont distribuées que par ce biais. Mais l’interface du Mac App Store est si lente que j’ai trouvé une solution bien plus rapide et efficace au quotidien : mas, un outil en ligne de commandes.

C’est le paradoxe de cette solution alternative. Elle permet d’utiliser une boutique chargée de simplifier l’installation et la mise à jour de logiciels, mais elle implique de passer par le terminal qui est l’une des anciennes interfaces de contrôle en informatique. Si vous êtes allergique au terminal et aux lignes de commande, autant le dire d’emblée : cette solution n’est pas pour vous.
Comment utiliser mas ?
Sinon, voici pourquoi je préfère mas au Mac App Store lui-même. Pour installer un logiciel, cet outil est nettement plus rapide, alors même qu’il nécessite deux étapes. Par exemple, si je veux installer GarageBand, voici comment faire. Je dois d’abord trouver l’identifiant unique de l’application à installer en utilisant une ligne de commande :
mas search GarageBand
J’obtiens alors une liste de propositions avec, sur chaque ligne, un identifiant numérique et le nom complet du logiciel. Le plus souvent, la première ligne est le résultat correct, mais c’est à vous de vérifier. Dans mon cas, je copie l’identifiant du premier résultat et je saisis cette deuxième ligne :
mas install 682658836
La fenêtre habituelle demandant le mot de passe du compte iTunes Store utilisé apparaît, je le saisis et mas se charge du reste. Si tout va bien, l’utilitaire va télécharger et installer le logiciel, exactement comme le ferait le Mac App Store, mais sans quitter le terminal.

À ce stade, vous auriez raison d’être sceptique quant à l’intérêt de cette ligne de commande. J’ai deux autres arguments à faire valoir toutefois :
- Pour mettre à jour toutes les apps, vous pouvez taper la commande
mas upgrade
et lancer immédiatement les mises à jour. À l’usage, c’est plus rapide que de lancer le Mac App Store, d’attendre le chargement, de cliquer sur l’onglet des mises à jour et enfin de cliquer sur le bouton qui les installe toutes. - La commande mas peut aussi servir si vous voulez construire un script qui installe automatiquement tous les logiciels que vous utilisez sur un nouveau Mac. J’ai commencé à mettre au point un script en utilisant mas et j’y reviendrai ultérieurement, mais cela fonctionne vraiment bien.
Comment installer mas ?
Voici comment installer cet outil en ligne de commande ! Le plus simple est de passer par Homebrew, un gestionnaire de paquets très populaire sur Mac. Si vous ne l’avez pas sur votre ordinateur, voici la ligne de commande à saisir dans le terminal pour l’installer :
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Quand c’est fait, tapez simplement brew install mas
et patientez jusqu’à la fin du processus. Cela peut prendre un petit peu de temps, puisque Homebrew installera des dépendances nécessaires, mais c’est normal.
Une fois mas installé, il faut encore le configurer pour l’utiliser. Il n’y a qu’une étape néanmoins, qui consiste à se connecter au compte iTunes Store à utiliser avec cette ligne de commande (pensez à remplacer user@me.com
par votre identifiant), puis à saisir le mot de passe du compte :
mas signin user@me.com
mas n’enregistre pas ce mot de passe et c’est pourquoi il vous sera demandé régulièrement par le système, comme si vous utilisiez le Mac App Store lui-même. Sur le plan de la sécurité, cet outil en ligne de commande est donc au même niveau que la boutique d’Apple.
Pour finir, un mot sur les mises à jour de mas lui-même. Si vous avez installé l’utilitaire avec Homebrew, vous le mettrez à jour de la même manière. Saisissez de temps en temps brew update && brew upgrade
dans le terminal pour mettre à jour tout ce que vous avez installé en l’utilisant.
AWESOMMMMEEE ! C'est génial ce truc !
Un jour on aura enfin un sudo mas update && upgrade pour installer les MAJ système !
Les MAJ systèmes ça serait plutôt mas dist-upgrade ;-).
@LeComFou
Tu peux déjà le faire :
sudo softwareupdate -iva
D'autres commandes dans le genre ici.
[EDIT]
Voir commentaire plus bas.
À mon tour de te remercier.
Je ne connaissais pas mas qui m'a l'air nettement plus puissant pour tout le reste :).
Désolé mais j'ai fait une petite erreur.
La commande fonctionne (sous El Capitan, Yosemite, Mavericks et précédents) mais elle doit être légèrement adaptée pour macOS Sierra :
Cela dit, le résultat n'est pas tout à fait le même puisque -d signifie qu'on lance le téléchargement, -a qu'on lance tous les téléchargements et -v qu'on souhaite voir ce qui se passe (mode verbose). Quant à -i, il lance l'installation. Donc les commandes utiles sont en fait :
Sur Sierra
sudo softwareupdate -ida --verbose (lance tous les téléchargements + l'installation + détail des opérations)
Sur les autres
sudo softwareupdate -idav (lance tous les téléchargements + l'installation + détail des opérations)
@ polyzargone :
Juste une remarque : l’option « d » est inutile avec softwareupdate si on utilise déjà l’option « i ». En effet, le « d » est là pour demander de télécharger sans installer. Le « i » demande de télécharger puis installer.
Un « softwareupdate -ia » suffit donc.
Un outil très utile (depuis Jaguar, si je ne m’abuse) pour qui doit faire des mises à jour système d’un gros parc de Mac. :-)
Depuis les débuts de l’App Store pour Mac, j’attends qu’Apple se décide à sortir un outil similaire (ou au moins une API permettant d’en développer un) pour l’App Store, jusque là en vain.
Merci donc aux développeurs de mas (et à MacG pour cet article).
Oui, tu as parfaitement raison ! L'installation implique nécessairement le téléchargement.
Merci de l'avoir relevé ;).
"Depuis les débuts de l’App Store pour Mac, j’attends qu’Apple se décide à sortir un outil similaire (ou au moins une API permettant d’en développer un) pour l’App Store, jusque là en vain."
N'est-ce pas possible avec un outil comme Apple Remote Desktop ? Il me semble qu'on peut gérer ce genre de chose sur un parc entier de Mac…
Mais j'ai peut-être mal compris le sens de ta demande :P.
@ polyzargone : « Mais j'ai peut-être mal compris le sens de ta demande :P. »
Non, c’est surtout que j’ai oublié de préciser que je parlais de l’administration d’un parc de Mac sans utiliser ARD. :-)
Génial ! Merci beaucoup !
Y aurait-il une commande pour avoir les mises à jour disponibles, afin d'éviter de faire la mise à jour en aveugle de toutes les applications éligibles ?
@ sinbad21 : oui !
mas outdated
pour avoir la liste des applications qui ont une mise à jour en attente. Ensuite, on peut fairemas upgrade identifiant
pour installer qu'une seule mise à jour.@ Nicolas Furno
Cool, merci :)
Il y a aussi un workflow Alfred pour faire une recherche dans le Mac App Store et l'App Store directement dans Alfred. yisiqi sur github
Génial ! :o
Excellent !! Très pratique pour se faire un script de réinstallation de tous les logiciels après une clean install par exemple !
Merci pour la news !
Exact, je me suis fait la même remarque ;-)
Merci pour l'info !
Génial, ils imitent ceux qu'ils ont le plus critiqué en instaurant une mise à jours "provoquée par défaut" suf a aller décocher une case cochée ...par défaut justement.
Chargement forcé provoquerait des crises d'urticaire chez les intégristes, mais ca ne change moralement rien à l'histoire.
J'aime la lenteur du Mac App Store car on a le temps d'y réfléchir à deux ou trois fois avant d'installer n'importe quoi. Je n'approuve pas cette astuce.
@innocente :
Mdr
@innocente :
Genre avant d'installer un antivirus
Terrible ! Merci MacG
Génial cette News!
Je vais me faire mes propres scripts.
A noter que ca permet par exemple, de retélécharger ElCapitan pou ceux qui l'avaient déjà téléchargé mais qui ne le voient plus dans l'onglet "Achats" (bug? ou nouvelle politique d'Apple initiée avec Sierra et qui s'étendrait aux OS précédents?)
@ r e m y :
Dans un script, je recommande de simplifier la procédure en utilisant une fonction, comme celle-ci : https://github.com/nicolinuxfr/macOS-post-installation/blob/master/post-install.sh#L35
Après, on peut utiliser le nom de l'app, ce qui est quand même plus simple à gérer…
merci pour le travail accompli qui va me servir de base pour mes scripts personnels :up:
Pour être totalement exhaustif, il faudrait que je trouve la façon de récupérer les mises à jour des softs dont le lien de téléchargement n'est pas sur le store, mais sur le site web d'Apple (Safari, iTunes... par exemple)
@nicolasf :
S u p e r cool ! Merci !
Reste à mettre un GUI dessus, et le tour est joué ;-)
Pour le GUI ya l'app store ;)
@r e m y
"A noter que ca permet par exemple, de retélécharger ElCapitan pou ceux qui l'avaient déjà téléchargé mais qui ne le voient plus dans l'onglet "Achats" (bug? ou nouvelle politique d'Apple initiée avec Sierra et qui s'étendrait aux OS précédents?)".
Je dirais que c'est un bug.
Chez moi, j'ai bien accès à toutes mes anciennes versions d'OS X téléchargées mais en revanche, il ne me propose que les versions Public et Developer de Sierra…
Dans le genre bizarre aussi, il me propose toujours de télécharger la GM d'El Capitan…
Ça déconne sévère en ce moment au niveau des MÀJ chez Apple. La bêta 3 10.12.1 affiche l'icône de Mountain Lion par exemple :).
Moi aussi j'ai bien toujours toutes les versions finales des OS précédant Sierra dans l'onglet Achats, mais on commence à voir des messages dans les forums de discussion (que ce soit sur MacG ou ailleurs), d'utilisateurs qui se plaignent de ne plus trouver ElCapitan dans leur onglet Achats, alors qu'il s'y trouvait bien encore la semaine dernière...
Avec mas et l'identifiant de l'installeur d'ElCapitan, ces utilisateurs devraient pouvoir obtenir le telechargement.
@r e m y
Il y avait eu le même genre de souci lors de la sortie d'El Capitan (ou bien c'était à un autre moment, j'avoue ne plus m'en souvenir).
Les versions de Yosemite et Mavericks avaient disparu sans qu'on sache trop pourquoi avant de réapparaître quelques jours plus tard.
C'est pourquoi je pense plus à un bug qu'une volonté délibérée d'Apple de les rendre inaccessibles.
Elle n'aurait rien à y gagner de toute manière…
[EDIT]
Il y a également eu des problèmes lors de la sortie de la version Public Bêta de Sierra. La version Developer a elle aussi disparu pendant un moment et ceux qui l'avaient déjà téléchargé ne pouvait plus y avoir accès du tout.
Idem, c'est rentré dans l'ordre après quelques jours.
@polyzargone :
Je confirme tout ! Y compris l'icone de ML.... C'est quand même un bug vachement bizarre...
Quelques questions qui pourraient être des points d'améliorations :
search renvoie uniquement celles qu'on peut installer (déjà achetée en bref) ? Si non, il serait intéressant de faire un recoupage avec ce qui est possible d'installer uniquement.
Il est presque dommage que cela ne renvoie par une liste numérotée, et que via un argument en plus, on puisse éviter d'avoir à taper tout l'identifiant :
$ mas search Xcode
idList bunledId programName
1 497799835 Xcode
2 688199928 Docs for Xcode
Et par conséquent $ mas install -idList 1 équivaudrait à $ mas install 497799835
Ou un truc du genre et sûrement mieux formulé.
Sinon, c'est vrai que c'est sympa vu l'extrême lenteur du MAS quand j'veux juste mettre à jour mes apps.
Best. Tip. Ever.
HS (quoi que...): Et toujours pas de Speial Event annoncé ou au moins en rumeurs pour de nouveaux Mac???
@mat1963
Pour les nouveaux Mac, il faut allumer un cierge!
Ca tombe bien, 12south en vend....
Très bon article ! :)
Vraiment dommage que l'on ne puisse acheter par ce biais !
sudo apt-get install nomdulogiciel existe depuis bien longtemps sur Linux
Bienvenue dans Unix sans le savoir ...
N'oubliez pas de dire que le MAC c'est le top et que Linux c'est nul ... :)
@ CorbeilleNews : « sudo apt-get install nomdulogiciel existe depuis bien longtemps sur Linux
Bienvenue dans Unix sans le savoir ... »
Pas « dans Unix » : tu l’as bien dit, apt-get est un truc linuxien, pas unixien. ;-)
« N'oubliez pas de dire que le MAC c'est le top et que Linux c'est nul ... :) »
Non, on écrira plutôt que « le Mac c’est le top » — c’est bien plus correct ainsi. :-)
Quant aux différences entre apt-get et ce qui est présenté dans cet article… je te laisse cogiter un peu pour les trouver.
et Port avec FreeBSD, ce n'est pas de l'UNIX ? ;)
@ nykk : « et Port avec FreeBSD, ce n'est pas de l'UNIX ? ;) »
Ben non, c’est du BSD. Et lui, il parlait de apt-get.
@CorbeilleNews :
Hahaha, je l'attendais dès le début celle-ci de remarque, je suis même étonné qu'il ait fallut 37 commentaires pour y arriver.
Oui, apt existe depuis la première version de Debian, comme d'autres dépôts en ligne de commande sur d'autres distrib Linux. Et alors ?
Si des macs users ou admin adeptes de scripts sont content de pouvoir bénéficier d'un outil similaire (certes moins complet) faut-il les dénigrer au prétexte que ca existe ailleurs depuis bien longtemps ? Vous êtes bien bas de plafond.
Ca existe depuis plus de 20 ans sur Debian et que récemment sur Mac OS ? Hé bien félicitons-nous que ce soit arrivé sur Mac OS pour ceux qui en ont l'utilité.
L'idée était de faire prendre conscience qu'Apple n'est pas le meilleur ni l'inventeur de tout :
on voit trop souvent ici des Apple Users qui trouvent toujours le moyen de remettre en question les bonnes idées des autres marques, et ne supportent pas les critiques contre Apple : il faut leur montrer que d'autres savent faire pareil pour piquer un peu leur, comment dire, ego, non ? Si cela ne pouvait qu'éveiller un peu leur curiosité et leur sens critique et voir qu'ailleurs aussi des choses intelligentes existent depuis fort longtemps, cela ne peut que faire progresser tout le monde
Vous ne pensez pas ?
Apple User fatigué de voir des options disparaitre pour en ajouter d'autres plus Bling Bling et une obsolescence contrôlée
@CorbeilleNews :
Dites, plutôt que de jouer à "l'éclaireur d'esprits inconscients" et raconter des conneries, vous auriez mieux fait de lire l'article, ce qui vous aurait permis de comprendre qu'il s'agit nullement d'une prétendue invention d'Apple ici, mais d'un outil développé par des tiers.
Vous ne pensez pas ?
"Saisissez de temps en temps brew update dans le terminal pour mettre à jour tout ce que vous avez installé en l’utilisant"
Et rajouter brew upgrade si non ça mettra pas grand chose a jour à par l'index des versions mais pas l'application.
Plus vite, toujours plus vite.
Qu'il y a-t-il de si urgent à tout vouloir faire toujours plus vite?
Il faudra un jours penser à ralentir, c'est tellement agréable.
On va enfin retrouver les vertus du terminal \o/
Excellent ton script, je le récupère et en profiterai pour le modifier à ma sauce, tester et déployer sur toutes mes machines ;)
Je vais pouvoir maintenir le parc à jour en sans avoir à lever le petit doigt c'est excellent !!!
Au cas ou quelqu'un chercherai à utiliser mas via Apple Remote Desktop je peux vous donner les quelques conseils suivants:
Pour installer homebrew (faire tourner cette commande avec un nom d'utilisateur administrateur défini):
#!/bin/sh
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Pour installer mas je rencontre encore quelques erreurs pour l'installation via ARD (mas: A full installation of Xcode.app 8.0 is required to compile this software. Installing just the Command Line Tools is not sufficient.) mais la recherche avance...
Correction: on peut utiliser la commande suivante sur un ordinateur ayant au moins ElCapitan (le 10.10.5 ne permet pas à moins d'avoir Xcode installé en intégralité):
#!/bin/sh
/usr/local/bin/brew install mas
J'avoue que je trouve ça rigolo et que ça me rappelle des souvenirs.
Et ne pas se fader des interfaces parfois trop encombrées pour un truc simple, c'est tout de même très agréable.