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

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'`

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.