Bagaimana cara menginstal versi tertentu dari formula di homebrew? Misalnya, postgresql-8.4.4 bukannya terbaru 9.0.
TLDR: brew install [email protected]
Lihat jawaban di bawah ini untuk rincian lebih lanjut.
(Saya telah disunting ulang jawaban saya untuk memberikan yang lebih menyeluruh alur kerja untuk memasang/menggunakan versi software yang lebih tua dengan homebrew. Merasa bebas untuk menambahkan catatan jika anda menemukan versi lama lebih baik.*) Mari kita mulai dengan kasus yang paling sederhana:
Ketika menginstall homebrew formula baru, menempatkan di berversi direktori seperti /usr/local/Gudang/postgresql/9.3.1
. Hanya simbolik link ke folder ini kemudian diinstal secara global. Pada prinsipnya, hal ini membuatnya sangat mudah untuk beralih di antara dua versi diinstal. (*)
Jika anda telah menggunakan homebrew lebih lama dan tidak pernah dihapus versi lama (menggunakan, misalnya minuman pembersihan
), kemungkinan bahwa beberapa versi lama dari program anda mungkin masih berada di sekitar. Jika anda hanya ingin mengaktifkan versi sebelumnya, minuman switch
adalah cara termudah untuk melakukan hal ini.
Periksa dengan minuman info postgresql
(atau minuman beralih postgresql <TAB>
) apakah versi diinstal:
$ brew info postgresql
postgresql: stable 9.3.2 (bottled)
http://www.postgresql.org/
Conflicts with: postgres-xc
/usr/local/Cellar/postgresql/9.1.5 (2755 files, 37M)
Built from source
/usr/local/Cellar/postgresql/9.3.2 (2924 files, 39M) *
Poured from bottle
From: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/postgresql.rb
# … and some more
Kita melihat bahwa beberapa versi yang sudah diinstal. Kita dapat mengaktifkan dan menggunakan minuman switch
:
$ brew switch postgresql 9.1.5
Cleaning /usr/local/Cellar/postgresql/9.1.5
Cleaning /usr/local/Cellar/postgresql/9.3.2
384 links created for /usr/local/Cellar/postgresql/9.1.5
Mari kita periksa apa yang diaktifkan:
$ brew info postgresql
postgresql: stable 9.3.2 (bottled)
http://www.postgresql.org/
Conflicts with: postgres-xc
/usr/local/Cellar/postgresql/9.1.5 (2755 files, 37M) *
Built from source
/usr/local/Cellar/postgresql/9.3.2 (2924 files, 39M)
Poured from bottle
From: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/postgresql.rb
# … and some more
*
telah pindah ke versi baru diaktifkan
() Harap dicatat bahwa minuman switch
hanya bekerja selama semua dependensi dari versi yang lebih tua masih ada. Dalam beberapa kasus, membangun kembali dari versi yang lebih tua mungkin menjadi perlu. Oleh karena itu, menggunakan minuman switch
ini terutama berguna ketika seseorang ingin beralih di antara dua versi yang tidak terlalu jauh.*
2) Memeriksa, apakah versi ini tersedia sebagai tap Terutama yang lebih besar untuk proyek-proyek perangkat lunak, hal ini sangat mungkin bahwa ada permintaan yang cukup tinggi untuk beberapa (berpotensi API yang tidak kompatibel) versi utama dari bagian tertentu dari perangkat lunak. Per Maret 2012, Homebrew 0.9 menyediakan mekanisme untuk hal ini: minuman tekan
& homebrew versi repositori.
Yang versi repositori mungkin termasuk backport dari versi yang lebih tua untuk beberapa formula. (Sebagian besar hanya besar dan orang terkenal, tapi tentu saja mereka juga akan memiliki beberapa formula untuk postgresql.)
brew pencarian postgresql
akan menunjukkan anda di mana untuk melihat:
$ brew search postgresql
postgresql
homebrew/versions/postgresql8 homebrew/versions/postgresql91
homebrew/versions/postgresql9 homebrew/versions/postgresql92
Kita hanya dapat menginstalnya dengan mengetik
$ brew install homebrew/versions/postgresql8
Cloning into '/usr/local/Library/Taps/homebrew-versions'...
remote: Counting objects: 1563, done.
remote: Compressing objects: 100% (943/943), done.
remote: Total 1563 (delta 864), reused 1272 (delta 620)
Receiving objects: 100% (1563/1563), 422.83 KiB | 339.00 KiB/s, done.
Resolving deltas: 100% (864/864), done.
Checking connectivity... done.
Tapped 125 formula
==> Downloading http://ftp.postgresql.org/pub/source/v8.4.19/postgresql-8.4.19.tar.bz2
# …
Catatan ini telah secara otomatis disadap the homebrew/versi
ketuk. (Periksa dengan minuman tap
, hapus dengan minuman untap homebrew/versi
.) Berikut ini akan setara dengan:
$ brew tap homebrew/versions
$ brew install postgresql8
Berikut pendekatan yang terdaftar sebagian besar untuk kelengkapan. Keduanya mencoba untuk menghidupkan kembali beberapa mayat hidup formula dari minuman repositori. Karena untuk berubah ketergantungan, perubahan API di formula spec atau hanya perubahan di download URL, hal-hal yang mungkin atau mungkin tidak bekerja.
Karena seluruh formula direktori adalah sebuah repositori git, satu dapat menginstal versi tertentu menggunakan plain perintah git. Namun, kita perlu menemukan cara untuk mendapatkan komit mana versi lama masih tersedia.
a) masa bersejarah
Antara april 2011 dan november 2014, homebrew memiliki minuman versi
perintah, yang meludahkan semua versi yang tersedia dengan masing-masing hash SHA. Pada oktober 2014, anda harus melakukan minuman tekan homebrew/boneyard
sebelum anda dapat menggunakannya. Nama ketuk namanya, anda mungkin harus melakukan ini hanya sebagai pilihan terakhir.
E. g.
$ brew versions postgresql
Warning: brew-versions is unsupported and may be removed soon.
Please use the homebrew-versions tap instead:
https://github.com/Homebrew/homebrew-versions
9.3.2 git checkout 3c86d2b Library/Formula/postgresql.rb
9.3.1 git checkout a267a3e Library/Formula/postgresql.rb
9.3.0 git checkout ae59e09 Library/Formula/postgresql.rb
9.2.4 git checkout e3ac215 Library/Formula/postgresql.rb
9.2.3 git checkout c80b37c Library/Formula/postgresql.rb
9.2.2 git checkout 9076baa Library/Formula/postgresql.rb
9.2.1 git checkout 5825f62 Library/Formula/postgresql.rb
9.2.0 git checkout 2f6cbc6 Library/Formula/postgresql.rb
9.1.5 git checkout 6b8d25f Library/Formula/postgresql.rb
9.1.4 git checkout c40c7bf Library/Formula/postgresql.rb
9.1.3 git checkout 05c7954 Library/Formula/postgresql.rb
9.1.2 git checkout dfcc838 Library/Formula/postgresql.rb
9.1.1 git checkout 4ef8fb0 Library/Formula/postgresql.rb
9.0.4 git checkout 2accac4 Library/Formula/postgresql.rb
9.0.3 git checkout b782d9d Library/Formula/postgresql.rb
Seperti yang anda lihat, itu menyarankan agar tidak menggunakan itu. Homebrew meludah keluar semua versi dapat menemukan dengan internal heuristik dan menunjukkan cara untuk mengambil old formula. Mari kita coba.
# First, go to the homebrew base directory
$ cd $( brew --prefix )
# Checkout some old formula
$ git checkout 6b8d25f Library/Formula/postgresql.rb
$ brew install postgresql
# … installing
Sekarang yang lebih tua postgresql versi diinstal, kita bisa re-install formula terbaru dalam rangka untuk menjaga repositori kami bersih:
$ git checkout -- Library/Formula/postgresql.rb
minuman switch
adalah teman anda untuk mengubah antara yang lama dan yang baru.
b) zaman prasejarah
Untuk kebutuhan khusus, kita juga dapat mencoba sendiri menggali melalui homebrew repo.
$ cd Library/Taps/homebrew/homebrew-core && git log -S'8.4.4' -- Formula/postgresql.rb
git log -S
terlihat untuk semua komit di mana string'8.4.4'
entah ditambahkan atau dihapus dalam file Perpustakaan/Pdam/homebrew/homebrew-core/Rumus/postgresql.rb
. Kami mendapatkan dua komit sebagai hasilnya.
commit 7dc7ccef9e1ab7d2fc351d7935c96a0e0b031552
Author: Aku Kotkavuo
Date: Sun Sep 19 18:03:41 2010 +0300
Update PostgreSQL to 9.0.0.
Signed-off-by: Adam Vandenberg
commit fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422
Author: David Höppner
Date: Sun May 16 12:35:18 2010 +0200
postgresql: update version to 8.4.4
Jelas, fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422
adalah melakukan yang kita minati. Saat melakukan ini cukup lama, kami akan mencoba untuk downgrade lengkap homebrew instalasi (dengan cara itu, formula API adalah lebih atau kurang dijamin valid):
$ git checkout -b postgresql-8.4.4 fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422
$ brew install postgresql
$ git checkout master
$ git branch -d postgresql-8.4.4
Jika anda ingin menyimpan versi tertentu, katakanlah postgresql, di sekitar dan berhenti dari yang diperbarui ketika anda melakukan alam minuman update; minuman upgrade
prosedur, anda dapat pin rumus:
$ brew pin postgresql
Disematkan formula yang tercantum dalam /usr/local/Perpustakaan/PinnedKegs/
dan sekali anda ingin membawa perubahan terbaru dan pembaruan, anda dapat unpin lagi:
$ brew unpin postgresql
Sekarang bahwa Homebrew/versi yang telah usang, Homebrew/core mendukung beberapa versi dari formula dengan penamaan baru format.
Untuk menginstal versi tertentu, misalnya postgresql 9.5 anda cukup menjalankan:
$ brew install [email protected]
Untuk daftar versi yang tersedia menjalankan pencarian dengan @:
$ brew search postgresql@
==> Searching local taps...
[email protected] ✔ [email protected] [email protected] [email protected]
Ada's sekarang cara yang lebih mudah untuk menginstal versi lama dari formula yang anda'd diinstal sebelumnya. Cukup gunakan
brew switch [formula] [version]
Misalnya, saya bergantian secara teratur antara Node.js 0.4.12 dan 0.6.5:
brew switch node 0.4.12
brew switch node 0.6.5
Sejak minuman switch
hanya perubahan symlink, it's sangat cepat. Lihat dokumentasi lebih lanjut di Homebrew Wiki di bawah Perintah Eksternal.
Update: 1/15/2015
brew install <url>
(mungkin harus minuman unlink
pertama, misal minuman unlink docker
)minuman beralih docker 1.3.3
minuman beralih docker 1.4.1
Dari ini inti
brew update
brew versions FORMULA
cd `brew --prefix`
git checkout HASH Library/Formula/FORMULA.rb # use output of "brew versions"
brew install FORMULA
brew switch FORMULA VERSION
git checkout -- Library/Formula/FORMULA.rb # reset formula
## Example: Using Subversion 1.6.17
#
# $ brew versions subversion
# 1.7.3 git checkout f8bf2f3 /usr/local/Library/Formula/subversion.rb
# 1.7.2 git checkout d89bf83 /usr/local/Library/Formula/subversion.rb
# 1.6.17 git checkout 6e2d550 /usr/local/Library/Formula/subversion.rb
# 1.6.16 git checkout 83ed494 /usr/local/Library/Formula/subversion.rb
# 1.6.15 git checkout 809a18a /usr/local/Library/Formula/subversion.rb
# 1.6.13 git checkout 7871a99 /usr/local/Library/Formula/subversion.rb
# 1.6.12 git checkout c99b3ac /usr/local/Library/Formula/subversion.rb
# 1.6.6 git checkout 8774131 /usr/local/Library/Formula/subversion.rb
# 1.6.5 git checkout a82e823 /usr/local/Library/Formula/subversion.rb
# 1.6.3 git checkout 6b6d369 /usr/local/Library/Formula/subversion.rb
# $ cd `brew --prefix`
# $ git checkout 6e2d550 /usr/local/Library/Formula/subversion.rb
# $ brew install subversion
# $ brew switch subversion 1.6.17
# $ git checkout -- Library/Formula/subversion.rb
I've menemukan alternatif yang lebih baik solusi maka solusi yang kompleks.
brew install https://raw.github.com/Homebrew/homebrew-versions/master/postgresql8.rb
Ini akan men-download 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 yang memiliki koleksi langka formulars untuk minuman dengan.
Jika anda mencari untuk MySQL 5.1.x, memberikan ini mencoba.
brew install https://raw.github.com/Homebrew/homebrew-versions/master/mysql51.rb
Sepanjang garis dari @halfcube's saran, ini bekerja dengan sangat baik:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb
Anda dapat menggunakan strategi mengidentifikasi rumus dan komit dalam sejarah formula yang sesuai dengan versi dari paket yang anda'd seperti untuk menginstal.
Tekan t
pada keyboard anda untuk mengaktifkan file finder.
Mengidentifikasi formula yang terlihat paling relevan, mungkin: Formula/mysql.rb
, membawa anda ke cara pembuatan file location: https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql.rb.
Melihat sejarah revisi dengan mengklik pada Sejarah
tombol, yang terletak di https://github.com/Homebrew/homebrew-core/commits/master/Formula/mysql.rb. Jika anda're tertarik pada MySQL 5.7.10, anda mungkin ingin untuk klik revisi terbaru sebelum 5.7.11, yang menavigasi ke GitHub melakukan:
CATATAN: Anda mungkin harus melihat komit sejarah di konsol anda per GitHub's saran jika melakukan sejarah yang tidak memuat di browser anda. Mengganti komit SHA diatas di URL jika anda're tertarik melihat yang komit pada GitHub. Atau, langsung ke langkah 7, di bawah ini.
Klik "Melihat" tombol untuk lihat sumber untuk mysql.rb file setelah melakukan itu diterapkan.
Kemudian klik "Raw" tombol untuk melihat sumber baku.
Copy URL. Atau, membangun URL diri dengan mysql.rb
nama file untuk mengidentifikasi formula anda dan versi tertentu dari formula itu (diidentifikasi oleh commmit SHA di URL di bawah ini).
$ brew install [URL dari langkah 7]
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/c77882756a832ac1d87e7396c114158e5619016c/Formula/mysql.rb
CATATAN: jawaban Ini telah diperbarui untuk account untuk menghilangkan braumeister.org website. Prinsip yang sama berlaku, braumeister hanya disediakan pemula-cara yang ramah untuk menavigasi formula versi.
Aku hanya menggunakan Homebrew untuk kembali ke Maven 2.2.1 sejak sederhana brew install maven
dipasang Maven 3.0.3.
Pertama, anda harus meninggalkan maven dir ada jadi
$ brew unlink maven
Gunakan minuman tekan command
$ brew tekan homebrew/versi Kloning ke '/usr/local/Perpustakaan/Pdam/homebrew-versi'... remote: Menghitung benda-benda: 590, dilakukan. remote: Mengompresi benda: 100% (265/265), dilakukan. remote: Total 590 (delta 362), kembali 549 (delta 325) Menerima benda-benda: 100% (590/590), 117.49 KiB | 79 KiB/s, dilakukan. Menyelesaikan delta: 100% (362/362), dilakukan. Disadap 50 formula
Sekarang anda dapat menginstal maven2 rumus:
$ brew install maven2 ==> Download http://www.apache.org/dist/maven/maven-2/2.2.1/binaries/apache-maven-2.2.1-bin.tar.gz ######################################################################## 100.0% /usr/local/Gudang/maven2/2.2.1: 10 file, 3,1 M, dibangun dalam 6 detik
$ mvn --versi Apache Maven 2.2.1 (r801777; 2009-08-06 12:16:01-0700) Java versi: 1.6.0_37 Rumah jawa: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Isi/Home Default locale: en_US, platform encoding: MacRoman Nama OS: "mac os x" versi: "10.7.4" arch: "x86_64" Family: "mac"
Edit:
Anda juga dapat hanya minuman beralih maven 2.2.1
untuk beralih ke versi yang berbeda.
Edit: Apache Maven project direorganisasi mereka repo. Diperbarui jawaban ini untuk memperhitungkan perubahan ini.
Berdasarkan alur kerja yang dijelaskan oleh @tschundeee dan @Debilski update 1, saya otomatis prosedur dan ditambahkan pembersihan dalam script.
Download, memasukkannya ke dalam path anda dan brewv <formula_name> <wanted_version>
. Untuk OP, itu akan menjadi:
cd path/to/downloaded/script/
./brewv postgresql 8.4.4
:)
Sebagian besar jawaban yang lain yang usang sekarang. Sayangnya Homebrew masih tidak memiliki builtin cara menginstal versi lama, kecuali yang versi ada sebagai formula terpisah (misalnya python@2
, [email protected]
...).
Untungnya, untuk formula lain ada cara yang lebih mudah daripada berbelit-belit kekacauan yang digunakan untuk menjadi diperlukan. Berikut ini adalah petunjuk lengkap:
minuman log formula
minuman log --format=format:%H\ %s -F --grep="versi" "formula"
Ini akan menampilkan daftar dari melakukan hash. Ambil salah satu yang sesuai (sebagian besar itu harus cukup jelas, dan biasanya adalah yang paling baru-baru ini (yaitu, atas) satu.
minuman info "formula" | grep ^Dari:
Memperbaiki URL:
Ganti github.com
dengan raw.githubusercontent.com
Ganti blob/master
dengan melakukan hash yang kami temukan di langkah pertama.
Menginstal versi yang diinginkan dengan mengganti master
dalam sebelumnya menemukan URL dengan melakukan hash, misalnya:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/"hash"/Rumus/"formula".rb
(Langkah terakhir mungkin memerlukan berjalan minuman unlink "formula"
sebelumnya.)
Jika anda telah menyalin melakukan hash yang ingin anda gunakan, anda dapat menggunakan sesuatu seperti contoh ini untuk menginstal versi yang menggantikan nilai dan bash
dengan anda melakukan hash dan rumus yang anda inginkan.
BREW_VERSION_SHA=32353d2286f850fd965e0a48bcf692b83a6e9a41
BREW_FORMULA_NAME=bash
brew info $BREW_FORMULA_NAME \
| sed -n \
-e '/^From: /s///' \
-e 's/github.com/raw.githubusercontent.com/' \
-e 's%blob/%%' \
-e "s/master/$BREW_VERSION_SHA/p" \
| xargs brew install
Contoh ini adalah menginstal bash 4.4.23 bukan bash 5, meskipun jika anda melakukan minuman upgrade
sesudahnya maka bash 5 akan mendapatkan diinstal di atas, kecuali anda pertama kali dieksekusi minuman pin bash
. Bukan untuk membuat ini lebih halus TANPA pin, anda harus terlebih dahulu menginstal terbaru dengan brew install bash
, kemudian minuman unlink bash
, kemudian install versi yang lebih tua yang anda inginkan per script di atas, dan kemudian menggunakan minuman beralih bash 4.4.23
untuk mengatur symlink ke versi yang lebih tua. Sekarang minuman upgrade
tidak't mempengaruhi versi Bash. Anda dapat minuman beralih bash
untuk mendapatkan daftar versi yang tersedia untuk beralih ke.
Cara lain untuk mencapai tujuan yang sama akan muncul:
`` minuman tap-new username/repo-nama
minuman ekstrak --versi='4.4.23' bash username/repo-nama brew install [email protected]
``
Hal ini menciptakan sebuah formula@versi
di kustom anda tekan yang dapat anda instal per contoh di atas. The downside adalah bahwa anda mungkin masih perlu minuman unlink bash
dan kemudian minuman link [email protected]
dalam rangka untuk menggunakan versi tertentu dari Bash atau formula yang lain.
Diperbarui menjawab karena yang menambah apa @lance-pollard sudah diposting sebagai jawaban kerja.
Cara Menginstal versi tertentu dari Formula (formula yang digunakan dalam contoh ini adalah terraform
):
git log master-Rumus/terraform.rb
jika anda memiliki clone repo lokal.brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
Pada versi terbaru dari homebrew (0.9.5 seperti tulisan ini) akan ada resep khusus untuk versi homebrew tong yang ingin anda instal. Contoh:
$ brew search mongodb
mongodb mongodb24 mongodb26
Kemudian hanya melakukan brew install mongodb26
seperti normal.
Dalam hal bahwa anda telah menginstal versi terbaru, pastikan untuk menghapus link versi terbaru dan link versi yang diinginkan: minuman unlink mongodb && minuman link mongodb26
.
Sayangnya Homebrew masih tidak memiliki jelas builtin cara menginstal versi yang lebih tua.
Untungnya, bagi kebanyakan rumus-rumus ada cara yang lebih mudah daripada berbelit-belit kekacauan yang digunakan untuk menjadi diperlukan. Berikut ini adalah petunjuk lengkap menggunakan bash
sebagai contoh:
`` minuman tap-baru $USER/local-ketuk
minuman ekstrak --version=4.4.23 bash $USER/local-ketuk
brew install [email protected]
``
Hal ini menciptakan formula@versi
di kustom anda tekan yang dapat anda instal per contoh di atas. Catatan penting adalah bahwa anda mungkin perlu untuk minuman unlink bash
jika sebelumnya anda telah menginstal default/versi terbaru dari rumus dan kemudian minuman link [email protected]
dalam rangka untuk menggunakan versi tertentu dari Bash (atau formula yang lain di mana anda memiliki terbaru dan versi yang lebih tua diinstal).
Potensi kelemahan dari metode ini adalah anda dapat't dengan mudah beralih bolak-balik antara kedua versi tersebut karena menurut minuman
itu adalah "rumus yang berbeda".
Jika anda ingin dapat menggunakan minuman beralih $RUMUS $VERSI
anda harus menggunakan metode berikutnya.
Contoh ini menunjukkan menginstal lebih tua bash 4.4.23, contoh yang berguna karena bash
formula saat menginstall bash 5.
brew install bash
minuman unlink bash
minuman beralih bash 4.4.23
untuk mengatur symlink ke versiJika anda melakukan minuman upgrade
setelah menginstal versi lama tanpa instalasi terbaru pertama, kemudian yang terbaru akan mendapatkan diinstal clobbering versi lama, kecuali anda pertama kali dieksekusi minuman pin bash
.
Langkah-langkah berikut ini MENGHINDARI menyematkan karena itu mudah untuk melupakan dan anda bisa pin anda ke versi yang menjadi tidak aman di masa depan (lihat Shellshock/dll). Dengan setup ini yang minuman upgrade
tidak't mempengaruhi versi Bash dan anda selalu dapat menjalankan minuman beralih bash
untuk mendapatkan daftar versi yang tersedia untuk beralih ke.
Copy dan paste dan edit ekspor
baris dari potongan kode berikut ini untuk update dengan versi yang anda inginkan dan formula nama, kemudian copy dan paste sisanya sebagai-dan itu akan menggunakan variabel tersebut untuk melakukan sihir.
``
ekspor BREW_FORMULA_SEARCH_VERSION=4.4.23 BREW_FORMULA_NAME=bash
git -C $(minuman --repo homebrew/inti) log \ --format=format:%H\ %s -F-semua-pertandingan \ --grep=$BREW_FORMULA_SEARCH_VERSION --grep=$BREW_FORMULA_NAME ``
Ketika anda yakin versi yang ada dalam rumus, anda dapat menggunakan berikut:
``
ekspor BREW_FORMULA_VERSION_SHA=$(git -C $(minuman --repo homebrew/inti) log \ --format=format:%H\ %s -F-semua-pertandingan \ --grep=$BREW_FORMULA_SEARCH_VERSION --grep=$BREW_FORMULA_NAME | \ kepala -1 | awk '{print $1}') ``
Setelah anda telah diekspor melakukan hash yang ingin anda gunakan, anda dapat menggunakan ini untuk menginstal versi paket.
minuman info $BREW_FORMULA_NAME \ | sed -n \ -e '/^Dari: /s///' \ -e 's/github.com/baku.githubusercontent.com/' \ -e 's%blob/%%' \ -e "s/master/$BREW_FORMULA_VERSION_SHA/p" \ | xargs minuman menginstal
Ikuti petunjuk dalam rumus keluaran dimasukkan ke dalam PATH anda atau mengaturnya sebagai default shell.
Masalah dengan homebrew/versi
adalah bahwa seseorang harus memiliki versi khusus dari perangkat lunak yang tercantum dalam repositori untuk anda untuk dapat menggunakannya. Juga, karena minuman versi ini tidak lagi didukung, solusi lain yang diperlukan. Untuk solusi yang menunjukkan menggunakan
minuman switch, ini hanya akan bekerja jika anda belum't melakukan
minuman pembersihan` sejak versi perlu ada pada komputer anda.
Saya punya masalah dengan ingin menginstal versi yang lebih tua dari docker-mesin
yang tidak't tercantum dalam homebrew/versi
. Aku soal ini dengan menggunakan kode di bawah ini, yang juga harus bekerja untuk setiap minuman perangkat lunak yang diinstal. Contoh di bawah ini akan menggunakan docker-mesin
sebagai paket saya ingin downgrade dari versi 0.5.0 untuk 0.4.1.
Pergi ke homebrew Formula
direktori.
Anda dapat menentukan hal ini dengan menjalankan brew info [setiap nama paket]
.
Misalnya, minuman info docker-mesin
memberi saya garis yang menunjukkan saya
jalan - /usr/local/Gudang/docker-mesin/0.5.0
. Ini memberitahu saya bahwa pada mesin saya, homebrew dipasang di /usr/local ' dan saya
Formula direktori ini terletak secara default di/usr/local/Perpustakaan/Rumus
Menemukan rumus tertentu file (.rb) untuk paket anda.
Karena saya ingin downgrade docker-mesin
, saya bisa melihat docker-mesin.rb
file.
Dapatkan versi sejarah untuk formula ini file .
Masukkan git log docker-mesin.rb
. Ini daftar lengkap komit sejarah untuk file ini. Anda akan melihat output seperti ini:
...lebih lanjutcommit 20c7abc13d2edd67c8c1d30c407bd5e31229cacc Author: BrewTestBot <[email protected]> Date: Thu Nov 5 16:14:18 2015 +0000 docker-machine: update 0.5.0 bottle. commit 8f615708184884e501bf5c16482c95eff6aea637 Author: Vincent Lesierse <[email protected]> Date: Tue Oct 27 22:25:30 2015 +0100 docker-machine 0.5.0 Updated docker-machine to 0.5.0 Closes #45403. Signed-off-by: Dominyk Tiller <[email protected]> commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423 Author: BrewTestBot <[email protected]> Date: Mon Sep 21 14:04:04 2015 +0100 docker-machine: update 0.4.1 bottle. commit 18fcbd36d22fa0c19406d699308fafb44e4c8dcd Author: BrewTestBot <[email protected]> Date: Sun Aug 16 09:05:56 2015 +0100 docker-machine: update 0.4.1 bottle. ...more
Bagian yang sulit adalah untuk menemukan terbaru komit untuk versi tertentu yang anda inginkan. Di atas, saya dapat memberitahu terbaru versi 0.4.1 dilakukan dengan melakukan tag : melakukan 5970e1af9b13dcbeffd281ae57c9ab90316ba423
. Komit di atas titik ini mulai menggunakan versi 0.5.0 (git log entri terdaftar dari terbaru untuk tanggal awal).
git checkout 5970e1 docker-mesin.rb
Uninstall anda saat ini versi paket.
Hanya berjalan normal minuman perintah untuk meng-uninstall versi saat ini paket anda.
Ex. minuman uninstall docker-mesin
Menginstal paket yang lebih tua versi
Sekarang, anda hanya dapat berjalan normal brew install perintah dan akan menginstal rumus yang telah anda pelajari keluar.
Ex. brew install docker-mesin
Anda mungkin perlu untuk re-link dengan menggunakan minuman link docker-mesin
jika diperlukan.
Jika suatu saat anda ingin kembali ke versi terbaru dari paket tertentu, pergi ke Formula direktori dan mengeluarkan perintah berikut pada rumus file (.rb)
git reset HEAD docker-machine.rb
git checkout -- docker-machine.rb
Kemudian anda bisa menyeduh uninstall docker-mesindan
minuman menginstal docker-mesin` untuk mendapatkan versi terbaru dan tetap seperti itu akan maju.
cd /usr/local/Homebrew/Perpustakaan/Pdam/homebrew/homebrew-core/
ATAU
git clone [email protected]:Homebrew/homebrew-core.git
git log master-Rumus/flyway.rb
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/793abfa325531415184e1549836c982b39e89299/Formula/flyway.rb
I've mencoba sebagian besar dari solusi di sini dan mereka sudah ketinggalan jaman. Saya harus menggabungkan beberapa ide dari sini dengan pekerjaan saya sendiri. Akibatnya saya've dibuat script untuk membantu saya melakukan angkat berat yang dapat anda temukan di sini
Penggunaan:
brewv.sh formula_name desired_version
hal itu bisa dilakukan dengan sangat mudah untuk versi terakhir dari minuman.
brew tap homebrew/versions
brew install subversion17 # for svn 1.7 branch instead of last available
brew install postgresql8 # for postgresql 8 (which you ask)
Jika anda dapat't menemukan versi dengan brew pencarian <rumus>
, anda juga dapat mencoba akan lebih komit log untuk formula anda untuk menemukan versi yang anda inginkan:
berikut adalah contoh untuk menginstal versi lama dari nginx melalui minuman:
lihat nginx: update 1.6.3 botol eba75b9a1a474b9fc4df30bd0a32637fa31ec049
Dari sana, kita dapat menginstal 1.6.3
dengan sha dan baku git url:
brew install https://raw.githubusercontent.com/Homebrew/homebrew/eba75b9a1a474b9fc4df30bd0a32637fa31ec049/Library/Formula/nginx.rb
Tak satu pun dari ini benar-benar bekerja untuk kasus saya (Python), jadi saya'll add my 2 cents:
cd `brew --prefix`
git log Library/Formula/python.rb
Output akan terlihat seperti ini:
melakukan 9ff2d8ca791ed1bd149fb8be063db0ed6a67a6de Penulis: Dominyk Anakan [email protected] Date: Thu Jun 30 17:42:18 2016 +0100
python: memperjelas alasan pour_bottle
melakukan cb3b29b824a264895434214e191d0d7ef4d51c85 Penulis: BrewTestBot [email protected] Date: Wed Jun 29 14:18:40 2016 +0100
python: update 2.7.12 botol.
melakukan 45bb1e220341894bbb7de6fd3f6df20987dc14f0 Penulis: Rakesh [email protected] Date: Wed Jun 29 10:02:26 2016 +0530
python 2.7.12
Menutup #2452.
Sign-off-oleh: Tim D. Smith [email protected]
melakukan cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9 Penulis: BrewTestBot [email protected] Date: Fri Jun 17 20:14:36 2016 +0100
python: update 2.7.11 botol.
...
Aku ingin versi 2.7.11
jadi saya hash adalah cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9
(atau cf5da05
untuk pendek). Selanjutnya, saya periksa dan menginstal versi rumus python
:
git checkout cf5da05
brew install python
Akhirnya, membersihkan:
git checkout master
Saat ini cara-cara lama untuk menginstal formula khusus versi yang telah usang. Jadi sepertinya kita harus menggunakan minuman edit [formula]
. E. g. katakanlah kita ingin menginstal sebuah 62.1
versi icu4c
(diperlukan misalnya untuk postgresql 10.5
). Kemudian anda'a harus
> brew edit icu4c
# drops you to editor
Di sini anda'd harus mengubah url
, versi
dan sha256
(mungkin juga cermin
) yang sesuai 62.1
string.
url "https://ssl.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz"
mirror "https://github.com/unicode-org/icu/releases/download/release-62-1/icu4c-62_1-src.tgz"
version "62.1"
sha256 "3dd9868d666350dda66a6e305eecde9d479fb70b30d5b55d78a1deffb97d5aa3"
kemudian jalankan minuman instal ulang icu4c
akhirnya men-download 62.1
versi.