GNU/Linux >> Tutoriels Linux >  >> Linux

Facilitez le passage de Mac à Linux avec Homebrew

Le projet Homebrew a commencé sa vie en tant que gestionnaire de packages non officiel de style Linux pour Mac. Ses utilisateurs sont rapidement tombés amoureux de son interface conviviale et de ses invites utiles, et, dans ce qui peut sembler un étrange coup du sort, il a été porté sur Linux.

Au début, il y avait deux projets distincts pour macOS et Linux (Homebrew et Linuxbrew), mais maintenant, le noyau de Homebrew gère les deux systèmes d'exploitation. Parce que j'ai fait un voyage pour migrer de Mac vers Linux, j'ai regardé comment mes applications open source préférées pour macOS fonctionnent sur Linux, et j'ai été heureux de constater que le support de Homebrew pour Linux brille vraiment.

Pourquoi Homebrew sous Linux ?

Une première réponse raisonnable à Homebrew de la part d'utilisateurs Linux de longue date est : " Pourquoi ne pas simplement utiliser… " où le mot suivant est un gestionnaire de packages pour leur version préférée de Linux. Les systèmes basés sur Debian ont déjà apt , les systèmes Fedora ont dnf et yum , et des projets comme Flatpak et AppImage fonctionnent pour combler l'écart en s'exécutant sans problème sur les deux. J'ai passé un temps décent à utiliser toutes ces technologies, et je dois dire que chacune est puissante en soi.

Alors pourquoi est-ce que je m'en tiens à Homebrew ? Tout d'abord, il m'est incroyablement familier. J'apprends déjà beaucoup en passant à des alternatives plus open source pour mes anciens outils propriétaires, et garder quelque chose de familier, comme Homebrew, m'aide à me concentrer sur l'apprentissage d'une chose à la fois au lieu d'être submergé par toutes les différences entre les systèmes d'exploitation .

De plus, je n'ai pas encore vu de gestionnaire de paquets aussi gentil avec l'utilisateur que Homebrew. Les commandes sont bien organisées, comme le montre la sortie d'aide par défaut :

$ brew -h 
Example usage:
  brew search [TEXT|/REGEX/]
  brew info [FORMULA...]
  brew install FORMULA...
  brew update
  brew upgrade [FORMULA...]
  brew uninstall FORMULA...
  brew list [FORMULA...]

Troubleshooting:
  brew config
  brew doctor
  brew install --verbose --debug FORMULA

Contributing:
  brew create [URL [--no-fetch]]
  brew edit [FORMULA...]

Further help:
  brew commands
  brew help [COMMAND]
  man brew
  https://docs.brew.sh

Cette sortie courte peut être confondue avec une limitation, mais un rapide coup d'œil dans l'une des sous-commandes révèle une multitude de fonctionnalités. La liste ci-dessus ne fait que 23 lignes, mais le install la sous-commande contient 79 lignes d'informations disponibles pour l'utilisateur avancé :

$ brew --help | wc -l 
23
$ brew install --help | wc -l
79

Il a des options pour ignorer ou installer des dépendances, choisir de construire à partir de la source et avec quel compilateur, et utiliser des commits Git en amont exacts par rapport à la version officielle « embouteillée » de l'application. Qu'il suffise de dire que Homebrew s'adresse aussi bien aux experts qu'aux novices.

Commencer avec Homebrew sur Linux

Si vous voulez essayer Homebrew, il existe un excellent script en une ligne pour l'installer sur Mac ou Linux :

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Cette commande exécute immédiatement le script d'installation Homebrew. Si vous êtes plus prudent, vous pouvez curl le fichier, puis exécutez-le manuellement après examen :

$ curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh --output homebrew_installer.sh
$ more homebrew_installer.sh # review the script until you feel comfortable
$ bash homebrew_installer.sh

Les instructions Linux incluent des configurations pour les fichiers de points, en particulier ~/.profile sur les systèmes Debian et ~/.bash_profile sur Fedora :

$ test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
$ test -r ~/.bash_profile && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.bash_profile
$ echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile

Pour confirmer l'installation, l'équipe Homebrew fournit un hello vide formule pour tester :

$ brew install hello
==> Downloading https://linuxbrew.bintray.com/bottles/hello-2.10.x86_64_linux.bottle.tar.gz
######################################################################## 100.0%
==> Pouring hello-2.10.x86_64_linux.bottle.tar.gz
?  /home/linuxbrew/.linuxbrew/Cellar/hello/2.10: 52 files, 595.6KB

Il semble que mon installation fonctionne sans aucun problème, je vais donc explorer un peu plus.

Brew pour les utilitaires de ligne de commande

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

Homebrew se vante d'être une application qui "installe les éléments dont vous avez besoin que [Linux] n'a pas" par défaut.

Vous utilisez le brew commande pour installer l'un des utilitaires de ligne de commande fournis dans Homebrew. Ces définitions de packages sont appelées "formules", et elles sont compilées et partagées via des "bouteilles". Il existe une foule d'autres termes axés sur la bière dans l'univers Homebrew, mais le principal point à retenir du gestionnaire de packages est de rendre le logiciel facilement accessible.

Quel type de logiciel ? Pensez aux choses qui sont utiles pour les nerds comme moi (et, puisque vous lisez ceci, probablement vous aussi). Par exemple, le pratique tree commande qui affiche les structures de répertoires ou pyenv , que j'utilise pour gérer plusieurs versions de Python sur un Mac.

Vous pouvez voir toutes les formules disponibles en utilisant la search commande, et en ajoutant le wc la commande montre combien sont disponibles :

# -l counts the number of lines
$ brew search | wc -l
    5087

Il existe plus de 5 000 formules à ce jour, ce qui représente une quantité incroyable de logiciels. La mise en garde est que toutes les formules ne fonctionneront pas sous Linux. Il y a une section dans la sortie de brew search --help qui affiche des indicateurs pour filtrer les logiciels en fonction du système d'exploitation sur lequel ils s'exécutent. Il lance la liste des référentiels de chaque système d'exploitation dans un navigateur. J'utilise Fedora, donc je vais essayer avec :

$ brew search --fedora tree

Le navigateur charge https://apps.fedoraproject.org/packages/s/tree , qui affiche les options disponibles pour Fedora. Il existe également d'autres façons de naviguer. Les formules sont codifiées et centralisées dans les référentiels principaux qui sont répartis par système d'exploitation (Mac dans Homebrew Core et Linux Core pour les bits Linux). Ils sont également disponibles via l'API Homebrew et répertoriés sur le site Web.

Même avec toutes ces options, je trouve toujours la plupart de mes nouveaux outils grâce aux recommandations d'autres utilisateurs. Voici quelques-uns de mes favoris, si vous cherchez l'inspiration :

  • pyenv , rbenv , et nodenv pour gérer les versions Python, Ruby et Node.js (respectivement)
  • imagemagick pour les modifications d'images scriptables
  • pandoc pour les conversions de documents scriptables (je passe souvent de .docx à .md ou .html)
  • hub pour une meilleure expérience Git pour les utilisateurs de GitHub
  • tldr pour des exemples d'utilisation d'un utilitaire de ligne de commande

Pour explorer Homebrew, jetez un œil aux pages tldr, qui est une alternative conviviale au défilement des pages de manuel d'une application. Confirmez qu'il est disponible en exécutant search :

$ brew search tldr
==> Formulae
tldr ✔

Succès! La coche vous indique qu'il est disponible. Vous pouvez maintenant l'installer :

$ brew install tldr
==> Downloading https://linuxbrew.bintray.com/bottles/tldr-1.3.0_2.x86_64_linux.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring tldr-1.3.0_2.x86_64_linux.bottle.1.tar.gz
?  /home/linuxbrew/.linuxbrew/Cellar/tldr/1.3.0_2: 6 files, 63.2KB

Homebrew propose des binaires prédéfinis, vous n'avez donc pas à créer à partir du code source sur votre machine locale. Cela permet d'économiser beaucoup de temps et de réduire le bruit du ventilateur du processeur. Une autre chose que j'apprécie à propos de Homebrew est que vous pouvez apprécier cette fonctionnalité sans comprendre exactement ce que cela signifie. Si vous préférez le construire vous-même, utilisez le -s ou --build-from-source drapeau avec brew install pour compiler la formule depuis la source (même si une bouteille existe).

De même, la complexité sous le capot peut être intéressante. Exécution de info sur tldr montre comment la gestion des dépendances se produit, où le code source de la formule se trouve sur le disque, et même les analyses publiques sont disponibles :

$ brew info tldr
tldr: stable 1.3.0 (bottled), HEAD
Simplified and community-driven man pages
https://tldr.sh/
Conflicts with:
  tealdeer (because both install `tldr` binaries)
/home/linuxbrew/.linuxbrew/Cellar/tldr/1.3.0_2 (6 files, 63.2KB) *
  Poured from bottle on 2020-06-08 at 15:56:15
From: https://github.com/Homebrew/linuxbrew-core/blob/master/Formula/tldr.rb
==> Dependencies
Build: pkg-config ✔
Required: libzip ✔, curl ✔
==> Options
--HEAD
        Install HEAD version
==> Analytics
install: 197 (30 days), 647 (90 days), 1,546 (365 days)
install-on-request: 197 (30 days), 646 (90 days), 1,546 (365 days)
build-error: 0 (30 days)

Une limitation de Mac à Linux

Sur macOS, le Homebrew cask La sous-commande offre aux utilisateurs un moyen d'installer et de gérer des applications entières à l'aide du même excellent utilitaire de ligne de commande. Malheureusement, cask ne fonctionne pas encore sur les distributions Linux. J'ai découvert ceci en essayant d'installer un outil open source :

$ brew cask install tusk
Error: Installing casks is supported only on macOS

J'ai posé la question sur le forum et j'ai eu quelques retours rapides d'autres utilisateurs. En bref, les options sont les suivantes :

  • Dépliquez le projet, créez la fonctionnalité et montrez aux autres que cela en vaut la peine
  • Écrire une formule pour l'application et créer à partir de la source
  • Créer un référentiel tiers pour l'application

Le dernier est le plus intéressant pour moi. Homebrew gère les référentiels tiers en créant et en maintenant des "robines" (un autre terme influencé par la bière). Les robinets valent la peine d'être explorés à mesure que vous vous familiarisez avec le système et que vous souhaitez ajouter à l'écosystème.

Sauvegarde des installations Homebrew

L'une de mes fonctionnalités Homebrew préférées est la façon dont vous pouvez sauvegarder votre installation comme n'importe quel autre fichier dot dans le contrôle de version. Pour ce processus, Homebrew propose un bundle sous-commande contenant un dump sous-commande qui génère un Brewfile. Ce fichier est une liste réutilisable de tous vos outils actuellement installés. Pour générer un Brewfile à partir de votre installation, allez dans le dossier que vous souhaitez utiliser et exécutez :

$ cd ~/Development/dotfiles # This is my dotfile folder
$ brew bundle dump
$ ls Brewfile
Brewfile

Quand je change de machine et que je veux installer les mêmes applications dessus, je vais dans le dossier avec le Brewfile et je les réinstalle avec :

$ ls Brewfile
Brewfile
$ brew bundle

Il installera toutes les formules répertoriées sur ma nouvelle machine.

Gestion des fichiers Brew sur Mac et Linux

Le Brewfile est un excellent moyen de sauvegarder votre installation existante, mais que se passe-t-il si quelque chose sur Mac ne fonctionne pas sous Linux ou vice versa ? Ce que j'ai trouvé, c'est que Homebrew ignorera gracieusement les lignes qui ne fonctionnent pas sur un système d'exploitation donné, que ce soit Mac ou Linux. Lorsqu'il rencontre des requêtes incompatibles (comme demander à brew d'installer des fûts sur Linux), il les ignore et continue son chemin : 

$ brew bundle --file=Brewfile.example

Skipping cask licecap (on Linux)
Skipping cask macdown (on Linux)
Installing fish
Homebrew Bundle complete! 1 Brewfile dependency now installed.

Pour garder ma configuration aussi simple que possible, j'utilise le même Brewfile sur les deux systèmes d'exploitation et je n'ai pas rencontré de problème puisqu'il installe la version spécifique au système d'exploitation à chaque fois que je l'exécute.

Homebrew pour la gestion des packages

Homebrew a été mon gestionnaire de prédilection pour les utilitaires de ligne de commande, et sa familiarité rend mon expérience Linux encore plus agréable. Homebrew me permet de rester organisé et à jour, et je continue d'apprécier son équilibre entre la facilité d'utilisation et la profondeur des fonctionnalités. Je préfère garder les détails de la gestion des paquets à la quantité minimale d'informations qu'un utilisateur a besoin de connaître, et la plupart des gens en bénéficieront. Si vous êtes déjà à l'aise avec les gestionnaires de packages Linux, Homebrew peut sembler simple, mais en regardant un peu plus en profondeur, vous découvrirez ses options avancées qui vont bien au-delà de ce qui est dans cet article.

Il existe de nombreuses options de gestion de packages pour les utilisateurs de Linux. Si vous venez du monde de macOS, Homebrew se sentira comme chez vous.


Linux
  1. Planification des tâches avec la commande Linux cron

  2. Analyser le noyau Linux avec ftrace

  3. Gérer les connexions réseau à partir de la ligne de commande Linux avec nmcli

  4. Comment savoir si vous êtes prêt à passer de Mac à Linux

  5. comment générer une adresse MAC aléatoire à partir de la ligne de commande Linux

Mon histoire de transition de Mac à Linux

Apprendre Linux avec le Raspberry Pi

Créer un GIF à partir d'une vidéo sous Linux avec Gifcurry

Passer de Windows à Linux

Sécurisez Linux avec le fichier Sudoers

Linux make Commande avec des exemples