Terminal : Homebrew 1.3 respecte le bac à sable de macOS

Nicolas Furno |

Homebrew est un gestionnaire de paquet pour macOS, un outil qui facilite l’installation de programmes à exécuter dans un terminal. La version 1.3.0 qui vient de sortir respecte désormais complètement le sandbox de macOS. De plus en plus imposée par Apple, cette protection limite chaque application à un nombre de dossiers très limités et surtout définis à l’avance. L’idée étant d’empêcher une app malveillante d’accéder à vos données importantes sans prévenir.

Homebrew à jour. Cliquer pour agrandir
Homebrew à jour. Cliquer pour agrandir

Dans le cas d’un programme comme Homebrew, ce n’était pas du tout une évidence. Les outils conçus pour une utilisation dans le terminal peuvent par défaut lire et écrire n’importe où et ils échappent totalement au sandbox. Avec cette mise à jour, le gestionnaire de paquets devient un bon élève et reste cloisonné dans ses dossiers, au moins pour installer ou mettre à jour ses paquets.

Les outils installés par son biais conservent en revanche un accès complet et ils doivent être utilisés avec précaution. C’est néanmoins une bonne nouvelle en soi pour éviter les détournements potentiels de Homebrew. L’an dernier, l’outil avait déjà été mis à jour pour respecter certains dossiers désormais réservés au système (lire : SIP : Homebrew s’adapte aux nouvelles règles de Sierra).

Cette mise à jour améliore aussi l’installation de Python et évite de gêner la version préinstallée par macOS. Homebrew commence aussi à prendre en charge High Sierra et corrige notamment un bug lié à APFS. À l’usage, cela veut dire que les programmes ne seront plus compilés à chaque fois, ce qui ralentissait considérablement les installations et mises à jour.

Installation d’un programme avec Homebrew, sur macOS High Sierra. Notez le respect du sandbox. Cliquer pour agrandir
Installation d’un programme avec Homebrew, sur macOS High Sierra. Notez le respect du sandbox. Cliquer pour agrandir

Homebrew est un outil totalement gratuit et disponible sur tous les Mac depuis OS X 10.5. Une connaissance de base du terminal est nécessaire pour l’utiliser : notre guide Tout savoir sur le terminal vous donnera ces bases nécessaires, même si vous n’avez jamais ouvert le terminal de votre vie.

avatar minipapy | 

Bonne nouvelle ! C'est un logiciel qui me sert au quotidien. :-)

avatar Moonwalker | 

Au passage, excellent ouvrage que ce Tout savoir sur le Terminal.

avatar Nicolas Furno | 

@ Moonwalker

Merci… :-)

J’en profite, s’il y a des lecteurs qui passent par là : si vous avez des requêtes pour une mise à jour, des sujets que vous aimeriez voir abordés, des questions… n’hésitez pas !

avatar Giloup92 | 

@nicolasf
Après iOS 11, une mise a jour de Siri et Messages (que je possède) serait bien.

avatar Nicolas Furno | 

@ Giloup92 :

Oups, je parlais surtout du livre sur le terminal ! ?

Mais c’est noté ! Je suis en pleine rédaction du livre sur iOS 11 qui est ma priorité jusqu’à sa sortie. Pour la suite, on verra ce que l’on peut faire.

avatar Giloup92 | 

@nicolasf
Je prendrai les Nouveautés d'iOS 11, comme j'ai pris les précédents.

avatar occam | 

@nicolasf

Bonjour Nicolas, pour répondre à votre requête :
Si vous pouviez étoffer un petit peu la section sur iTerm2 dans une prochaine édition de votre ouvrage, je pense que cela rendrait service à de nombreux lecteurs.
iTerm2 est en train d'évoluer assez rapidement, et plutôt bien.

Ceci dit, j'apprécie beaucoup votre bouquin, tel qu'il est.
Il est sur ma liste de références standard dont je gratifie collègues et amis. Si j'avais le temps, je vous proposerais d'en faire une traduction anglaise.

avatar Nicolas Furno | 

@occam

Merci pour ce retour. ?

Pourquoi pas en faire plus sur iTerm en effet. C’est une bonne idée, je vais la noter.

avatar Hertzfield (non vérifié) | 

Oh my ZSH

avatar Nicolas R. | 

Une question, moi qui utilise Macport depuis des années... ils en sont où sur tous ses points ?

avatar C1rc3@0rc | 

J'avais (re)testé Homebrew il y a 8 mois, je suis revenu a MacPort.
Le hic, avec MacPort, c'est qu'il va etre bloqué a un moment donné par MacOS et SIP. Mais sinon, il est plus complet.

avatar Nicolas Furno | 

@C1rc3@0rc

Qu’est ce qui vous manque dans Homebrew ? J’ai toujours eu l’impression que c’était l’inverse et que MacPort est moins complet. ?

avatar Nicolas R. | 

En fait ils se ressemblent, mais :
- Macport a beaucoup plus de packages
- Macport est une application native (contrairement à Homebrew en Ruby, pour moi Ruby → direct poubelle)
- Macport gère les groupes : https://cl.ly/loHM

À toi de me dire ce que tu entends par "moins complet".

avatar Nicolas Furno | 

@ SpleenXXX :

Moins de paquets et/ou moins à jour. Mais il faudrait peut-être que je réessaie MacPort, ça fait des années que je n’ai pas essayé.

Pour le non natif, en quoi est-ce que cela pose un problème à l’usage ? ?

avatar Nicolas R. | 

Essentiellement la rapidité d'exécution (recherche, compilation).
Par contre, je me posais une vraie question quant à l'intégration de Macport aux systèmes récents (quid SIP, APFS, etc). Homebrew semble par contre très dépendant (mieux intégré) de macOS, là où MP vie sa vie.

avatar Nicolas Furno | 

@SpleenXXX

La recherche, je demande à voir, même si je ne trouve pas Homebrew lent. Éventuellement la recherche de nouvelles versions…

La compilation, quand elle est nécessaire, se fait probablement avec les mêmes outils UNIX de base dans les deux cas. En tout cas, Homebrew utilise le trio configure/make/make install comme si on le faisait à la main, Ruby n’entre pas en ligne de compte.

avatar harisson | 

@Nicolas Furno

C'est parce que tu n'utilises pas des apps multiplateformes "exotiques" ciblées à la base pour linux/win.

avatar Nicolas Furno | 

@harisson

Sans doute, en tout cas, j’ai jamais trouvé une app ou un outil absent de Homebrew, du moins à ma connaissance.

Ou alors il nécessitait npm ou un gestionnaire équivalent dans un autre langage, mais ça me semble normal dans ce cas de figure.

avatar harisson | 

@Nicolas Furno

Par exemple, je dois utiliser OpenVibe en ce moment et l'INRIA n'a pas les ressources pour proposer une version Mac (sic !), je me suis mis en tête de me compiler une version Mac et (outre le fait qu'il y a du code à modifier) quelques dépendances ne sont pas présentes dans Homebrew.

avatar Nicolas Furno | 

@harisson

Je vois, c‘est en effet un usage pointu. :-)

Toutes les dépendances étaient proposées dans MacPort ?

avatar harisson | 

Oui, je ne me souviens plus trop de tous les détails mais je sais qu'il manquait, entre autres, le sdk Ogre 3D dans Homebrew.

avatar Omega__3 | 

"Homebrew est un gestionnaire de paquet pour macOS, un outil qui facilite l’installation de programmes à exécuter dans un terminal"

Et pas seulement ! Grace aux cask, il est aussi possible de télécharger, désarchiver et installer une application .app compatible avec son système en une ligne de commande.

Exemple: ~$ brew cask install iina

Homebrew est vraiment un outil fantastique oué !

avatar bunam | 

Il faut qu'ils travaillent certains points comme l'automatisation du suivit de certain cask et la mise à jour, car Brew est très bien pour installer, mais pas pour mettre jour les applications qui sont dans le dossier Applications. Pour les binaires dans leur arborescence, ça va.

J'ai aidé pour faire un script pour générer une recette
https://pastebin.com/W5LsvG2e

Ils n'ont jamais voulu le coller dans leur source ou ailleurs afin de suivre les mises à jours de LibreOffice, et je ne sais pas pourquoi.

Quand on voit les changements dans la recette :
https://github.com/caskroom/homebrew-cask/pull/37187/files
on n’a pas envie de le faire à la main ;p

Sinon j'utilise principalement MacPort puis ensuite Brew.
J'aimerais qu'Apple sorte un gestionnaire de package pour gérer tout ce qui sort de son MAS et ses mises à jour système.

avatar iTruc | 

La réponse que te sortirait Apple si tu le leur suggérais, c'est « tout doit passer par le MAS ».

Mais sinon, en effet un gestionnaire de paquet est vraiment ce qu'il manque de base sur le système.

avatar C1rc3@0rc | 

Moais un MAS en ligne de commande en sorte ;)

avatar Nico S | 

@bunam

L'App Store est utilisable en ligne de commande : https://github.com/mas-cli/mas

Pour les software updates, il y a aussi la commande softwareupdate bien pratique.

Ca me permet d'avoir un script qui me réinstalle toutes mes apps lors de changement de Mac ou d'installation d'une VM macOS : 1. Prends les apps de l'app store 2. Installe brew 3. Installe les apps brew 4. Passe les updates. ...le temps d'aller manger, tout est fait quand je reviens.

avatar bunam | 

@Nico S

Je connais 'mas' mais :
- ce n'est pas Apple
- comment faire pour avoir la liste des apps que tu as dans ta liste d'achat (je ne vois que les apps que j'ai déjà téléchargés) (https://github.com/mas-cli/mas/issues/2)

Pour softwareupdate, je ne m'en sert par pour le moment, j'utilise App Store.

En fait Apple a une vision bien trop monolithique de son système, et quand on connaît bien yum sur CentOS on est bien content de trouver MacPorts, Brew, gem, npm sur MacOS !!

avatar harisson | 

Bon, il faudra toujours jongler entre MacPort et Homebrew ^_^

avatar GloubiBoulga | 

Merci pour l'article. Question de forme et pas de fond (désolé, c'est encore l'été) : comment vous faites pour avoir ce thème "dark", y compris les bordures ?

avatar Nicolas Furno | 

@ GloubiBoulga :

C’est la version bêta d’iTerm qui est comme ça, je ne crois pas que ce soit une option standard par ailleurs.

avatar GloubiBoulga | 

Thanks.

avatar nayals | 

C'est joli cette barre de titre du Terminal en noir, c'est lié à High Sierra ou il y a une astuce ?
EDIT : c'est marqué juste au-dessus, désolé :D

CONNEXION UTILISATEUR