Proyek Homebrew dimulai sebagai pengelola paket gaya Linux tidak resmi untuk Mac. Penggunanya dengan cepat jatuh cinta dengan antarmuka yang ramah dan petunjuk yang membantu, dan—yang mungkin tampak seperti perubahan nasib yang aneh—porting ke Linux.
Pada awalnya, ada dua proyek terpisah untuk macOS dan Linux (Homebrew dan Linuxbrew), tetapi sekarang inti Homebrew mengelola kedua sistem operasi tersebut. Karena saya sedang dalam perjalanan untuk bermigrasi dari Mac ke Linux, saya telah melihat bagaimana kinerja aplikasi open source favorit saya untuk macOS di Linux, dan saya senang menemukan bahwa dukungan Homebrew untuk Linux benar-benar bersinar.
Mengapa Homebrew di Linux?
Tanggapan pertama yang masuk akal untuk Homebrew dari pengguna lama Linux adalah: "Mengapa tidak menggunakan..." di mana kata berikutnya adalah pengelola paket untuk versi Linux pilihan mereka. Sistem berbasis Debian sudah memiliki apt
, Sistem Fedora memiliki dnf
dan yum
, dan proyek seperti Flatpak dan AppImage bekerja untuk mengatasi kesenjangan dengan berjalan mulus di keduanya. Saya telah menghabiskan banyak waktu menggunakan semua teknologi ini, dan saya harus mengatakan bahwa masing-masing teknologi memiliki kekuatannya sendiri.
Jadi mengapa saya tetap menggunakan Homebrew? Pertama, itu sangat akrab bagi saya. Saya sudah belajar banyak saat saya beralih ke lebih banyak alternatif open source untuk alat milik saya sebelumnya, dan menjaga sesuatu yang familier — seperti Homebrew — membantu saya fokus mempelajari satu hal pada satu waktu alih-alih kewalahan oleh semua perbedaan antara sistem operasi .
Juga, saya belum melihat manajer paket yang ramah kepada pengguna seperti Homebrew. Perintah diatur dengan baik, seperti yang ditunjukkan oleh keluaran Bantuan default:
$ 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
Keluaran singkat ini mungkin disalahartikan sebagai batasan, tetapi melihat sekilas ke dalam salah satu subperintah mengungkapkan banyak fungsi. Daftar di atas hanya 23 baris, tetapi install
subcommand memiliki 79 baris informasi yang tersedia untuk pengguna tingkat lanjut:
$ brew --help | wc -l
23
$ brew install --help | wc -l
79
Ini memiliki opsi untuk mengabaikan atau menginstal dependensi, memilih untuk membangun dari sumber dan dengan kompiler apa, dan menggunakan komit Git hulu yang tepat versus versi aplikasi "botol" resmi. Cukuplah untuk mengatakan, Homebrew adalah untuk para ahli dan pemula.
Memulai Homebrew di Linux
Jika Anda ingin mencoba Homebrew, ada skrip satu baris yang bagus untuk menginstalnya di Mac atau Linux:
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Perintah ini segera mengeksekusi skrip penginstal Homebrew. Jika Anda lebih berhati-hati, Anda dapat curl
file, lalu jalankan secara manual setelah ditinjau:
$ 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
Instruksi Linux menyertakan konfigurasi untuk dotfile, khususnya ~/.profile
pada sistem Debian dan ~/.bash_profile
di 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
Untuk mengonfirmasi penginstalan, tim Homebrew memberikan hello
kosong rumus untuk pengujian:
$ 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
Sepertinya penginstalan saya berfungsi tanpa masalah, jadi saya akan menjelajah lebih jauh.
Brew untuk utilitas baris perintah
Lebih banyak sumber daya Linux
- Lembar contekan perintah Linux
- Lembar contekan perintah Linux tingkat lanjut
- Kursus online gratis:Ikhtisar Teknis RHEL
- Lembar contekan jaringan Linux
- Lembar contekan SELinux
- Lembar contekan perintah umum Linux
- Apa itu container Linux?
- Artikel Linux terbaru kami
Homebrew membanggakan diri sebagai aplikasi yang "menginstal hal-hal yang Anda butuhkan yang tidak [Linux]" secara default.
Anda menggunakan brew
perintah untuk menginstal utilitas baris perintah apa pun yang dikemas dalam Homebrew. Definisi paket ini disebut "formula", dan mereka dikompilasi dan dibagikan melalui "botol". Ada sejumlah terminologi berorientasi bir lainnya di alam semesta Homebrew, tetapi tujuan utama manajer paket adalah membuat perangkat lunak mudah diakses.
Apa jenis perangkat lunak? Pikirkan tentang hal-hal yang berguna bagi kutu buku seperti saya (dan, karena Anda membaca ini, mungkin Anda juga). Misalnya, tree
handy yang praktis perintah yang menunjukkan struktur direktori atau pyenv
, yang saya gunakan untuk mengelola beberapa versi Python di Mac.
Anda dapat melihat semua rumus yang tersedia menggunakan search
perintah, dan menambahkan wc
perintah menunjukkan berapa banyak yang tersedia:
# -l counts the number of lines
$ brew search | wc -l
5087
Ada lebih dari 5.000 formula hingga saat ini, yang merupakan jumlah perangkat lunak yang luar biasa. Peringatannya adalah tidak semua formula akan berjalan di Linux. Ada bagian di output brew search --help
yang menunjukkan tanda untuk menyaring perangkat lunak oleh sistem operasi yang dijalankannya. Ini meluncurkan daftar repositori setiap sistem operasi ke browser. Saya menjalankan Fedora, jadi saya akan mencobanya dengan:
$ brew search --fedora tree
Browser memuat https://apps.fedoraproject.org/packages/s/tree
, yang menunjukkan opsi yang tersedia untuk Fedora. Ada cara lain untuk menjelajah juga. Rumus dikodifikasi dan dipusatkan ke dalam repositori inti yang dipisahkan oleh sistem operasi (Mac di Homebrew Core dan Linux Core untuk bit Linux). Mereka juga tersedia melalui Homebrew API dan terdaftar di situs web.
Bahkan dengan semua opsi ini, saya masih menemukan sebagian besar alat baru saya melalui rekomendasi dari pengguna lain. Berikut adalah beberapa favorit saya, jika Anda mencari inspirasi:
pyenv
,rbenv
, dannodenv
untuk mengelola versi Python, Ruby, dan Node.js (masing-masing)imagemagick
untuk pengeditan gambar yang dapat skrippandoc
untuk konversi dokumen skrip (saya sering beralih dari .docx ke .md atau .html)hub
untuk pengalaman Git yang lebih baik bagi pengguna GitHubtldr
untuk contoh cara menggunakan utilitas baris perintah
Untuk menjelajahi Homebrew, lihat halaman tldr, yang merupakan alternatif ramah pengguna untuk menggulir halaman manual aplikasi. Konfirmasikan bahwa itu tersedia dengan menjalankan search
:
$ brew search tldr
==> Formulae
tldr ✔
Kesuksesan! Tanda centang memberi tahu Anda bahwa itu tersedia. Sekarang Anda dapat menginstalnya:
$ 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 menyajikan binari bawaan, jadi Anda tidak perlu membangun dari kode sumber di mesin lokal Anda. Itu menghemat banyak waktu dan kebisingan kipas CPU. Hal lain yang saya hargai tentang Homebrew adalah Anda dapat menghargai fitur ini tanpa memahami apa artinya. Jika Anda lebih suka membuatnya sendiri, gunakan -s
atau --build-from-source
tandai dengan brew install
untuk mengkompilasi formula dari sumber (bahkan jika ada botol).
Demikian pula, kompleksitas di bawah tenda bisa menarik. Menjalankan info
di tldr
menunjukkan bagaimana manajemen ketergantungan terjadi, di mana kode sumber rumus berada di disk, dan bahkan analitik publik tersedia:
$ 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)
Satu batasan dari Mac ke Linux
Di macOS, cask
Homebrew subcommand menawarkan kepada pengguna cara untuk menginstal dan mengelola seluruh aplikasi menggunakan utilitas baris perintah yang sama. Sayangnya, cask
belum bekerja pada distribusi Linux apa pun. Saya menemukan ini saat mencoba memasang alat sumber terbuka:
$ brew cask install tusk
Error: Installing casks is supported only on macOS
Saya bertanya tentang hal itu di forum dan mendapat beberapa umpan balik cepat dari pengguna lain. Singkatnya, opsinya adalah:
- Fork proyek, bangun fitur, dan tunjukkan kepada orang lain bahwa itu bermanfaat
- Tulis rumus untuk aplikasi dan buat dari sumber
- Buat repositori pihak ketiga untuk aplikasi
Yang terakhir adalah yang paling menarik bagi saya. Homebrew mengelola repositori pihak ketiga dengan membuat dan memelihara "taps" (istilah lain yang dipengaruhi bir). Tap perlu dijelajahi karena Anda semakin mengenal sistem dan ingin menambahkan ekosistem.
Mencadangkan pemasangan Homebrew
Salah satu fitur Homebrew favorit saya adalah bagaimana Anda dapat mencadangkan penginstalan Anda seperti dotfile lainnya di kontrol versi. Untuk proses ini, Homebrew menawarkan bundle
subperintah yang menyimpan dump
subcommand yang menghasilkan Brewfile. File ini adalah daftar yang dapat digunakan kembali dari semua alat yang Anda instal saat ini. Untuk menghasilkan Brewfile dari instalasi Anda, masuk ke folder mana pun yang ingin Anda gunakan dan jalankan:
$ cd ~/Development/dotfiles # This is my dotfile folder
$ brew bundle dump
$ ls Brewfile
Brewfile
Ketika saya mengganti mesin dan ingin mengatur aplikasi yang sama di dalamnya, saya pergi ke folder dengan Brewfile dan menginstalnya kembali dengan:
$ ls Brewfile
Brewfile
$ brew bundle
Ini akan menginstal semua formula yang terdaftar di mesin baru saya.
Manajemen Brewfile di Mac dan Linux
Brewfile adalah cara yang bagus untuk mencadangkan instalasi yang ada, tetapi bagaimana jika sesuatu di Mac tidak berjalan di Linux atau sebaliknya? Apa yang saya temukan adalah bahwa Homebrew dengan anggun akan mengabaikan baris yang tidak berfungsi pada sistem operasi tertentu, baik Mac atau Linux. Saat menemukan permintaan yang tidak kompatibel (seperti meminta brew untuk menginstal casks di Linux), permintaan tersebut akan dilewati dan melanjutkan perjalanannya:
$ 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.
Untuk menjaga konfigurasi saya sesederhana mungkin, saya menggunakan Brewfile yang sama di kedua sistem operasi dan tidak mengalami masalah karena menginstal versi khusus OS setiap kali saya menjalankannya.
Homebrew untuk manajemen paket
Homebrew telah menjadi manajer masuk saya untuk utilitas baris perintah, dan keakrabannya membuat pengalaman Linux saya jauh lebih menyenangkan. Homebrew membuat saya tetap teratur dan up to date, dan saya terus menghargai keseimbangan antara kemudahan penggunaan dan kedalaman fungsionalitas. Saya lebih suka menyimpan detail manajemen paket ke jumlah minimal informasi yang perlu diketahui pengguna, dan kebanyakan orang akan mendapat manfaat dari itu. Jika Anda sudah nyaman dengan manajer paket Linux, Homebrew mungkin tampak sederhana, tetapi melihat sedikit lebih dalam mengungkapkan opsi lanjutannya yang jauh melampaui apa yang ada di artikel ini.
Ada banyak pilihan manajemen paket untuk pengguna Linux. Jika Anda berasal dari dunia macOS, Homebrew akan terasa seperti di rumah sendiri.