Homebrew vous donne le meilleur de Linux sur Mac
Sommaire
Résumé
-
Les commandes macOS diffèrent souvent de leurs versions Linux en raison de l'incohérence BSD vs GNU.
-
Homebrew simplifie l'installation du logiciel de ligne de commande manquant sur macOS.
-
Homebrew aide à gérer l'environnement de chemin pour les commandes installées, à éviter les doublons et à garantir la priorité correcte.
Ouvrez le terminal sur macOS, et il est facile d'imaginer que vous courez dans un environnement Linux complet. Ces commandes ne sont cependant pas exactement ce à quoi vous êtes habitué. Heureusement, il y a une solution facile.
Quel est le problème avec MacOS?
Depuis le lancement d'OSX en 2001, MacOS a expédié avec une suite d'utilitaires de ligne de commande qui seront familiers à tous ceux qui ont utilisé Linux: Grep, Find, Vim et bien d'autres. Ce sont généralement les versions BSD de chaque programme, au lieu des versions GNU avec lesquelles la plupart des distributions Linux sont livrées, mais elles sont largement compatibles.
Cependant, l'utilisation par Apple du logiciel BSD plutôt que GNU provoque deux problèmes. Premièrement, certaines des versions BSD fonctionnent légèrement différemment, avec des options alternatives, un comportement inattendu ou des extensions inconnues. Vous pouvez généralement résoudre ces problèmes en lisant les pages de l'homme appropriées ou simplement en vous adaptant au comportement de commande BSD. Mais ces incohérences peuvent être gênantes à gérer, surtout si vous êtes à double boutage ou autrement en utilisant une combinaison de systèmes Mac et Linux.
En rapport
BSD: Qu'est-ce que c'est et en quoi est-ce différent de Linux?
Les ABC de BSD.
Parfois, ces différences sont dues à l'âge des outils; Les versions MAC BSD ont tendance à être plus anciennes que leurs équivalents GNU. Apple ne met pas toujours à jour ces commandes très souvent non plus, afin qu'elles puissent devenir plus obsolètes entre les versions du système d'exploitation.
Un problème plus important est que MacOS ne soit pas expédié avec une version équivalente de chaque commande à laquelle vous pourriez être habitué. Ce ne sera pas toujours un problème, mais il y a des omissions surprenantes, comme l'outil d'arbre par exemple.
La solution à ce problème était de construire à partir de la source: Téléchargez le code du programme réel, exécutez un script de configuration, puis utilisez la commande Make pour tout compiler. Oh, et priez pour que tout fonctionne correctement dans votre environnement.
Alternativement, vous pouvez essayer de trouver un binaire pré-compilé pour votre architecture, mais ce processus peut être fastidieux et que les logiciels compilés peuvent être incompatibles avec votre environnement. Cependant, de nos jours, il existe de plus belles façons de faire gratter vos commandes macOS.
Comment obtenir des commandes manquantes
Depuis 2016, Homebrew a offert la meilleure façon d'installer des logiciels de ligne de commande sur votre Mac. Homebrew est un gestionnaire de packages qui vous permet d'installer un logiciel sans avoir à le compiler à partir de la source. Comme tout gestionnaire de packages, Homebrew s'occupe de la compilation et de l'installation. Il gère également le réseau de dépendances qu'un programme pourrait avoir besoin d'exécuter, il est donc beaucoup plus facile que de construire à partir de la source.
Vous pouvez utiliser Homebrew pour installer une large gamme de programmes, pas seulement ceux limités au Mac App Store. Cela a ouvert l'écosystème Mac à de nombreuses applications open source auxquelles les utilisateurs de Linux sont habitués. De nombreux développeurs de logiciels gratuits sont découragés par la nature fermée du magasin d'Apple, soit pour des raisons pratiques ou idéologiques. Homebrew a ouvert l'accès à plus de logiciels gratuits de qualité que jamais auparavant.
La version actuelle – 4.4 – Supports Mac OS rejette Ventura (13), Sonoma (14) et Sequoia (15).
Une fois que vous avez installé Homebrew, l'ajout de commandes manquantes est un jeu d'enfant. Pour installer le programme WGET, par exemple, utilisez cette commande:
brew install wget
Si c'est encore trop compliqué, vous pouvez utiliser une interface graphique à la maison comme Cork. Mais, soyons réalistes: si vous cherchez à installer et à utiliser le logiciel de ligne de commande, vous serez plus que confortable à l'aide de la commande Brew.
Sur un Silicon Mac, Homebrew installe des programmes dans / opt / homebrew / bin. Il devrait également ajouter cet emplacement à votre chemin, qui ressemblera donc à quelque chose comme:
...:/opt/homebrew/bin:.../usr/local/bin:...:/bin:...
En d'autres termes, les commandes à homebrew ont pris la priorité, exécutant à la place des doublons fournis par le système dans / bin, par exemple.
En rapport
Quel est le chemin Unix et comment ajoutez-vous des programmes?
Le chemin Unix est une variable d'environnement qui indique au shell quels répertoires il devrait rechercher lorsque vous émettez des commandes.
Vous pouvez utiliser la commande qui pour vérifier l'emplacement de n'importe quel programme, par exemple
$ which find
/usr/bin/find
L'option -a vous affichera tous les emplacements d'une commande dans votre chemin, vous pouvez donc l'utiliser pour vérifier les doublons et vérifier que vous utilisez la bonne version:
$ which -a (...)
N'oubliez pas que la plupart des commandes acceptent une option –version ou – help qui peut vous dire quelle version vous utilisez. Un autre détail important est que les outils GNU sont souvent installés avec un nom différent pour éviter les affrontements. Par exemple, le package Homebrew pour SED est appelé GNU-SED, et il s'installe comme GSED:
La version BSD de SED n'a pas vraiment de numéro de version, mais sa page d'homme dans Sequoia le date jusqu'en juin 2020.
brew install coreutils
En rapport
Comment installer Homebrew sur un Mac
Homebrew est un gestionnaire de packages qui facilite l'installation des services publics open source et des applications à part entière que de saisir quelques commandes dans le terminal.
Logiciel manquant à rechercher
La première fois que j'ai réalisé que quelque chose était un peu «désactivé» avec l'outillage de MacOS, c'était lorsque j'ai atteint le fidèle utilitaire de fichiers, Tree. Maintenant, l'arbre n'est pas essentiel, mais c'est incroyablement utile. La commande montre la hiérarchie complète d'un répertoire, imprimant tous les fichiers et dossiers en dessous, comme un LS suralimenté. Sauf qu'il ne fera pas cela sur une installation de macOS de vanille:
J'avais l'habitude de résoudre ce problème avec un script de shell rudimentaire pour exécuter la même fonction. Mais ce script manquait toutes les options de Tree, qui sont étonnamment abondantes:
Homebrew vous permet d'installer l'arbre, fournissant la commande complète dans toute sa gloire. Ceci est la dernière version de Tree: 2.2.1 qui est publiée en novembre 2024.
Un autre programme très courant qui est visible en son absence est Emacs. Certes, Emacs est souvent absent des distros Linux modernes aussi, mais cela ne rend pas son omission de macOS plus défendable.
Emacs est un éditeur de texte populaire et une alternative puissante à VIM, vous pouvez donc l'utiliser ou l'essayer si vous ne l'avez pas fait auparavant. Heureusement, Emacs n'est que l'autre côté d'un rapide Brew Installer Emacs.
La commande Find est l'un des nombreux qui, bien que disponibles sur macOS, agissent un peu différemment dans son incarnation BSD. Les deux versions prennent en charge les options et le comportement légèrement différents, ce qui rend difficile de basculer entre eux.
La commande Find de Homebrew fait partie du package FindUtils, afin que vous puissiez l'installer comme ceci:
brew install findutils
Vous devez savoir que Homebrew installe la commande en tant que GFind. Homebrew utilise souvent cette convention de préfixation d'équivalents GNU des commandes intégrées avec un «G» afin que les deux versions puissent coexister:
Il s'agit de garantir que la recherche BSD par défaut a une priorité, mais elle peut être déroutante et maladroite à retenir. Si vous souhaitez utiliser GNU Find par défaut, vous pouvez ajouter ce répertoire à votre chemin:
/opt/homebrew/opt/findutils/libexec/gnubin
Ce répertoire doit avoir un lien symbolique nommé « Find » qui pointe vers l'exécutable « GFind » dans / opt / homebrew / bin. N'oubliez pas de l'ajouter avant / usr / bin sur votre chemin pour vous assurer que votre coquille trouve d'abord la version GNU.
Homebrew vous permet d'installer des commandes vitales, y compris des équivalents GNU à laquelle vous pourriez être plus habitué, qui offrent un comportement amélioré ou alternatif.