GNU/Linux >> Belajar Linux >  >> Linux

Jadikan peralihan dari Mac ke Linux lebih mudah dengan Homebrew

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 , dan nodenv untuk mengelola versi Python, Ruby, dan Node.js (masing-masing)
  • imagemagick untuk pengeditan gambar yang dapat skrip
  • pandoc untuk konversi dokumen skrip (saya sering beralih dari .docx ke .md atau .html)
  • hub untuk pengalaman Git yang lebih baik bagi pengguna GitHub
  • tldr 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.


Linux
  1. Menjadwalkan tugas dengan perintah cron Linux

  2. Analisis kernel Linux dengan ftrace

  3. Kelola koneksi jaringan dari baris perintah Linux dengan nmcli

  1. Bagaimana mengetahui apakah Anda siap untuk beralih dari Mac ke Linux

  2. Mengapa saya beralih dari Mac ke Linux

  3. Mengapa saya beralih dari Mac ke Linux

  1. Kelola kalender Anda dari terminal Linux dengan perintah konsolekalendar

  2. Bagaimana cara membuat USB yang dapat di-boot dari ISO yang dapat di-boot dengan baris perintah di Linux?

  3. cara menghasilkan alamat MAC acak dari baris perintah Linux