Homebrew menginstal versi tertentu dari formula?

Bagaimana cara menginstal versi tertentu dari formula di homebrew? Misalnya, postgresql-8.4.4 bukannya terbaru 9.0.

Mengomentari pertanyaan (2)
Larutan

TLDR: brew install postgresql@8.4.4 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:

  1. Memeriksa, apakah versi ini sudah terpasang (tapi tidak diaktifkan)

    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

Perhatikan bahwa bintang * 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

Selama backported versi formula tetap up-to-date, pendekatan ini mungkin adalah cara terbaik untuk berurusan dengan perangkat lunak yang lebih tua. 3) Mencoba beberapa formula dari masa lalu

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&#39;8.4.4&#39; 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

Anda mungkin melewatkan perintah terakhir untuk menjaga referensi anda dalam repositori git. Satu catatan: Ketika memeriksa lebih tua komit, untuk sementara anda downgrade homebrew instalasi. Jadi, anda harus berhati-hati karena beberapa perintah di homebrew mungkin berbeda untuk versi terbaru. 4) secara Manual menulis rumus

Hal ini tidak terlalu sulit dan anda kemudian dapat meng-upload anda sendiri repositori. Digunakan untuk menjadi Homebrew-Versi, tapi itu sekarang dihentikan. A.) Bonus: Pin

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
Komentar (48)

Alur Kerja Sederhana

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 postgresql@9.5

Untuk daftar versi yang tersedia menjalankan pencarian dengan @:

$ brew search postgresql@
==> Searching local taps...
postgresql@10.1 ✔     postgresql@9.4        postgresql@9.5        postgresql@9.6
Komentar (14)

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.

Komentar (7)

Update: 1/15/2015

  • Menemukan komit sejarah perangkat lunak yang diinginkan dan versi. misalnya saya perlu beralih dari docker versi 1.4.1 untuk 1.3.3: https://github.com/Homebrew/homebrew-core/commits/master/Formula/docker.rb
  • Melihat file dengan tombol ini:
  • Klik Baku tombol:
  • Copy URL (docker.rb url dalam contoh ini) dari address bar
  • brew install <url> (mungkin harus minuman unlink pertama, misal minuman unlink docker)
  • minuman beralih docker 1.3.3
  • Beralih kembali ke docker 1.4.1 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
Komentar (13)

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
Komentar (9)

Sepanjang garis dari @halfcube's saran, ini bekerja dengan sangat baik:

  1. Menemukan perpustakaan anda'kembali mencari di https://github.com/Homebrew/homebrew-core/tree/master/Formula
  2. Klik: https://github.com/Homebrew/homebrew-core/blob/master/Formula/postgresql.rb
  3. Klik "sejarah" tombol untuk melihat lama melakukan: https://github.com/Homebrew/homebrew-core/commits/master/Formula/postgresql.rb
  4. Klik salah satu yang anda inginkan: "postgresql: versi update untuk 8.4.4", https://github.com/Homebrew/homebrew-core/blob/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb
  5. Klik "raw" link: https://raw.githubusercontent.com/Homebrew/homebrew-core/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb
  6. brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb
Komentar (7)

Anda dapat menggunakan strategi mengidentifikasi rumus dan komit dalam sejarah formula yang sesuai dengan versi dari paket yang anda'd seperti untuk menginstal.

  1. Pergi ke https://github.com/Homebrew/homebrew-core

  2. Tekan t pada keyboard anda untuk mengaktifkan file finder.

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

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

https://github.com/Homebrew/homebrew-core/commit/c77882756a832ac1d87e7396c114158e5619016c#Formula/mysql.rb

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.

  1. Klik "Melihat" tombol untuk lihat sumber untuk mysql.rb file setelah melakukan itu diterapkan.

  2. Kemudian klik "Raw" tombol untuk melihat sumber baku.

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

https://raw.githubusercontent.com/Homebrew/homebrew-core/c77882756a832ac1d87e7396c114158e5619016c/Formula/mysql.rb

  1. Menginstalnya dengan $ 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.

Komentar (8)

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.

Komentar (4)

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

:)

Komentar (2)

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, postgresql@9.4 ...).

Untungnya, untuk formula lain ada cara yang lebih mudah daripada berbelit-belit kekacauan yang digunakan untuk menjadi diperlukan. Berikut ini adalah petunjuk lengkap:

  1. Pencarian untuk versi yang benar dalam log:

minuman log formula

Scroll down/up dengan j/k atau tombol panah

atau gunakan misalnya. /4.4.23 untuk mencari versi tertentu

Sintaks ini hanya bekerja pada pra-2.0 Homebrew versi

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.

  1. Menemukan URL di mana formula yang tinggal di hulu repositori:

minuman info "formula" | grep ^Dari:

  1. Memperbaiki URL:

  2. Ganti github.com dengan raw.githubusercontent.com

  3. Ganti blob/master dengan melakukan hash yang kami temukan di langkah pertama.

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


Alternatif menggunakan custom lokal-hanya tekan

Cara lain untuk mencapai tujuan yang sama akan muncul:

`` minuman tap-new username/repo-nama

ekstrak dengan versi yang tampaknya untuk menjalankan grep di bawah tenda

minuman ekstrak --versi='4.4.23' bash username/repo-nama brew install bash@4.4.23

Catatan ini "gagal" ketika mencoba untuk ambil botol untuk paket dan tampaknya telah

beberapa aneh dua kali lipat dari versi yang di output, tapi ini bukan't fatal.

``

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 bash@4.4.23 dalam rangka untuk menggunakan versi tertentu dari Bash atau formula yang lain.

Komentar (7)

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):

  1. Menemukan rumus file, e.g: https://github.com/Homebrew/homebrew-core/blob/master/Formula/terraform.rb
  2. Dapatkan komit versi dari github sejarah dengan https://github.com/Homebrew/homebrew-core/commits/master/Formula/terraform.rb atau git log master-Rumus/terraform.rb jika anda memiliki clone repo lokal.
  3. Dapatkan baku git URL dengan melakukan versi rumus: Jika rumus link di github.com ini https://github.com/Homebrew/homebrew-core/blob/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb anda, URL mentah akan: https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
  4. Menginstalnya dengan: brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
Komentar (1)

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.

Komentar (2)

Metode resmi ( dilihat dari tanggapan untuk https://github.com/Homebrew/brew/issues/6028 )

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

ekstrak dengan versi yang tampaknya untuk menjalankan git log --grep` di bawah tenda

minuman ekstrak --version=4.4.23 bash $USER/local-ketuk

Menginstal versi baru dari keran

brew install bash@4.4.23

Catatan ini "gagal" mencoba untuk ambil botol untuk paket dan tampaknya telah

beberapa aneh dua kali lipat dari versi yang di output, tapi ini bukan't fatal.

``

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 bash@4.4.23 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.


Scripted Metode (Direkomendasikan)

Contoh ini menunjukkan menginstal lebih tua bash 4.4.23, contoh yang berguna karena bash formula saat menginstall bash 5.

  • Pertama kali menginstal versi terbaru dari rumus dengan brew install bash
  • kemudian minuman unlink bash
  • kemudian install versi yang lebih tua yang anda inginkan sesuai dengan cuplikan di bawah ini
  • akhirnya menggunakan minuman beralih bash 4.4.23 untuk mengatur symlink ke versi

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

``

Pencarian ini sintaks bekerja dengan yang lebih baru Homebrew

ekspor BREW_FORMULA_SEARCH_VERSION=4.4.23 BREW_FORMULA_NAME=bash

Ini akan mencetak/semua melakukan yang sesuai dengan versi dan formula nama

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:

``

Hanya mendapat terbaru Git commit SHA untuk script lebih bawah

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 &#39;/^Dari: /s///&#39; \ -e &#39;s/github.com/baku.githubusercontent.com/&#39; \ -e &#39;s%blob/%%&#39; \ -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.

Komentar (1)

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 menggunakanminuman switch, ini hanya akan bekerja jika anda belum&#39;t melakukanminuman 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.

  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 sayaFormula direktori ini terletak secara default di/usr/local/Perpustakaan/Rumus

  2. Menemukan rumus tertentu file (.rb) untuk paket anda. Karena saya ingin downgrade docker-mesin, saya bisa melihat docker-mesin.rb file.

  3. 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 lanjut 
commit 20c7abc13d2edd67c8c1d30c407bd5e31229cacc
Author: BrewTestBot 
Date:   Thu Nov 5 16:14:18 2015 +0000

    docker-machine: update 0.5.0 bottle.

commit 8f615708184884e501bf5c16482c95eff6aea637
Author: Vincent Lesierse 
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 

commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423
Author: BrewTestBot 
Date:   Mon Sep 21 14:04:04 2015 +0100

    docker-machine: update 0.4.1 bottle.

commit 18fcbd36d22fa0c19406d699308fafb44e4c8dcd
Author: BrewTestBot 
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).

  1. Dapatkan versi sebelumnya dari rumus berkas. Menggunakan komit tag dari langkah #3 (anda dapat menggunakan yang pertama 6 karakter), anda bisa mendapatkan versi yang lebih tua dari file menggunakan rumus berikut:

git checkout 5970e1 docker-mesin.rb

  1. Uninstall anda saat ini versi paket. Hanya berjalan normal minuman perintah untuk meng-uninstall versi saat ini paket anda. Ex. minuman uninstall docker-mesin

  2. 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-mesindanminuman menginstal docker-mesin` untuk mendapatkan versi terbaru dan tetap seperti itu akan maju.

Komentar (3)

Install tua menyeduh versi paket (Flyway 4.2.0 contoh)

Menemukan homebrew lokal git dir atau clone Homebrew/homebrew-core lokal

cd /usr/local/Homebrew/Perpustakaan/Pdam/homebrew/homebrew-core/

ATAU

git clone git@github.com:Homebrew/homebrew-core.git

Daftar semua versi yang tersedia

git log master-Rumus/flyway.rb

Copy IDENTITAS komit untuk versi yang anda inginkan dan menginstalnya langsung

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/793abfa325531415184e1549836c982b39e89299/Formula/flyway.rb

Komentar (2)

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
Komentar (0)

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)
Komentar (1)

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:

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

Komentar (0)

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 dominyktiller@gmail.com Date: Thu Jun 30 17:42:18 2016 +0100

python: memperjelas alasan pour_bottle

melakukan cb3b29b824a264895434214e191d0d7ef4d51c85 Penulis: BrewTestBot brew-test-bot@googlegroups.com Date: Wed Jun 29 14:18:40 2016 +0100

python: update 2.7.12 botol.

melakukan 45bb1e220341894bbb7de6fd3f6df20987dc14f0 Penulis: Rakesh rakkesh@users.noreply.github.com Date: Wed Jun 29 10:02:26 2016 +0530

python 2.7.12

Menutup #2452.

Sign-off-oleh: Tim D. Smith git@tim-smith.us

melakukan cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9 Penulis: BrewTestBot brew-test-bot@googlegroups.com 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
Komentar (5)

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.

Komentar (1)