GNU/Linux >> Znalost Linux >  >> Linux

Usnadněte si přechod z Mac na Linux s Homebrew

Projekt Homebrew začal svůj život jako neoficiální správce balíčků ve stylu Linuxu pro Mac. Jeho uživatelé si jeho přátelské rozhraní a užitečné výzvy rychle zamilovali a – což se může zdát jako zvláštní zvrat osudu – byl portován na Linux.

Nejprve existovaly dva samostatné projekty pro macOS a Linux (Homebrew a Linuxbrew), ale nyní jádro Homebrew spravuje oba operační systémy. Protože jsem byl na cestě k migraci z Macu na Linux, díval jsem se, jak si mé oblíbené open source aplikace pro macOS vedou na Linuxu, a s radostí jsem zjistil, že podpora Homebrew pro Linux skutečně září.

Proč Homebrew na Linuxu?

Rozumná první odpověď na Homebrew od dlouhodobých uživatelů Linuxu je: „Proč prostě nepoužít…“, kde další slovo je správce balíčků pro jejich preferovanou verzi Linuxu. Systémy založené na Debianu již mají apt , systémy Fedora mají dnf a yum a projekty jako Flatpak a AppImage pracují na překonání mezery tím, že na obou běží hladce. Používáním všech těchto technologií jsem strávil slušné množství času a musím říci, že každá z nich je sama o sobě mocná.

Tak proč zůstanu u Homebrew? Za prvé, je mi to neuvěřitelně povědomé. Už teď se hodně učím, když přecházím na více open source alternativ pro své minulé proprietární nástroje, a udržovat něco známého – jako je Homebrew – mi pomáhá soustředit se na učení jedné věci po druhé, místo abych byl přemožen všemi rozdíly mezi operačními systémy. .

Také jsem ještě neviděl správce balíčků, který by byl k uživateli tak laskavý jako Homebrew. Příkazy jsou dobře organizovány, jak ukazuje výchozí výstup nápovědy:

$ 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

Tento krátký výstup může být mylně považován za omezení, ale letmý pohled do některého z dílčích příkazů odhalí velké množství funkcí. Výše uvedený seznam má pouze 23 řádků, ale install dílčí příkaz má pro pokročilé uživatele k dispozici neuvěřitelných 79 řádků informací:

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

Má možnosti pro ignorování nebo instalaci závislostí, výběr sestavení ze zdroje as jakým kompilátorem a použití přesných upstreamových commitů Git oproti oficiální „balkované“ verzi aplikace. Stačí říci, že Homebrew je pro odborníky i nováčky.

Začínáme s Homebrew v systému Linux

Pokud chcete Homebrew vyzkoušet, existuje skvělý jednořádkový skript pro jeho instalaci na Mac nebo Linux:

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

Tento příkaz okamžitě spustí instalační skript Homebrew. Pokud jste opatrnější, můžete se curl soubor a po kontrole jej spusťte ručně:

$ 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

Pokyny pro Linux obsahují konfigurace pro soubory dot, zejména ~/.profile na systémech Debian a ~/.bash_profile na Fedoře:

$ 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

Pro potvrzení instalace poskytne tým Homebrew prázdné hello vzorec pro testování:

$ 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

Zdá se, že moje instalace funguje bez problémů, takže prozkoumám trochu víc.

Připravte nástroje příkazového řádku

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Homebrew se chlubí tím, že je to aplikace, která ve výchozím nastavení „nainstaluje věci, které potřebujete, a [Linux] ne“.

Používáte brew příkaz k instalaci libovolného z nástrojů příkazového řádku zabalených v Homebrew. Tyto definice balíčků se nazývají „vzorce“ a jsou sestavovány a sdíleny prostřednictvím „lahví“. Ve vesmíru Homebrew existuje celá řada další terminologie zaměřené na pivo, ale hlavním úkolem správce balíčků je zajistit snadný přístup k softwaru.

Jaký druh softwaru? Přemýšlejte o věcech, které se hodí pro pitomce, jako jsem já (a když to čtete, pravděpodobně i vy). Například praktický tree příkaz, který zobrazuje adresářové struktury nebo pyenv , který používám ke správě více verzí Pythonu na Macu.

Všechny vzorce, které jsou k dispozici, můžete zobrazit pomocí search a přidáním wc příkaz ukazuje, kolik jich je k dispozici:

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

K dnešnímu dni existuje přes 5000 vzorců, což je neuvěřitelné množství softwaru. Upozornění je, že ne každý vzorec bude fungovat na Linuxu. Ve výstupu brew search --help je sekce který zobrazuje příznaky pro filtrování softwaru podle operačního systému, na kterém běží. Spustí v prohlížeči seznam úložišť každého operačního systému. Spouštím Fedoru, takže to zkusím s:

$ brew search --fedora tree

Prohlížeč se načte https://apps.fedoraproject.org/packages/s/tree , který ukazuje možnosti dostupné pro Fedoru. Existují i ​​jiné způsoby procházení. Vzorce jsou kodifikovány a centralizovány do hlavních úložišť, která jsou rozdělena podle operačního systému (Mac v Homebrew Core a Linux Core pro Linux bity). Jsou také dostupné prostřednictvím Homebrew API a jsou uvedeny na webových stránkách.

I přes všechny tyto možnosti stále nacházím většinu svých nových nástrojů prostřednictvím doporučení od ostatních uživatelů. Zde jsou některé z mých oblíbených, pokud hledáte inspiraci:

  • pyenv , rbenv a nodenv ke správě verzí Python, Ruby a Node.js (v tomto pořadí)
  • imagemagick pro skriptovatelné úpravy obrázků
  • pandoc pro převod skriptovatelných dokumentů (často přecházím z .docx na .md nebo .html)
  • hub pro lepší používání Git pro uživatele GitHubu
  • tldr příklady použití nástroje příkazového řádku

Chcete-li prozkoumat Homebrew, podívejte se na stránky tldr, což je uživatelsky přívětivá alternativa k procházení manuálovými stránkami aplikace. Potvrďte, že je k dispozici spuštěním search :

$ brew search tldr
==> Formulae
tldr ✔

Úspěch! Zaškrtnutí vás informuje, že je k dispozici. Nyní jej můžete nainstalovat:

$ 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 poskytuje předpřipravené binární soubory, takže nemusíte sestavovat ze zdrojového kódu na místním počítači. To šetří spoustu času a hluku ventilátoru CPU. Další věc, kterou oceňuji na Homebrew, je, že tuto funkci můžete ocenit, aniž byste přesně pochopili, co to znamená. Pokud si jej raději sestavujete sami, použijte -s nebo --build-from-source příznak pomocí brew install zkompilovat vzorec ze zdroje (i když láhev existuje).

Podobně může být zajímavá i složitost pod kapotou. Spuštění info na tldr ukazuje, jak probíhá správa závislostí, kde je zdrojový kód vzorce uložen na disku a dokonce jsou k dispozici veřejné analýzy:

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

Jedno omezení z Mac na Linux

V systému macOS je to Homebrew cask dílčí příkaz nabízí uživatelům způsob instalace a správy celých aplikací pomocí stejného skvělého nástroje příkazového řádku. Bohužel cask zatím nefunguje na žádné distribuci Linuxu. Zjistil jsem to při pokusu o instalaci nástroje s otevřeným zdrojovým kódem:

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

Ptal jsem se na to na fóru a dostal jsem rychlou zpětnou vazbu od ostatních uživatelů. Stručně řečeno, možnosti jsou:

  • Rozdělte projekt, vytvořte funkci a ukažte ostatním, že to stojí za to
  • Napište vzorec pro aplikaci a sestavte ze zdroje
  • Vytvořte pro aplikaci úložiště třetí strany

Ten poslední je pro mě nejzajímavější. Homebrew spravuje úložiště třetích stran vytvářením a údržbou „kohoutek“ (další výraz ovlivněný pivem). Poklepání stojí za to prozkoumat, až se se systémem blíže seznámíte a chcete jej přidat do ekosystému.

Zálohování instalací Homebrew

Jednou z mých oblíbených funkcí Homebrew je, jak můžete zálohovat svou instalaci stejně jako jakýkoli jiný soubor dot ve správě verzí. Pro tento proces nabízí Homebrew bundle dílčí příkaz, který obsahuje dump dílčí příkaz, který generuje soubor Brewfile. Tento soubor je opakovaně použitelný seznam všech aktuálně nainstalovaných nástrojů. Chcete-li ze své instalace vygenerovat soubor Brewfile, přejděte do libovolné složky, kterou chcete použít, a spusťte:

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

Když změním počítač a chci na něm nastavit stejné aplikace, přejdu do složky s Brewfile a znovu je nainstaluji pomocí:

$ ls Brewfile
Brewfile
$ brew bundle

Nainstaluje všechny uvedené vzorce na můj nový stroj.

Správa souborů Brewfile v systémech Mac a Linux

Brewfile je skvělý způsob, jak zálohovat vaši stávající instalaci, ale co když něco na Macu nefunguje na Linuxu nebo naopak? Zjistil jsem, že Homebrew bude elegantně ignorovat řádky, které nefungují na daném operačním systému, ať už na Macu nebo Linuxu. Když narazí na nekompatibilní požadavky (např. požádá brew o instalaci sudů v Linuxu), přeskočí je a pokračuje ve své cestě: 

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

Aby moje konfigurace byla co nejjednodušší, používám stejný soubor Brewfile v obou operačních systémech a nenarazil jsem na problém, protože při každém spuštění nainstaluje verzi specifickou pro operační systém.

Homebrew pro správu balíčků

Homebrew byl mým oblíbeným správcem nástrojů příkazového řádku a díky jeho znalostem je moje zkušenost s Linuxem mnohem příjemnější. Homebrew mě udržuje organizovaný a aktuální a stále oceňuji jeho rovnováhu mezi snadností použití a hloubkou funkčnosti. Dávám přednost tomu, aby byly podrobnosti o správě balíčků omezeny na minimální množství informací, které uživatel potřebuje vědět, a většina lidí z toho bude mít prospěch. Pokud jste již spokojeni se správci balíčků pro Linux, Homebrew vám může připadat jednoduchý, ale když se podíváte trochu hlouběji, odhalíte jeho pokročilé možnosti, které dalece přesahují to, co je v tomto článku.

Pro uživatele Linuxu existuje mnoho možností správy balíčků. Pokud přicházíte ze světa macOS, Homebrew se bude cítit jako doma.


Linux
  1. Spravujte síťová připojení z příkazového řádku Linuxu pomocí nmcli

  2. Jak zjistit, zda jste připraveni přejít z Macu na Linux

  3. Proč jsem přešel z Macu na Linux

  1. Plánování úloh pomocí linuxového příkazu cron

  2. Analyzujte linuxové jádro pomocí ftrace

  3. Proč jsem přešel z Macu na Linux

  1. Spravujte svůj kalendář z terminálu Linux pomocí příkazu konsolekalendar

  2. Jak vytvořit zaváděcí USB ze zaváděcího ISO pomocí příkazového řádku v Linuxu?

  3. jak vygenerovat náhodnou MAC adresu z příkazového řádku Linuxu