Fermer le menu
 

mas : utiliser le Mac App Store via le terminal

Nicolas Furno | | 11:00 |  50

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.

Catégories: 

Les derniers dossiers

Ailleurs sur le Web


50 Commentaires Signaler un abus dans les commentaires

avatar LeComFou 04/10/2016 - 11:08

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 04/10/2016 - 11:42

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

avatar polyzargone 04/10/2016 - 13:35 (edité)

@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 macG 04/10/2016 - 12:04

@ 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 04/10/2016 - 12:21

À mon tour de te remercier.

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

avatar polyzargone 04/10/2016 - 13:37 (edité)

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 04/10/2016 - 14:51

@ 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 04/10/2016 - 15:01

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 04/10/2016 - 15:10 (edité)

@ 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 05/10/2016 - 09:20

Génial ! Merci beaucoup !

avatar sinbad21 04/10/2016 - 11:13

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 macG 04/10/2016 - 11:20

@ 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 04/10/2016 - 11:31

@ Nicolas Furno

Cool, merci :)

avatar crash_47 04/10/2016 - 11:14 via iGeneration pour iOS

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 04/10/2016 - 11:21 via iGeneration pour iOS

Génial ! :o

avatar Performat 04/10/2016 - 11:24

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 04/10/2016 - 15:15

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

avatar jipeca 04/10/2016 - 11:26

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 macG 04/10/2016 - 11:29

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 04/10/2016 - 11:35 via iGeneration pour iOS

@innocente :
Mdr

avatar Rigat0n 04/10/2016 - 11:46 via iGeneration pour iOS

@innocente :
Genre avant d'installer un antivirus

avatar eldison 04/10/2016 - 11:30 via iGeneration pour iOS

Terrible ! Merci MacG

avatar r e m y 04/10/2016 - 11:34

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 macG 04/10/2016 - 12:01

@ 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 04/10/2016 - 12:09

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)

Pages