mas : utiliser le Mac App Store via le terminal

Nicolas Furno |

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.

mas en action dans le terminal, ici pour installer un logiciel. Cliquer pour agrandir
mas en action dans le terminal, ici pour installer un logiciel. Cliquer pour agrandir

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.

Installation effectuée, sans quitter le terminal. Cliquer pour agrandir
Installation effectuée, sans quitter le terminal. Cliquer pour agrandir

À 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.
Mises en garde

⚠️ Une restriction importante à noter toutefois : mas ne peut installer que les apps déjà achetées sur le Mac App Store. ⚠️

Vous pouvez télécharger et mettre à jour les apps associées à votre compte, celles que vous aviez achetées précédemment et celles qui sont affichées dans la liste d’achats. En revanche, vous ne pouvez pas effectuer d’achat, même pour une app proposée gratuitement.

C’est une limite imposée par Apple et il n’y a pas de solution pour la contourner.

Par ailleurs, les mises à jour système doivent toujours être installées via le Mac App Store, ou alors en utilisant cette autre commande dans le terminal (merci polyzargone) :

sudo softwareupdate -iva

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.

avatar LeComFou | 

AWESOMMMMEEE ! C'est génial ce truc !
Un jour on aura enfin un sudo mas update && upgrade pour installer les MAJ système !

avatar Bardyl | 

Les MAJ systèmes ça serait plutôt mas dist-upgrade ;-).

avatar polyzargone | 

@LeComFou

Tu peux déjà le faire :

sudo softwareupdate -iva

D'autres commandes dans le genre ici.

[EDIT]

Voir commentaire plus bas.

avatar Nicolas Furno | 
@ polyzargone : je n'avais même pas pensé à chercher si ça existait, merci pour l'info ! Je vais ajouter un mot à la news…
avatar polyzargone | 

À mon tour de te remercier.

Je ne connaissais pas mas qui m'a l'air nettement plus puissant pour tout le reste :).

avatar polyzargone | 

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)

avatar BeePotato | 

@ 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).

avatar polyzargone | 

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.

avatar BeePotato | 

@ 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. :-)

avatar chmox | 

Génial ! Merci beaucoup !

avatar sinbad21 | 

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 ?

avatar Nicolas Furno | 

@ sinbad21 : oui !

mas outdated pour avoir la liste des applications qui ont une mise à jour en attente. Ensuite, on peut faire mas upgrade identifiant pour installer qu'une seule mise à jour.

avatar sinbad21 | 

@ Nicolas Furno

Cool, merci :)

avatar crash_47 | 

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

avatar Tiroly | 

Génial ! :o

avatar Performat | 

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 !

avatar Cric | 

Exact, je me suis fait la même remarque ;-)
Merci pour l'info !

avatar jipeca | 

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.

avatar Florian Innocente | 

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.

avatar CNNN | 

@innocente :
Mdr

avatar Rigat0n | 

@innocente :
Genre avant d'installer un antivirus

avatar eldison | 

Terrible ! Merci MacG

avatar r e m y | 

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?)

avatar Nicolas Furno | 

@ 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…

avatar r e m y | 

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)

avatar Nicolas Furno | 
@ r e m y : ces mises à jour nécessitent une autre ligne de commande, cf le commentaire de polyzargone plus haut ou la news, puisque je l'ai ajoutée.
avatar occam | 

@nicolasf :

S u p e r cool ! Merci !

Reste à mettre un GUI dessus, et le tour est joué ;-)

avatar youpla77 | 

Pour le GUI ya l'app store ;)

avatar polyzargone | 

@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 :).

avatar r e m y | 

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.

avatar polyzargone | 

@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.

avatar mat 1696 | 

@polyzargone :
Je confirme tout ! Y compris l'icone de ML.... C'est quand même un bug vachement bizarre...

avatar Larme | 

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.

avatar Shralldam | 

Best. Tip. Ever.

avatar mat16963 | 

HS (quoi que...): Et toujours pas de Speial Event annoncé ou au moins en rumeurs pour de nouveaux Mac???

avatar r e m y | 

@mat1963
Pour les nouveaux Mac, il faut allumer un cierge!
Ca tombe bien, 12south en vend....

avatar cdp86 | 

Très bon article ! :)

Vraiment dommage que l'on ne puisse acheter par ce biais !

avatar CorbeilleNews | 

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 ... :)

avatar BeePotato | 

@ 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.

avatar nykk | 

et Port avec FreeBSD, ce n'est pas de l'UNIX ? ;)

avatar BeePotato | 

@ 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.

avatar Philactere | 

@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é.

avatar CorbeilleNews | 

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

avatar patrick86 | 

@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 ?

avatar Hydrog3n | 

"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.

avatar JLG47_old | 

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.

avatar harisson | 

On va enfin retrouver les vertus du terminal \o/

avatar docmib | 

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 !!!

avatar docmib | 

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

avatar Le docteur | 

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.

CONNEXION UTILISATEUR