Apakah ada cara untuk memeriksa bendera apa yang diberikan ketika paket diinstal dengan homebrew?
Misalnya, rumus emacs memiliki jumlah bendera yang tidak masuk akal. Jika saya melakukannya
brew install emacs --with-glib --with-librsvg
Saya ingin kemudian menentukan bahwa untuk instalasi emacs homebrew saya memberikan bendera --with-glib --with-librsvg
dan bukan bendera lainnya.
Test case dengan paket lua:
Sebelum menginstal paket, info menunjukkan semua opsi.
$ brew info lua
lua: stable 5.2.3 (bottled)
http://www.lua.org/
Not installed
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/lua.rb
==> Options
--universal
Build a universal binary
--with-completion
Enables advanced readline support
--without-sigaction
Revert to ANSI signal instead of improved POSIX sigaction
Saya menginstal paket hanya dengan --with-completion
bendera.
$ brew install lua --with-completion
==> Downloading http://www.lua.org/ftp/lua-5.2.3.tar.gz
######################################################################## 100.0%
==> Downloading http://luajit.org/patches/lua-5.2.0-advanced_readline.patch
######################################################################## 100.0%
==> Downloading http://lua-users.org/files/wiki_insecure/power_patches/5.2/lua-5
######################################################################## 100.0%
==> Patching
patching file Makefile
patching file src/Makefile
patching file src/lua.c
Hunk #1 succeeded at 231 (offset -5 lines).
Hunk #2 succeeded at 559 (offset -4 lines).
Hunk #3 succeeded at 575 (offset -4 lines).
patching file src/lua.c
==> make macosx INSTALL_TOP=/usr/local/Cellar/lua/5.2.3_1 INSTALL_MAN=/usr/local
==> make install INSTALL_TOP=/usr/local/Cellar/lua/5.2.3_1 INSTALL_MAN=/usr/loca
🍺 /usr/local/Cellar/lua/5.2.3_1: 13 files, 312K, built in 6 seconds
Setelah menginstal paket, info menunjukkan semua opsi, termasuk yang tidak saya gunakan. Perintah itu mengakui bahwa paket itu dibuat dari sumber dan tidak dituangkan dari botol.
$ brew info lua
lua: stable 5.2.3 (bottled)
http://www.lua.org/
/usr/local/Cellar/lua/5.2.3_1 (13 files, 312K) *
Built from source with: --with-completion
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/lua.rb
==> Options
--universal
Build a universal binary
--with-completion
Enables advanced readline support
--without-sigaction
Revert to ANSI signal instead of improved POSIX sigaction
Ada file di
/usr/local/Cellar
bawah setiap paket yang dipanggilINSTALL_RECEIPT.json
, misalnya untukgawk
:yang menentukan bagaimana paket itu diinstal. Saya pikir cara yang benar untuk mengaksesnya adalah dengan
misalnya
Itu memuntahkan banyak barang, tetapi jika Anda mengirimkannya melalui
jq
(Prosesor JSON - tersedia melaluihomebrew
), Anda dapat memilih opsi yang Anda gunakan untuk menginstal paket seperti ini (memeriksagnuplot
paket):yang memberitahu saya saya menginstal
gnuplot
menggunakan:sumber
for package in $(brew list); do echo -n "brew install $package "; for item in $(brew info --json=v1 $package | jq -r '.[0].installed[0].used_options | .[]'); do echo -n "$item "; done; echo ; done 2>/dev/null
dapat digunakan untuk menampilkan daftar perintah instal buatan yang dapat Anda gunakan di tempat lain.Alat lain yang bermanfaat adalah
homebrew-bundler
. Setelah diinstal melaluibrew tap Homebrew/bundle
, Anda dapat menjalankanbrew bundle dump
dan itu akan membuat file Brewfile yang mencantumkan semua paket yang telah Anda instal bersama dengan argumen tambahan yang digunakan untuk menginstalnya.sumber
Brewfile
dan mengeceknya ke dalam repo dotfiles Anda membuatnya mudah untuk "mengatur" mesin baru. Padahal, itu mencantumkan semua paket termasuk semua dependensi. Saat ini saya harus menguraikan daftar daribrew leaves
daftar yang hanya mencantumkan paket tingkat atas yang diinstal.Inilah sedikit fungsi bash yang mengembalikan flag-flag terlepas dari apakah paket dibangun dari sumber atau tidak.
Untuk menggunakan fungsi bash ini dalam penulisan skrip bash
di mana
PKGNAME
nama paket homebrew yang diinginkan. Anda juga dapat mengulangi semua paket homebrew yang terinstal dalam skrip bash sebagai.
sumber
jq
prosesor JSON baris perintah