Instal paket Homebrew dengan semua opsi yang tersedia

7

Apakah ada cara untuk menginstal paket dan memasukkan semua --with*opsi alih-alih mengetik semuanya secara individual di CLI?

Menghindari:

brew install ffmpeg --with-chromaprint --with-fdk-aac ...
waxwing
sumber

Jawaban:

7

Penafian: Saya tidak begitu terbiasa dengan grep. Solusi cerdas dipersilakan.


Anda dapat mendaftar semua opsi dengan perintah ini.

brew options target_formula

Dan Anda bisa mendapatkan semua --with-*opsi dengan ini.

brew options target_formula | grep 'with-'

Jadi, Anda dapat menginstal rumus dengan semua --with-*opsi dengan ini.

brew install target_formula `brew options target_formula | grep 'with-'`

Perhatikan bahwa beberapa rumus, terutama dalam ketukan tidak resmi, dapat memiliki opsi lama yang tidak diawali dengan --with-atau --without.



EDIT: Jika Anda ingin mengecualikan opsi tertentu, misalnya --with-zimg, Anda dapat melakukannya dengan ini.
( grep -v 'with-zimg'baik-baik saja, tetapi grep -v 'zimg'lebih pendek)

brew install target_formula `brew options target_formula | grep 'with-' | grep -v 'zimg'`
sama dengan l2
sumber
Saya awalnya mencoba brew install ffmpeg "$(brew options ffmpeg | grep 'with-')", yang melemparkan peringatan: Warning: ffmpeg: this formula has no --with-chromaprint, diikuti oleh semua yang tersisa dengan- pilihan, masing-masing pada baris baru. Baris terakhir baca: --with-zimg option so it will be ignored. ffmpeg kemudian diinstal tanpa opsi with- .
waxwing
Saya kemudian mencoba menginstal ulang menggunakan backticks alih-alih "$ ()", dan proses instalasi tidak dilanjutkan dengan melemparkan peringatan berikut: zimg: macOS El Capitan or newer is required. Error: An unsatisfied requirement failed this build. Saya kemudian mencoba sekali lagi menggunakan "$ ()" dan hasil yang sama dengan upaya instalasi pertama kali terjadi.
waxwing
Mengenai komentar pertama, Anda tidak boleh menggunakan " ". Ini akan memecah semua opsi menjadi satu opsi --with-chromaprint --with-fdk-aac ..., yang tidak dapat dikenali dengan benar.
sama dengan 2
Mengenai komentar kedua, Anda tidak punya cara selain menginstal ffmpegtanpa --with-zimg. Lihat jawaban yang diedit.
sama dengan
2

Tidak ada mekanisme ekspansi-wildcard untuk argumen di Homebrew, sehingga kemungkinan untuk memilih semua opsi, akan tergantung pada implementasi setiap formula.

Melihat ffmpegkode formula , setiap opsi ditangani secara individual, sehingga tidak mungkin menggunakan versi saat ini.

Anda harus mengubah rumus menghapus persyaratan dalam baris seperti:

args << "--enable-chromaprint" if build.with? "chromaprint"

Atau tambahkan switch global untuk semua argumen; atau ubah logika untuk menginstal semua secara default dan buat sakelar untuk menonaktifkan opsi.

techraf
sumber