GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erleichtern Sie den Wechsel von Mac zu Linux mit Homebrew

Das Homebrew-Projekt begann sein Leben als inoffizieller Paketmanager im Linux-Stil für den Mac. Seine Benutzer verliebten sich schnell in die benutzerfreundliche Oberfläche und die hilfreichen Eingabeaufforderungen und – was wie eine seltsame Wendung des Schicksals erscheinen mag – wurde es auf Linux portiert.

Zuerst gab es zwei separate Projekte für macOS und Linux (Homebrew und Linuxbrew), aber jetzt verwaltet der Kern von Homebrew beide Betriebssysteme. Da ich auf dem Weg war, von Mac zu Linux zu migrieren, habe ich mir angesehen, wie meine bevorzugten Open-Source-Anwendungen für macOS unter Linux funktionieren, und ich war erfreut festzustellen, dass Homebrews Unterstützung für Linux wirklich glänzt.

Warum Homebrew unter Linux?

Eine vernünftige erste Antwort auf Homebrew von langjährigen Linux-Benutzern ist:„Warum nicht einfach … verwenden“, wobei das nächste Wort ein Paketmanager für ihre bevorzugte Version von Linux ist. Debian-basierte Systeme haben bereits apt , Fedora-Systeme haben dnf und yum , und Projekte wie Flatpak und AppImage schließen die Lücke, indem sie auf beiden reibungslos laufen. Ich habe viel Zeit damit verbracht, all diese Technologien zu nutzen, und ich muss sagen, dass jede für sich mächtig ist.

Warum bleibe ich also bei Homebrew? Zunächst einmal kommt es mir unglaublich bekannt vor. Ich lerne bereits viel, wenn ich zu mehr Open-Source-Alternativen für meine früheren proprietären Tools übergehe, und etwas Vertrautes wie Homebrew beizubehalten, hilft mir, mich darauf zu konzentrieren, eine Sache nach der anderen zu lernen, anstatt von all den Unterschieden zwischen den Betriebssystemen überwältigt zu werden .

Außerdem habe ich noch keinen Paketmanager gesehen, der so freundlich zum Benutzer ist wie Homebrew. Befehle sind gut organisiert, wie die Standardausgabe der Hilfe zeigt:

$ 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

Diese kurze Ausgabe könnte als Einschränkung missverstanden werden, aber ein kurzer Blick in einen der Unterbefehle zeigt eine Fülle von Funktionen. Die obige Liste ist nur 23 Zeilen lang, aber die install Unterbefehl verfügt über satte 79 Zeilen an Informationen für den fortgeschrittenen Benutzer:

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

Es hat Optionen zum Ignorieren oder Installieren von Abhängigkeiten, zum Auswählen, ob aus der Quelle und mit welchem ​​​​Compiler erstellt werden soll, und zum Verwenden exakter Upstream-Git-Commits im Vergleich zur offiziellen „abgefüllten“ Version der Anwendung. Es genügt zu sagen, dass Homebrew für Experten und Anfänger gleichermaßen geeignet ist.

Erste Schritte mit Homebrew unter Linux

Wenn Sie Homebrew ausprobieren möchten, gibt es ein großartiges Einzeiler-Skript, um es auf Mac oder Linux zu installieren:

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

Dieser Befehl führt das Homebrew-Installationsskript sofort aus. Wenn Sie vorsichtiger sind, können Sie curl die Datei, und führen Sie sie nach einer Überprüfung manuell aus:

$ 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

Die Linux-Anweisungen beinhalten Konfigurationen für dotfiles, insbesondere ~/.profile auf Debian-Systemen und ~/.bash_profile auf 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

Um die Installation zu bestätigen, stellt das Homebrew-Team ein leeres hello bereit Formel zum Testen:

$ 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

Es sieht so aus, als ob meine Installation ohne Probleme funktioniert, also werde ich ein wenig mehr untersuchen.

Brew für Befehlszeilen-Dienstprogramme

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

Homebrew rühmt sich damit, eine Anwendung zu sein, die standardmäßig "das Zeug installiert, das Sie brauchen, was [Linux] nicht getan hat".

Sie verwenden das brew Befehl, um eines der in Homebrew verpackten Befehlszeilenprogramme zu installieren. Diese Paketdefinitionen werden „Formeln“ genannt und werden über „Flaschen“ kompiliert und geteilt. Im Homebrew-Universum gibt es noch eine Menge anderer bierbezogener Terminologie, aber die Hauptaufgabe des Paketmanagers besteht darin, Software leicht zugänglich zu machen.

Was für Software? Denken Sie an die Dinge, die für Nerds wie mich nützlich sind (und da Sie dies lesen, wahrscheinlich auch für Sie). Zum Beispiel der praktische tree Befehl, der Verzeichnisstrukturen anzeigt oder pyenv , die ich verwende, um mehrere Versionen von Python auf einem Mac zu verwalten.

Sie können alle verfügbaren Formeln über die search anzeigen Befehl und Hinzufügen des wc Befehl zeigt, wie viele verfügbar sind:

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

Bis heute gibt es über 5.000 Formeln, was eine unglaubliche Menge an Software darstellt. Der Vorbehalt ist, dass nicht jede Formel unter Linux ausgeführt werden kann. Es gibt einen Abschnitt in der Ausgabe von brew search --help das Flags anzeigt, um Software nach dem Betriebssystem zu filtern, auf dem sie ausgeführt wird. Es startet die Repository-Liste jedes Betriebssystems in einem Browser. Ich verwende Fedora, also versuche ich es mit:

$ brew search --fedora tree

Der Browser lädt https://apps.fedoraproject.org/packages/s/tree , das die für Fedora verfügbaren Optionen anzeigt. Es gibt auch andere Möglichkeiten zum Durchsuchen. Formeln sind kodifiziert und zentralisiert in den Core-Repositories, die nach Betriebssystem (Mac in Homebrew Core und Linux Core für Linux-Bits) aufgeteilt sind. Sie sind auch über die Homebrew-API verfügbar und auf der Website aufgeführt.

Trotz all dieser Optionen finde ich die meisten meiner neuen Tools immer noch durch Empfehlungen von anderen Benutzern. Hier sind einige meiner Favoriten, wenn Sie nach Inspiration suchen:

  • pyenv , rbenv , und nodenv zum Verwalten der Python-, Ruby- und Node.js-Versionen (jeweils)
  • imagemagick für skriptfähige Bildbearbeitungen
  • pandoc für skriptfähige Dokumentkonvertierungen (ich wechsle oft von .docx zu .md oder .html)
  • hub für eine bessere Git-Erfahrung für GitHub-Benutzer
  • tldr Beispiele für die Verwendung eines Befehlszeilenprogramms

Um Homebrew zu erkunden, werfen Sie einen Blick auf die tldr-Seiten, die eine benutzerfreundliche Alternative zum Scrollen durch die Manpages einer Anwendung darstellen. Bestätigen Sie, dass es verfügbar ist, indem Sie search ausführen :

$ brew search tldr
==> Formulae
tldr ✔

Erfolg! Das Häkchen zeigt an, dass es verfügbar ist. Jetzt können Sie es installieren:

$ 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 stellt vorgefertigte Binärdateien bereit, sodass Sie nicht aus dem Quellcode auf Ihrem lokalen Computer erstellen müssen. Das spart viel Zeit und CPU-Lüftergeräusche. Eine andere Sache, die ich an Homebrew schätze, ist, dass Sie diese Funktion schätzen können, ohne genau zu verstehen, was sie bedeutet. Wenn Sie es vorziehen, es selbst zu bauen, verwenden Sie das -s oder --build-from-source Flag mit brew install um die Formel aus der Quelle zu kompilieren (auch wenn eine Flasche existiert).

Ebenso kann die Komplexität unter der Haube interessant sein. Ausführen von info auf tldr zeigt, wie das Abhängigkeitsmanagement abläuft, wo sich der Quellcode der Formel auf der Festplatte befindet und sogar die öffentlichen Analysen verfügbar sind:

$ 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)

Eine Einschränkung von Mac zu Linux

Unter macOS das Homebrew cask subcommand bietet Benutzern die Möglichkeit, ganze Anwendungen mit demselben großartigen Befehlszeilenprogramm zu installieren und zu verwalten. Leider cask funktioniert noch nicht auf Linux-Distributionen. Ich habe das herausgefunden, als ich versucht habe, ein Open-Source-Tool zu installieren:

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

Ich habe im Forum danach gefragt und ein schnelles Feedback von anderen Benutzern erhalten. Kurz gesagt, die Optionen lauten:

  • Verzweigen Sie das Projekt, erstellen Sie das Feature und zeigen Sie anderen, dass es sich lohnt
  • Schreiben Sie eine Formel für die Anwendung und erstellen Sie sie aus der Quelle
  • Erstellen Sie ein Drittanbieter-Repository für die Anwendung

Der letzte ist für mich am interessantesten. Homebrew verwaltet Repositories von Drittanbietern, indem es „Taps“ (ein weiterer Begriff mit Biereinfluss) erstellt und verwaltet. Es lohnt sich, Taps zu erkunden, wenn Sie sich mit dem System vertraut machen und das Ökosystem erweitern möchten.

Homebrew-Installationen sichern

Eine meiner Lieblingsfunktionen von Homebrew ist, wie Sie Ihre Installation wie jedes andere Dotfile in der Versionskontrolle sichern können. Für diesen Vorgang bietet Homebrew ein bundle an Unterbefehl, der einen dump enthält Unterbefehl, der eine Brewfile generiert. Diese Datei ist eine wiederverwendbare Liste aller Ihrer derzeit installierten Tools. Um eine Brewfile aus Ihrer Installation zu generieren, gehen Sie in den Ordner, den Sie verwenden möchten, und führen Sie Folgendes aus:

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

Wenn ich die Maschine wechsle und die gleichen Anwendungen darauf einrichten möchte, gehe ich in den Ordner mit dem Brewfile und installiere sie neu mit:

$ ls Brewfile
Brewfile
$ brew bundle

Es installiert alle aufgelisteten Formeln auf meiner neuen Maschine.

Brewfile-Verwaltung auf Mac und Linux

Das Brewfile ist eine großartige Möglichkeit, Ihre vorhandene Installation zu sichern, aber was ist, wenn etwas auf dem Mac nicht auf Linux läuft oder umgekehrt? Was ich herausgefunden habe, ist, dass Homebrew die Zeilen, die auf einem bestimmten Betriebssystem nicht funktionieren, egal ob Mac oder Linux, elegant ignoriert. Wenn es auf inkompatible Anfragen stößt (z. B. die Aufforderung an Brew, Fässer unter Linux zu installieren), überspringt es diese und setzt seinen Weg fort: 

$ 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.

Um meine Konfiguration so einfach wie möglich zu halten, verwende ich dasselbe Brewfile für beide Betriebssysteme und bin nicht auf ein Problem gestoßen, da jedes Mal, wenn ich es ausführe, die betriebssystemspezifische Version installiert wird.

Homebrew für die Paketverwaltung

Homebrew war mein Go-to-Manager für Befehlszeilenprogramme, und seine Vertrautheit macht meine Linux-Erfahrung so viel angenehmer. Homebrew hält mich organisiert und auf dem Laufenden, und ich schätze nach wie vor seine Balance zwischen Benutzerfreundlichkeit und umfassender Funktionalität. Ich ziehe es vor, die Paketverwaltungsdetails auf die minimale Menge an Informationen zu beschränken, die ein Benutzer wissen muss, und die meisten Leute werden davon profitieren. Wenn Sie bereits mit Linux-Paketmanagern vertraut sind, mag Homebrew so einfach erscheinen, aber wenn Sie etwas genauer hinschauen, werden Sie seine erweiterten Optionen entdecken, die weit über das hinausgehen, was in diesem Artikel behandelt wird.

Es gibt viele Paketverwaltungsoptionen für Linux-Benutzer. Wenn Sie aus der Welt von macOS kommen, wird sich Homebrew wie zu Hause fühlen.


Linux
  1. Planen von Aufgaben mit dem Linux-Cron-Befehl

  2. Analysieren Sie den Linux-Kernel mit ftrace

  3. Verwalten Sie Netzwerkverbindungen über die Linux-Befehlszeile mit nmcli

  4. Warum ich von Mac zu Linux gewechselt bin

  5. Warum ich von Mac zu Linux gewechselt bin

Meine Geschichte des Übergangs von Mac zu Linux

Lernen Sie Linux mit dem Raspberry Pi

Erstellen Sie mit Gifcurry ein GIF aus einem Video unter Linux

Umstieg von Windows auf Linux

Sichern Sie Linux mit der Sudoers-Datei

Linux-make-Befehl mit Beispielen