Bagaimana cara saya menginstal versi formula tertentu dalam homebrew? Sebagai contoh, postgresql-8.4.4 bukan yang terbaru 9.0.
installation
versioning
homebrew
Gravis
sumber
sumber
postgresql
adalah yang aneh karena memiliki versi terpisah di Homebrew pada satu titik, sesuatu sepertibash
mungkin menjadi contoh yang lebih baik karena ia beralih dari 4.x ke 5.x dalam nama formula yang sama. Lihat stackoverflow.com/a/55764594/3794873Jawaban:
TLDR:
brew install [email protected]
Lihat jawaban di bawah untuk detail lebih lanjut.* ( Saya telah mengedit ulang jawaban saya untuk memberikan alur kerja yang lebih menyeluruh untuk menginstal / menggunakan versi perangkat lunak yang lebih lama dengan homebrew. Jangan ragu untuk menambahkan catatan jika Anda menemukan versi lama lebih baik. )
Mari kita mulai dengan kasus paling sederhana:
1) Periksa, apakah versi sudah diinstal (tetapi tidak diaktifkan)
Ketika homebrew menginstal formula baru, itu menempatkannya di direktori berversi seperti
/usr/local/Cellar/postgresql/9.3.1
. Hanya tautan simbolis ke folder ini yang kemudian diinstal secara global. Pada prinsipnya, ini membuatnya cukup mudah untuk beralih di antara dua versi yang diinstal. (*)Jika Anda telah menggunakan homebrew lebih lama dan tidak pernah menghapus versi lama (menggunakan, misalnya
brew cleanup
), kemungkinan beberapa versi lama dari program Anda mungkin masih ada. Jika Anda hanya ingin mengaktifkan versi sebelumnya,brew switch
adalah cara termudah untuk melakukan ini.Periksa dengan
brew info postgresql
(ataubrew switch postgresql <TAB>
) apakah versi yang lebih lama diinstal:Kami melihat bahwa beberapa versi yang lebih lama sudah diinstal. Kami dapat mengaktifkannya menggunakan
brew switch
:Mari kita periksa apa yang diaktifkan:
Perhatikan bahwa bintang
*
telah pindah ke versi yang baru diaktifkan(*) Harap dicatat bahwa
brew switch
hanya berfungsi selama semua dependensi dari versi yang lebih lama masih ada. Dalam beberapa kasus, pembangunan kembali versi yang lebih lama mungkin diperlukan. Oleh karena itu, menggunakanbrew switch
sebagian besar berguna ketika seseorang ingin beralih di antara dua versi yang tidak terlalu berjauhan.2) Periksa, apakah versi tersedia sebagai ketukan
Khusus untuk proyek perangkat lunak yang lebih besar, sangat mungkin ada permintaan yang cukup tinggi untuk beberapa versi utama (yang berpotensi tidak kompatibel dengan API) dari perangkat lunak tertentu. Pada Maret 2012, Homebrew 0.9 menyediakan mekanisme untuk ini:
brew tap
& repositori versi homebrew .Repositori versi itu dapat menyertakan backports dari versi yang lebih lama untuk beberapa formula. (Sebagian besar hanya yang besar dan terkenal, tetapi tentu saja mereka juga akan memiliki beberapa formula untuk postgresql.)
brew search postgresql
akan menunjukkan kepada Anda ke mana harus mencari:Kita cukup menginstalnya dengan mengetik
Catatan bahwa ini telah secara otomatis disadap itu
homebrew/versions
keran. (Periksa denganbrew tap
, hapus denganbrew untap homebrew/versions
.) Berikut ini akan menjadi setara:Selama formula versi yang di-backport tetap up-to-date, pendekatan ini mungkin merupakan cara terbaik untuk menangani perangkat lunak yang lebih lama.
3) Coba beberapa formula dari masa lalu
Pendekatan berikut sebagian besar didaftar untuk kelengkapan. Keduanya mencoba menghidupkan kembali beberapa rumus undead dari repositori brew. Karena perubahan dependensi, perubahan API dalam spesifikasi rumus atau hanya perubahan dalam URL unduhan, hal-hal mungkin atau mungkin tidak berfungsi.
Karena seluruh direktori rumus adalah repositori git, seseorang dapat menginstal versi spesifik menggunakan perintah plain git. Namun, kita perlu menemukan cara untuk mendapatkan komit di mana versi lama tersedia.
a) masa bersejarah
Antara Agustus 2011 dan Oktober 2014 , homebrew memiliki
brew versions
perintah, yang meludahkan semua versi yang tersedia dengan hash SHA masing-masing. Pada Oktober 2014, Anda harus melakukanbrew tap homebrew/boneyard
sebelum dapat menggunakannya. Seperti yang disarankan oleh nama keran, Anda mungkin harus melakukan ini sebagai upaya terakhir.Misalnya
Seperti yang Anda lihat, disarankan untuk tidak menggunakannya. Homebrew mengeluarkan semua versi yang dapat ditemukan dengan heuristik internal dan menunjukkan kepada Anda cara untuk mengambil formula lama. Ayo kita coba.
Sekarang setelah versi postgresql yang lebih lama terinstal, kita dapat menginstal ulang formula terbaru untuk menjaga repositori kita tetap bersih:
brew switch
adalah teman Anda untuk berubah antara yang lama dan yang baru.b) zaman prasejarah
Untuk kebutuhan khusus, kami juga dapat mencoba menggali sendiri melalui repo homebrew.
git log -S
mencari semua komit yang stringnya'8.4.4'
ditambahkan atau dihapus dalam fileLibrary/Taps/homebrew/homebrew-core/Formula/postgresql.rb
. Kami mendapat dua komitmen sebagai hasilnya.Tentunya,
fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422
adalah komit yang kami minati. Karena komit ini sudah cukup tua, kami akan mencoba menurunkan versi pemasangan homebrew yang lengkap (dengan cara itu, API rumus kurang lebih dijamin valid):Anda dapat melewati perintah terakhir untuk menyimpan referensi di repositori git Anda.
Satu catatan: Saat memeriksa komit yang lebih lama, Anda menurunkan versi instalasi homebrew untuk sementara waktu. Jadi, Anda harus berhati-hati karena beberapa perintah dalam homebrew mungkin berbeda dengan versi terbaru.
4) Secara manual menulis formula
Ini tidak terlalu sulit dan Anda kemudian dapat mengunggahnya ke repositori Anda sendiri. Dulu versi Homebrew , tetapi sekarang dihentikan.
A.) Bonus: Menjepit
Jika Anda ingin menyimpan versi tertentu, katakan postgresql, di sekitar dan menghentikan pembaruan dari saat Anda melakukan
brew update; brew upgrade
prosedur alami , Anda dapat menyematkan rumus:Rumus yang disematkan didaftar
/usr/local/Library/PinnedKegs/
dan setelah Anda ingin memasukkan perubahan dan pembaruan terbaru, Anda dapat melepaskan sematan lagi:sumber
git checkout fa992 -- Library/Formula/postgresql.rb
. Setelah selesai, Anda dapat membatalkan perubahan menggunakan rumusgit revert HEAD Library/Formula/postgresql.rb && git checkout -- Library/Formula/postgresql.rb
.brew update
membuat repo Git-nya.cd $(brew --repository)/Library/Taps/homebrew/homebrew-core
, maka Anda dapat menggunakangit checkout 4cce79d -- Formula/go.rb
danHOMEBREW_NO_AUTO_UPDATE=1 brew install go
.Alur Kerja Sederhana
Sekarang Homebrew / versi telah ditinggalkan, Homebrew / core mendukung banyak versi formula dengan format penamaan yang baru.
Untuk menginstal versi tertentu, misalnya postgresql 9.5 Anda cukup menjalankan:
Untuk daftar versi yang tersedia, jalankan pencarian dengan @:
sumber
fatal: Not a git repository (or any of the parent directories): .git
. Saya hanyacd
ke direktori saja (tanpa FORMULANAME.rb), lalu lakukangit checkout 120938
cd /usr/local
dulu.brew unlink FORMULANAME
brew versions <formula>
tidak didukung lagi.brew link --force [email protected]
. Jika Anda sudah menginstal versi yang lebih baru dan ingin versi yang lebih lama menjadi default Anda, Anda akan memerlukannya juga--overwrite
di sana.Sekarang ada cara yang jauh lebih mudah untuk menginstal versi formula yang lebih lama yang sebelumnya Anda instal. Cukup gunakan
Misalnya, saya berganti secara teratur antara Node.js 0.4.12 dan 0.6.5:
Karena
brew switch
hanya mengubah symlink, itu sangat cepat. Lihat dokumentasi lebih lanjut tentang Wiki Homebrew di bawah Perintah Eksternal .sumber
brew switch
bergantung pada versi yang dicari yang sudah diinstal. Sayangnya, jawaban yang diterima saat ini sangat tidak membantu, berbelit-belit, dan ketinggalan zaman. Ada yang lebih baik jawaban di bawah ini yang jauh lebih bermanfaat.Pembaruan: 15/1/2015
brew install <url>
(mungkin harusbrew unlink
terlebih dahulu, misalnyabrew unlink docker
)brew switch docker 1.3.3
brew switch docker 1.4.1
Dari intisari ini
sumber
brew install <url>
,brew unlink <formulaname>
. Kalau tidak, ini adalah cara paling sederhana dan paling ringkas (sejauh ini) untuk beralih ke versi tertentu dari formula.Raw
tombol pada file apa ?!brew log <formula>
Sejalan dengan saran @ halfcube, ini bekerja dengan sangat baik:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb
sumber
package@version
git log master -- Formula/PACKAGENAME.rb
untuk mendapatkan histori komit, periksa komit yang benar, dan kemudian jalankanbrew install Formula/PACKAGENAME.rb
untuk menginstalnya.brew unlink
sebelumbrew install
versi lain.mxcl
?brew install https://github.com/Homebrew/homebrew-core/raw/afc10f17af8023906b87363a8340aeb62284329f/Formula/postgresql%409.6.rb
tetapi mendapatkan kesalahan, mungkin karena@
tanda:Error: No available formula with the name "postgresql%409.6" In formula file: /Users/maciek/Library/Caches/Homebrew/Formula/postgresql%409.6.rb Expected to find class Postgresql%4096, but only found: PostgresqlAT96.
Ada ide?Saya telah menemukan solusi alternatif yang lebih baik daripada solusi kompleks lainnya.
Ini akan mengunduh dan menginstal PostgreSQL 8.4.8
Saya menemukan solusi ini dengan mulai mengikuti langkah-langkah mencari repo dan komentar di repo.
Setelah sedikit penelitian menemukan bahwa seseorang memiliki koleksi formulars langka untuk dibuat.
Jika Anda mencari MySQL 5.1.x, coba ini.
sumber
brew install https://github.com/Homebrew/homebrew-versions/blob/master/node06.rb
sepertinya gagal dengan kesalahan sintaksis.raw
di URLhomebrew-versions
adalah pergi dan segala sesuatu yang ada dicore
sekarang, jadi kasus umum adalah:brew install https://raw.github.com/Homebrew/homebrew-core/<COMMIT>/Formula/<FORMULA>.rb
.COMMIT
dapat ditemukan dengan mengunjungi github.com/Homebrew/homebrew-core/commits/master/Formula/… .Anda dapat menggunakan strategi mengidentifikasi rumus dan komit tertentu dalam riwayat rumus yang cocok dengan versi paket yang ingin Anda instal.
Pergi ke https://github.com/Homebrew/homebrew-core
Tekan
t
pada keyboard Anda untuk mengaktifkan pencari file.Identifikasi formula yang terlihat paling relevan, mungkin
Formula/mysql.rb
:, membawa Anda ke lokasi file forumla: https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql.rb .Lihatlah riwayat revisi dengan mengklik
History
tombol, yang terletak di https://github.com/Homebrew/homebrew-core/commits/master/Formula/mysql.rb . Jika Anda tertarik dengan MySQL 5.7.10, Anda mungkin ingin mengklik revisi terbaru sebelum 5.7.11, yang menavigasi ke komit GitHub:https://github.com/Homebrew/homebrew-core/commit/c77882756a832ac1d87e7396c114158e5619016c#Formula/mysql.rb
CATATAN: Anda mungkin harus melihat histori komit di konsol Anda sesuai saran GitHub jika histori komit tidak dimuat di browser Anda. Ganti SHA komit di atas dalam URL jika Anda tertarik melihat komit itu di GitHub. Atau, lompat ke langkah 7, di bawah ini.
Klik tombol "Lihat" untuk melihat sumber untuk file mysql.rb setelah komit diterapkan.
Kemudian klik tombol "Raw" untuk melihat sumber mentah.
Salin URL. Atau, buat sendiri URL dengan
mysql.rb
nama file untuk mengidentifikasi formula Anda dan versi tertentu dari formula itu (diidentifikasi oleh komite SHA di URL di bawah).https://raw.githubusercontent.com/Homebrew/homebrew-core/c77882756a832ac1d87e7396c114158e5619016c/Formula/mysql.rb
Instal dengan
$ brew install [URL from step 7]
CATATAN: Jawaban ini telah diperbarui untuk memperhitungkan penghapusan situs web braumeister.org. Prinsip yang sama berlaku, braumeister hanya menyediakan cara ramah-pemula untuk menavigasi versi formula.
sumber
Sebagian besar jawaban lain sudah usang sekarang. Sayangnya Homebrew masih belum memiliki cara yang terpasang untuk menginstal versi yang sudah kadaluwarsa, kecuali jika versi itu ada sebagai formula yang terpisah (misalnya
python@2
,[email protected]
...).Untungnya, untuk formula lain ada cara yang jauh lebih mudah daripada kekacauan berbelit-belit yang dulu diperlukan. Ini instruksi lengkapnya:
Cari versi yang benar di log:
Ini akan menampilkan daftar hash komit. Ambil satu yang sesuai (kebanyakan itu harus cukup jelas, dan biasanya yang paling baru (yaitu atas).
Temukan URL tempat rumus berada di repositori hulu:
Perbaiki URL:
github.com
denganraw.githubusercontent.com
blob/master
dengan hash komit yang kami temukan di langkah pertama.Instal versi yang diinginkan dengan mengganti
master
URL yang sebelumnya ditemukan oleh hash komit, misalnya:(Langkah terakhir mungkin mengharuskan berjalan
brew unlink ‹formula›
sebelumnya.)Jika Anda telah menyalin hash komit yang ingin Anda gunakan, Anda dapat menggunakan sesuatu seperti contoh ini untuk menginstal versi itu, mengganti nilai dan
bash
dengan hash komit Anda dan formula yang Anda inginkan.Contoh ini menginstal bash 4.4.23 bukan bash 5, meskipun jika Anda melakukan
brew upgrade
bash 5 maka bash 5 akan diinstal di atas, kecuali Anda pertama kali dieksekusibrew pin bash
. Alih-alih membuat ini lebih lancar TANPA menyematkan, Anda harus menginstal yang terbaru terlebih dahulubrew install bash
, kemudianbrew unlink bash
, instal versi yang lebih lama yang Anda inginkan sesuai skrip di atas, dan kemudian gunakanbrew switch bash 4.4.23
untuk mengatur symlink ke versi yang lebih lama. Sekarangbrew upgrade
seharusnya tidak memengaruhi versi Bash Anda. Anda bisabrew switch bash
mendapatkan daftar versi yang tersedia untuk beralih.Alternatif menggunakan ketukan khusus lokal khusus
Cara lain untuk mencapai tujuan yang sama tampaknya:
Ini menciptakan sebuah
formula@version
ketukan khusus yang dapat Anda instal per contoh di atas. Kelemahannya adalah bahwa Anda mungkin masih perlubrew unlink bash
dan kemudianbrew link [email protected]
untuk menggunakan versi spesifik Bash Anda atau formula lainnya.sumber
brew log
jadi tambahan apapun-F
atau--grep
opsi yang gagal untuk saya.brew log
. Saya tidak dapat diganggu untuk menulis versi baru sekarang karena itu membutuhkan penguraian pesan log git dengan benar, atau sebagai alternatif menjalankangit log
langsung pada repositori yang sesuai. Dan changelog tampaknya tidak menyebutkan perubahan yang melanggar ini. Sangat menjengkelkan.External Command
diperlukan operasi dalam strukturbrew
untuk mendapatkan jenisgit log
penyaringan kembali. docs.brew.sh/External-Commandsbrew extract
penggunaan yang benar , terima kasih!Saya hanya menggunakan Homebrew untuk kembali ke Maven 2.2.1 karena
brew install maven
Maven 3.0.3 yang diinstal sederhana .Pertama, Anda harus meninggalkan dir maven di sana begitu
Gunakan perintah penyeduhan minuman
Sekarang Anda dapat menginstal rumus maven2:
Sunting: Anda juga dapat hanya
brew switch maven 2.2.1
beralih ke versi yang berbeda.Sunting: Proyek Apache Maven mereorganisasi repo mereka. Memperbarui jawaban ini untuk menjelaskan perubahan ini.
sumber
Berdasarkan alur kerja yang dijelaskan oleh pembaruan @tschundeee dan @ Debilski , saya mengotomatiskan prosedur dan menambahkan pembersihan dalam skrip ini .
Unduh , letakkan di jalur Anda dan
brewv <formula_name> <wanted_version>
. Untuk OP spesifik, itu akan menjadi::)
sumber
Jawaban yang diperbarui sejak itu menambah apa yang sudah diposkan @ lance-pollard sebagai jawaban yang berfungsi.
Cara Memasang versi khusus Formula (rumus yang digunakan dalam contoh ini adalah
terraform
):git log master -- Formula/terraform.rb
jika Anda telah mengkloning repo secara lokal.brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
sumber
Metode resmi (menilai dari tanggapan terhadap https://github.com/Homebrew/brew/issues/6028 )
Sayangnya Homebrew masih belum memiliki cara menginstal yang jelas untuk versi yang lebih lama.
Untungnya, untuk kebanyakan formula ada cara yang jauh lebih mudah daripada kekacauan berbelit-belit yang dulu diperlukan. Berikut adalah petunjuk lengkap yang digunakan
bash
sebagai contoh:Ini menciptakan
formula@version
ketukan khusus Anda yang dapat Anda instal per contoh di atas. Catatan penting adalah bahwa Anda mungkin perlubrew unlink bash
jika sebelumnya telah menginstal versi standar / terbaru dari formula dan kemudianbrew link [email protected]
untuk menggunakan versi spesifik Bash Anda (atau formula lain di mana Anda memiliki versi terbaru dan yang lebih lama diinstal).Kelemahan potensial dari metode ini adalah Anda tidak dapat dengan mudah beralih antar versi karena menurutnya
brew
merupakan "formula yang berbeda".Jika Anda ingin dapat menggunakan
brew switch $FORMULA $VERSION
Anda harus menggunakan metode selanjutnya.Metode Scripted (Disarankan)
Contoh ini menunjukkan menginstal bash 4.4.23 yang lebih lama, contoh yang berguna karena
bash
rumus saat ini menginstal bash 5.brew install bash
brew unlink bash
brew switch bash 4.4.23
untuk mengatur symlink ke versi AndaJika Anda melakukan
brew upgrade
setelah menginstal versi yang lebih lama tanpa menginstal yang terbaru, maka yang terbaru akan terinstal mengacaukan versi yang lebih lama, kecuali Anda terlebih dahulu dieksekusibrew pin bash
.Langkah-langkah di sini HINDARI menyematkan karena mudah dilupakan dan Anda mungkin menyematkan ke versi yang menjadi tidak aman di masa mendatang (lihat Shellshock / etc). Dengan pengaturan ini,
brew upgrade
seharusnya tidak memengaruhi versi Bash Anda dan Anda selalu dapat berlaribrew switch bash
untuk mendapatkan daftar versi yang tersedia untuk beralih.Salin dan tempel dan edit
export
baris dari cuplikan kode di bawah ini untuk memperbarui dengan versi dan nama formula yang Anda inginkan, lalu salin dan tempel sisanya apa adanya dan itu akan menggunakan variabel-variabel itu untuk melakukan keajaiban.Saat Anda yakin versi ada dalam rumus, Anda dapat menggunakan yang berikut ini:
Setelah Anda mengekspor hash komit yang ingin Anda gunakan, Anda dapat menggunakan ini untuk menginstal versi paket itu.
Ikuti petunjuk dalam output rumus untuk memasukkannya ke PATH Anda atau menjadikannya sebagai shell default Anda.
sumber
Pada versi homebrew terbaru (0.9.5 pada tulisan ini) akan ada resep khusus untuk versi tong homebrew yang ingin Anda instal. Contoh:
Maka lakukan
brew install mongodb26
seperti biasa.Dalam hal bahwa Anda telah menginstal versi terbaru, pastikan untuk menghapus link versi terbaru dan link versi yang diinginkan:
brew unlink mongodb && brew link mongodb26
.sumber
Masalahnya
homebrew/versions
adalah seseorang harus memiliki versi perangkat lunak tertentu yang terdaftar dalam repositori agar Anda dapat menggunakannya. Juga, karenabrew versions
tidak lagi didukung, solusi lain diperlukan. Untuk solusi yang menunjukkan penggunaanbrew switch
, ini hanya akan berfungsi jika Anda belum melakukanbrew cleanup
karena versi perlu ada di komputer Anda.Saya memiliki masalah dengan keinginan untuk menginstal versi lama yang spesifik
docker-machine
yang tidak tercantum dalamhomebrew/versions
. Saya memecahkan ini menggunakan di bawah ini, yang juga harus bekerja untuk perangkat lunak yang diinstal buatan. Contoh di bawah ini akan digunakandocker-machine
sebagai paket yang ingin saya turunkan dari versi 0.5.0 ke 0.4.1.Buka
Formula
direktori homebrew Anda .Anda dapat menentukan ini dengan menjalankan
brew info [any package name]
. Misalnya,brew info docker-machine
beri saya garis yang menunjukkan saya jalan -/usr/local/Cellar/docker-machine/0.5.0
. Ini memberitahu saya bahwa pada mesin saya, homebrew diinstal pada/usr/local
danFormula
direktori saya secara default di/usr/local/Library/Formula
Temukan file formula spesifik (.rb) untuk paket Anda. Karena saya ingin menurunkan versi
docker-machine
, saya dapat melihatdocker-machine.rb
file.Dapatkan riwayat versi untuk file formula ini . Masukkan
git log docker-machine.rb
. Ini akan mencantumkan riwayat komit lengkap untuk file ini. Anda akan melihat output seperti ini:Bagian yang sulit adalah menemukan komit terbaru untuk versi spesifik yang Anda inginkan. Dalam contoh di atas, saya dapat memberitahu versi terbaru 0.4.1 berkomitmen dengan ini berkomitmen tag:
commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423
. Komit di atas titik ini mulai menggunakan versi 0.5.0 (entri log git terdaftar dari terbaru ke tanggal paling awal).Dapatkan versi sebelumnya dari file formula. Menggunakan tag komit dari langkah # 3 (Anda dapat menggunakan 6 karakter pertama), Anda bisa mendapatkan versi yang lebih lama dari file formula menggunakan yang berikut ini:
git checkout 5970e1 docker-machine.rb
Copot versi paket Anda saat ini. Jalankan saja perintah pembuatan bir normal untuk menghapus instalasi versi paket Anda saat ini.
Ex.
brew uninstall docker-machine
Instal versi paket yang lebih lama Sekarang, Anda hanya dapat menjalankan perintah install brew normal dan itu akan menginstal formula yang sudah Anda checkout. Ex.
brew install docker-machine
Anda mungkin perlu menautkan kembali dengan menggunakan
brew link docker-machine
jika perlu.Jika suatu saat Anda ingin kembali ke versi terbaru dari paket tertentu, masuk ke direktori Formula dan mengeluarkan perintah berikut pada file formula Anda (.rb)
Kemudian Anda bisa
brew uninstall docker-machine
danbrew install docker-machine
untuk mendapatkan versi terbaru dan tetap seperti itu ke depan.sumber
git log --grep 0.4.1 docker-machine.rb
./usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula
cairo
minuman dengan cara ini. Jawaban @ sealocal menunjukkan lebih banyak, untuk beberapa alasan.Ini tahun 2020 dan sebagian besar jawaban sudah usang
Situasi saya:
postgresql
ditingkatkan dari 11 menjadi 12 secara tidak sengaja. Saya ingin menyimpan 11.postgres
menjadipostgres@11
:Jika Anda memiliki kesalahan, periksa
/usr/local/var/log/[email protected]
(perhatikan @ 11).sumber
brew postgresql-upgrade-database
). Jawaban ini tidak berguna untuk hampir semua formula lainnya.brew postgresql-upgrade-database
untuk upgrade . Jawaban saya adalah tentang menggunakan versi Postgres yang lebih lama . Cukup berpindah binari tidak akan bekerja.nvm
, FYI Saya beruntung menggunakan teknik ini untuk rilis LTS yang lebih lama. Setidaknya pada saat penulisan v10 & v12 harus tersedia, mis.brew install node@12
Formulae.brew.sh/formula/nodeInstal versi paket minuman lama (contoh Flyway 4.2.0)
Temukan homebrew git dir lokal Anda atau klon Homebrew / homebrew-core secara lokal
cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/
ATAU
git clone [email protected]:Homebrew/homebrew-core.git
Daftar semua versi yang tersedia
git log master -- Formula/flyway.rb
Salin ID komit untuk versi yang Anda inginkan dan instal secara langsung
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/793abfa325531415184e1549836c982b39e89299/Formula/flyway.rb
sumber
brew install Formula/flyway.rb
darihomebrew-core
direktori? itu bekerja untuk saya tanpa menggunakanraw.github..
alamatSaya sudah mencoba sebagian besar solusi di sini dan mereka sudah usang. Saya harus menggabungkan beberapa ide dari sini dengan pekerjaan saya sendiri. Sebagai hasilnya, saya membuat skrip untuk membantu saya melakukan pekerjaan berat yang dapat Anda temukan di sini
Pemakaian:
sumber
itu bisa dilakukan dengan sangat mudah untuk versi terakhir minuman.
sumber
Tidak ada yang benar-benar berfungsi untuk kasus saya (Python), jadi saya akan menambahkan 2 sen:
Output terlihat seperti ini:
Saya ingin versi
2.7.11
jadi hash saya adalahcf5da0547cd261f79d69e7ff62fdfbd2c2d646e9
(ataucf5da05
singkatnya). Selanjutnya, saya memeriksa versi itu dan menginstal rumuspython
:Akhirnya, bersihkan:
sumber
HOMEBREW_NO_AUTO_UPDATE
dan baca github.com/Homebrew/brew/issues/1188cd
brew --prefix/Homebrew
dangit log Library/Taps/homebrew/homebrew-core/Formula/python.rb
/Library/Taps
diabaikan.HOMEBREW_NO_AUTO_UPDATE
. Ya, jangan lupakan hal yang Anda butuhkan sampai setelah Anda tahu Anda membutuhkannya. xDHOMEBREW_NO_INSTALL_CLEANUP
bukankah ini sesuatu yang perlu Anda ingat?Jika Anda tidak dapat menemukan versinya
brew search <formula>
, Anda juga dapat mencoba memeriksa log komit untuk rumus Anda untuk menemukan versi yang Anda inginkan:berikut adalah contoh untuk menginstal versi nginx via brew yang lebih lama:
rumus ngxnx melakukan commit
Lihat
nginx: update 1.6.3 bottle eba75b9a1a474b9fc4df30bd0a32637fa31ec049
Dari sana, kita dapat menginstal
1.6.3
dengan ur sha dan raw git:brew install https://raw.githubusercontent.com/Homebrew/homebrew/eba75b9a1a474b9fc4df30bd0a32637fa31ec049/Library/Formula/nginx.rb
sumber
Saat ini cara lama untuk menginstal versi formula tertentu telah usang. Jadi sepertinya kita harus menggunakan
brew edit [formula]
. Misalnya katakan kita ingin menginstal62.1
versiicu4c
(diperlukan misalnya untukpostgresql 10.5
). Maka Anda harus melakukannyaDi sini Anda harus mengubah
url
,version
dansha256
(mungkin jugamirror
) ke62.1
string yang sesuai .kemudian jalankan
brew reinstall icu4c
untuk mengunduh62.1
versi akhirnya .sumber
sha256
? dalam kasus sayahttps://storage.googleapis.com/dart-archive/channels/stable/release/1.24.3/sdk/dartsdk-macos-x64-release.zip
Perbarui pada Library / Formula / postgresql.rb baris 8 ke
Dan MD5 pada jalur 9 hingga
Simpan dan keluar.
Sekarang dalam tahap ini Anda mungkin menghadapi
postgresql could not create shared memory segment
kesalahan, untuk mengatasi pembaruan/etc/sysctl.conf
seperti ini:Coba
initdb /usr/local/var/postgres
lagi, dan itu akan berjalan lancar.Untuk menjalankan postgresql saat mulai
Semoga itu bisa membantu :)
sumber
Saya baru saja menyalin rilis lama elasticsearch ke
/usr/local/Cellar/elasticsearch
direktori.Itu dia. Mungkin bermanfaat bagi siapa saja.
sumber
Saya memutuskan, bertentangan dengan penilaian saya yang lebih baik, untuk membuat formula untuk Maven 3.1.1, yang
homebrew/versions
tidak ada. Untuk melakukan ini:homebrew/versions
di github.$(brew --prefix)/Library/Taps
ke copy pekerjaan lokal garpu saya. Saya akan memanggil inimy-homebrew/versions
.my-homebrew/versions/<formula>
.homebrew/versions
untuk formula baru saya.Yay.
sumber
Untuk versi yang saat ini tidak ada dalam formula pembuatan bir default, Anda dapat dengan mudah membuat keran Anda sendiri dengan alat dari https://github.com/buildtools-version-taps/homebrew-versions-tap-tool
sumber
brew tap-new user/repo
dan kemudianbrew extract --version='Major.minor' FORMULA user/repo
dan kemudianbrew install [email protected]
.Saya membuat alat untuk memudahkan proses yang ditentukan dalam jawaban ini .
Untuk menemukan paket
pkg
dengan versia.b.c
, jalankan:Daftar ini akan melakukan komit pada
pkg
rumusan rumahan yang menyebutkan versi yang diberikan bersama dengan url GitHub mereka.Verifikasi komit dari URL yang diberikan, dan masukkan indeks komit yang dipilih.
Salin dan jalankan perintah yang diberikan untuk menginstal.
sumber