Fermer le menu
 

Un script pour configurer automatiquement un nouveau Mac

Nicolas Furno | | 10:48 |  37

Changer d’appareil iOS est beaucoup plus simple depuis que l’on peut sauvegarder entièrement son iPhone ou iPad et restaurer la sauvegarde sur le nouvel appareil. Malheureusement, la situation n’est pas aussi simple sur Mac, où il faut transférer une sauvegarde, soit en passant par un clone, soit via Time Machine. Et si on ne veut pas récupérer tous les documents, mais juste ses logiciels et réglages — et ainsi repartir sur une base plus saine —, il n’y a aucune solution automatique.

C’est dans ce cas-là qu’interviennent les scripts d’installation, à utiliser sur un nouveau Mac ou sur une machine remise à zéro. L’idée est de définir une liste de logiciels à installer et de paramètres à configurer après l’installation de macOS. Une fois cette liste créée, le script va faire travailler le Mac pour vous et installer les apps que vous jugez nécessaires, mais aussi modifier les paramètres de base de votre Mac et de ses logiciels.

Mon script d’installation en action, ici pendant le téléchargement et l’installation de Google Drive. Cliquer pour agrandir
Mon script d’installation en action, ici pendant le téléchargement et l’installation de Google Drive. Cliquer pour agrandir

Un tel script sera nécessairement personnel et je ne peux pas vous fournir une solution clé en main. Néanmoins, j’ai mis au point un script d’installation et de configuration pour mon Mac, que j’ai utilisé d’abord sur mon hackintosh, puis sur mon MacBook Pro 15 pouces de 2012 vidé pour l’occasion. Après quelques ajustements, j’ai réussi à le faire fonctionner d’un bout à l’autre sans problème particulier.

Vous ne pouvez pas vous servir du script immédiatement, mais vous pouvez l’utiliser comme base pour créer le vôtre, en fonction de vos besoins. Cet article vous indiquera comment créer une version adaptée à partir de mon script, et comment l’utiliser sur un nouveau Mac.

Un script d’installation, qu’est-ce que c’est ?

Au cœur de macOS, se trouve un noyau dérivé d’UNIX. Le système d’Apple bénéficie de nombreuses fonctions qui ne sont pas mises en avant, mais qui sont bien pratiques quand on cherche à automatiser son ordinateur. Le Terminal de macOS donne accès au même bash que les distributions GNU/Linux et aux nombreux outils en ligne de commande associés.

Un script d’installation est un fichier texte constitué d’une série de lignes de commande qui seront exécutées l’une après l’autre. Son extension en .sh et la première ligne (#!/bin/sh) servent à indiquer à macOS comment traiter le fichier, mais vous pouvez vous contenter de l’ouvrir dans TextEdit ou n’importe quel autre éditeur de texte pour le modifier.

Les premières lignes de mon script Cliquer pour agrandir
Les premières lignes de mon script Cliquer pour agrandir

Nous verrons dans la partie suivante comment l’exécuter, mais pour le moment, vous pouvez récupérer le script à cette adresse et voir à quoi il ressemble.

Si vous n’êtes pas familier avec GitHub, vous pouvez télécharger l’intégralité d’un projet en cliquant sur le bouton vert Clone or download à droite et sur Download ZIP. Cliquer pour agrandir
Si vous n’êtes pas familier avec GitHub, vous pouvez télécharger l’intégralité d’un projet en cliquant sur le bouton vert Clone or download à droite et sur Download ZIP. Cliquer pour agrandir
L’essentiel est contenu dans ce fichier de 8 Ko qui contient toutes les commandes nécessaires.
L’essentiel est contenu dans ce fichier de 8 Ko qui contient toutes les commandes nécessaires.

Ouvrez le fichier post-install.sh pour regarder ce qu’il contient. Ne prenez pas peur, ce n’est pas aussi compliqué qu’on pourrait le croire. Les premières lignes doivent être maintenues telles qu’elles sont, elles servent à installer les outils de base : Homebrew, Cask et mas.

Installation de Homebrew, et mise à jour de sa base de données.
Installation de Homebrew, et mise à jour de sa base de données.

Homebrew, c’est un outil en ligne de commande qui sert à installer d’autres outils en ligne de commande. C’est aussi un gestionnaire de paquets qui facilite leur installation et aussi les mises à jour successives. Cask est un utilitaire chargé d’installer des logiciels et mas fait la même chose pour les applications proposées uniquement dans le Mac App Store (lire : mas : utiliser le Mac App Store via le terminal).

Une fois ces trois outils installés, le script consiste essentiellement en une série d’instructions pour installer tous les logiciels et tous les outils qui me sont nécessaires au quotidien. Voici un extrait du script en guise d’exemple :

brew install hugo
brew cask install iterm2 github-desktop textmate tower coda
install "Xcode"
  • la première ligne installe un outil en ligne de commande (hugo, le générateur de sites que l’on utilise pour le site dédié aux keynote) avec Homebrew ;
  • la deuxième installe une série de logiciels avec Cask : vous pouvez saisir un logiciel par ligne, ou les enchaîner avec les noms séparés par des espaces comme ici où cinq logiciels seront installés en une fois ;
  • et la troisième ligne installe Xcode depuis le Mac App Store avec mas.
mas ou install ?

Les plus attentifs l’auront peut-être remarqué, les apps du Mac App Store n’utilisent pas la commande mas dans mon script. C’est une petite astuce bien pratique que j’ai mise en place : une fonction, au début du script, permet ensuite de simplifier l’installation avec la commande install, puis le nom d’une app entre guillemets.

Cette fonction simplifie l’utilisation en chaîne de mas : au lieu d’une série d’identifiants numériques, vous pouvez utiliser le nom des apps.
Cette fonction simplifie l’utilisation en chaîne de mas : au lieu d’une série d’identifiants numériques, vous pouvez utiliser le nom des apps.

Rendons à César, etc. : j’ai piqué l’idée à cet autre utilisateur de mas.

Mon conseil : faites une liste de tous les logiciels que vous voulez installer sur votre Mac pour préparer votre script. Tout ce qui est disponible dans le Mac App Store et tout ce qui est déjà associé à votre compte sera téléchargé avec mas. Tout ce qui n’est pas proposé dans le Mac App Store est peut-être disponible avec Cask : utilisez le champ de recherche du projet pour trouver si une app est proposée.

Dans quelques cas, comme pour le lecteur de vidéo mpv (ligne 104), Homebrew est la meilleure solution. Mais la majorité de ce qui est installé passe soit par mas, soit par Cask. Et donc, pour créer votre script, la majorité de votre travail consistera à trouver comment installer un logiciel et à ajouter une ligne à chaque fois dans le fichier.

La deuxième partie du script, à partir de la ligne 113, ne sert plus à installer des apps, mais plutôt à configurer le Mac et les applications. Il s’agit essentiellement de commandes default writes qui changent les préférences par défaut de macOS ou de certains logiciels. Je n’ai pas inventé ces commandes et je ne les connais pas par cœur non plus : pour trouver des idées et trouver les bonnes commandes, faites comme moi, inspirez-vous de projets existants. Parmi ceux que j’ai utilisé, voici le plus complet et ses commentaires vous permettront de connaître la fonction de chaque commande.

La fin du script configure le Mac comme je le souhaite. Plus encore que la liste des apps, c’est à vous d’adapter cette partie en fonction de vos besoins.
La fin du script configure le Mac comme je le souhaite. Plus encore que la liste des apps, c’est à vous d’adapter cette partie en fonction de vos besoins.
Catégories: 

Les derniers dossiers

Ailleurs sur le Web


37 Commentaires Signaler un abus dans les commentaires

avatar slinkytheboy 09/01/2017 - 10:51 via iGeneration pour iOS

Excellent 👍
Merci ☺

avatar Liena 09/01/2017 - 10:54 via iGeneration pour iOS

Super merci 👍🏻👍🏻

avatar patchoulol 09/01/2017 - 11:09

Excellent ! J'ai testé une version perso de ce script la semaine dernière, c'est très pratique.

L'étape suivante est la génération automatique du script en fonction des outils déjà installés sur le Mac, un peu comme mackup permet le backup/restore. Des pistes ont-elles été déjà explorées dans ce sens ?



avatar Alex56 09/01/2017 - 11:11 (edité)

Je ne vois pas l'intérêt, il y a une solution automatique : brancher le nouveau mac sur l'ancien avec un câble éthernet et laissez Mac OS récupérer tout le nécessaire.

avatar leolelego 09/01/2017 - 11:28 (edité)

brancher un mac avec l'ancien par Ethernet va cloner la machine.Et donc potentiellement récupérer les défauts qu'elle avait.

Ensuite, l'intérêt est aussi si tu configures plusieurs machine, si tu veux qu'elles soient différentes mais avec une meme base (installation de soft par défaut, configuration par défaut etc).

avatar denantoi123 09/01/2017 - 11:37 via iGeneration pour iOS

@Alex56

Câble ethernet ?
Tu fais comment pour le brancher sur des:
- MacBook
- MacBook Pro (tous les Retina et les touchbar)
- MacBook Air

En gros toute la gamme des mac portables...

À oui acheter un adaptateur...

avatar Ginger bread 09/01/2017 - 12:52 via iGeneration pour iOS

@Alex56

Si tu as 2 macs oui.
Mais si tu souhaites faire une clean install sans time machine ou clone. Relis l article.

avatar locshirk 09/01/2017 - 11:13

Oui excellent comme script à adapter en fonction des besoins.

Petite question @Nicolas Furno : Y a t il un endroit ou trouver tout le contenu de tous les fichiers "com.apple…". Pour pouvoir régler toutes les préférences aux petits oignons selon notre utilisation ?

Merci d'avance

avatar Nicolas Furno macG 09/01/2017 - 11:17 (edité)

@ locshirk : à ma connaissance, non, du moins pas de façon exhaustive et surtout pas à jour. À une époque, on trouvait des listes assez complètes, mais elles ne valent plus grand-chose si elles n'ont pas été adaptées aux dernières versions de macOS.

Mon conseil dans l'article est la meilleure option, je crois : piocher dans les listes existants. Commencez par ce projet : https://github.com/joeyhoer/starter

Si quelqu'un a mieux, qu'il n'hésite pas à partager !

avatar locshirk 09/01/2017 - 11:29 (edité)

Ok ça marche 😉 Merci à toi de la réponse

avatar P-AAAA 09/01/2017 - 11:58 via iGeneration pour iOS

@nicolasf

Super ce genre d'article ! À refaire au plus vite , surtout pour les lundi difficiles 🙈

avatar huexley 09/01/2017 - 11:15 (edité)

Merci très cool !

avatar Wolf 09/01/2017 - 11:21 via iGeneration pour iOS

Merci, mais non merci.
Je préfère me le faire à la paluche, a l'ancienne, je vais gagner du temps.

avatar leolelego 09/01/2017 - 11:21

Si vous voulez aller plus loin, regardez la pratique dites des "dotfiles". C'est exactement ça, mais avec ce mot clé vous trouverez plein de truc en plus sur le net.

avatar emourgues 09/01/2017 - 11:26 via iGeneration pour iOS

Excellent merci

avatar deltiox 09/01/2017 - 11:43 via iGeneration pour iOS (edité)

Très bien👍
Il ne reste plus qu'à Apple a nous laisser faire de tels scripts AVEC l'achat en ligne de commande et ce serait super pour des installations

Aujourd'hui c'est soit ce script ou d'autres pour des Apps déjà achetées soit une integration avec un MDM

avatar bunam 09/01/2017 - 11:46 (edité)

Pour ceux qui veulent ajouter LibreOffice en français direct :

brew cask install --force libreoffice libreoffice-language-pack --language=fr

Pour mettre à jour cette partie (brew cask ne gère pas encore correctement la détection des mise à jour) :

brew cask install --force libreoffice libreoffice-language-pack --language=fr

Attention cela télécharge +600 Mo ...

(j'ai contribué à la recette libreoffice-language-pack)

avatar occam 09/01/2017 - 12:04 via iGeneration pour iOS

So cool !

avatar Olivier S 09/01/2017 - 12:45 via iGeneration pour iOS

Top vraiment super 😊
On en voudrait des beaucoup plus comme cela
👍

avatar Malum 09/01/2017 - 12:45

Mais ça ne sert à rien en 2017 Apple cesse la fabrication des Mac donc plus de nouveau Mac, rien à transférer même aux petits oignons …

avatar StephanMart 09/01/2017 - 13:24 via iGeneration pour iOS

@Malum

Qu'est ce qu'il ne faut entendre, comme inepties .

avatar LeSedna 09/01/2017 - 12:53 via iGeneration pour iOS

Le temps de mettre au point son script on a déjà installés tous ses logiciels à la main surtout avec un bonne fibre qui télécharge tout en quelques secondes. Ce script a du sens Si pour une raison quelconque on doit répéter le processus, autrement je ne vois pas un grand intérêt !

avatar bigtob14 09/01/2017 - 13:16

@LeSedna
C'est idiot de dire que ça ne sert à rien. Ca sert déjà à... s'instruire, ce qui est déjà très positif.
De plus, si on ne veut pas installer les applications automatiquement, on peut tout de même utiliser ce genre de script pour automatiser les réglages de macOs, lors d'une réinstallation.
Et si au final on n'en a pas du tout l'utilité, on peu en profiter pour s'initier à l'écriture de scripts, ce qui permettra ensuite de proposer ses créations à la communauté des utilisateurs d'OSX.

avatar sekaijin 09/01/2017 - 13:54 (edité)

perso j'ai installé un nouveau disque et j'ai installé MacOS
l'installa m'a alors proposé de transférer les élément de mon ancien disque.
et il m'a laissé le choix
j'ai choisi les application à conserver et celle à jeter
j'ai choisi les users à garder et à supprimer
j'ai choisi les documents à garder ou à ne pas garder

Je ne vois pas bien ce qu'apporte le script
A+JYT

avatar huexley 09/01/2017 - 14:31

Une clean install au lieu d'importer toutes les vieilles merdes ?

Pages