Homebrew formülün belirli bir sürümünü yüklemek?


2195

Homebrew'a formülün belirli bir sürümünü nasıl yüklerim? Örneğin, en son 9.0 yerine postgresql-8.4.4.


2
postgresqlGarip bir tanesidir çünkü Homebrew'da bir noktada ayrı sürümleri vardı bash, aynı formül adı içinde 4.x'ten 5.x'e gittiği için daha iyi bir örnek olabilir. Bkz. Stackoverflow.com/a/55764594/3794873
dragon788


2
Bütün cevapları okudum. 2020 ve bunu yapmanın kolay bir yolu ya da resmi bir emri yok
oluckyman

Yanıtlar:


2556

TLDR: brew install postgresql@8.4.4 Daha fazla ayrıntı için aşağıdaki cevaba bakınız .


* ( Homebrew ile eski yazılım sürümlerini kurmak / kullanmak için daha kapsamlı bir iş akışı sağlamak için cevabımı yeniden düzenledim. Eski sürümü daha iyi bulduysanız not eklemekten çekinmeyin. )

En basit durumla başlayalım:

1) Sürümün önceden yüklenmiş olup olmadığını (ancak etkinleştirilmediğini) kontrol edin

Homebrew yeni bir formül yüklediğinde, formülü gibi bir sürüm dizine koyar /usr/local/Cellar/postgresql/9.3.1. Bu klasöre yalnızca sembolik bağlantılar genel olarak yüklenir. Prensip olarak, bu yüklü iki sürüm arasında geçiş yapmayı oldukça kolaylaştırır. (*)

Homebrew'u daha uzun süredir kullanıyorsanız ve daha eski sürümleri hiç kaldırmamışsanız (örneğin brew cleanup), programınızın bazı eski sürümlerinin hala etrafta olma olasılığı vardır. Önceki sürümü etkinleştirmek istiyorsanız, brew switchbunu yapmanın en kolay yolu budur.

Eski sürümün yüklü olup olmadığını brew info postgresql(veya brew switch postgresql <TAB>) kontrol edin :

$ 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

Bazı eski sürümlerin zaten kurulu olduğunu görüyoruz. Bunu kullanarak etkinleştirebiliriz brew 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

Nelerin etkinleştirildiğini iki kez kontrol edelim:

$ 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

Yıldızın * yeni etkinleştirilen sürüme taşındığını

(*) Lütfen brew switchyalnızca eski sürümün tüm bağımlılıkları hala geçerli olduğu sürece çalışır. Bazı durumlarda, eski sürümün yeniden oluşturulması gerekebilir. Bu nedenle,brew switch kullanım çok uzak olmayan iki sürüm arasında geçiş yapmak istediğinde yararlıdır.

2) Sürümün bir musluk olarak mevcut olup olmadığını kontrol edin

Özellikle daha büyük yazılım projeleri için, belirli bir yazılım parçasının birkaç (potansiyel olarak API ile uyumsuz) ana sürümü için yeterince yüksek bir talep olması büyük olasılıktır. Mart 2012 itibariyle, Homebrew 0.9 bunun için bir mekanizma sağlar: brew tap& homebrew versiyon deposu.

Bu sürüm deposu, birkaç formül için eski sürümlerin backport'larını içerebilir. (Çoğunlukla sadece büyük ve ünlü olanlar, ancak elbette postgresql için de birkaç formüle sahip olacaklar.)

brew search postgresql nereye bakacağınızı gösterecek:

$ brew search postgresql
postgresql
homebrew/versions/postgresql8    homebrew/versions/postgresql91
homebrew/versions/postgresql9    homebrew/versions/postgresql92

Yazarak kolayca yükleyebiliriz

$ 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
# …

Bunun musluğa otomatik olarak dokunduğuna dikkat edin homebrew/versions. (İle kontrol edin brew tap, ile kaldırın brew untap homebrew/versions.) Aşağıdakiler eşdeğer olurdu:

$ brew tap homebrew/versions
$ brew install postgresql8

Desteklenen sürüm formülleri güncel kaldığı sürece, bu yaklaşım muhtemelen eski yazılımlarla başa çıkmanın en iyi yoludur.

3) Geçmişten bir formül deneyin

Aşağıdaki yaklaşımlar çoğunlukla tamlık için listelenmiştir. Her ikisi de demlemek deposundan bazı ölümsüz formülü diriltmeye çalışır. Değişen bağımlılıklar, formül spesifikasyonundaki API değişiklikleri veya yalnızca indirme URL'sindeki bir değişiklik nedeniyle işler çalışmayabilir veya çalışmayabilir.

Tüm formül dizini bir git deposu olduğundan, düz git komutlarını kullanarak belirli sürümleri yükleyebilirsiniz. Ancak, eski sürümün mevcut olduğu bir taahhüde ulaşmak için bir yol bulmamız gerekiyor.

a) tarihi zamanlar

Arasında Ağustos 2011 ve Ekim 2014 , homebrew bir vardı brew versionskendi SHA hash ile mevcut tüm sürümlerini tükürdü komutu. Ekim 2014 itibariyle,brew tap homebrew/boneyard kullanabilmeniz için önce bir işlem yapmanız gerekir. Musluğun adından da anlaşılacağı gibi, muhtemelen bunu sadece son çare olarak yapmalısınız.

Örneğin

$ 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

Gördüğünüz gibi, kullanılmamasını tavsiye ediyor. Homebrew, iç buluşsal yöntemiyle bulabileceği tüm sürümleri tükürüyor ve size eski formülleri almanın bir yolunu gösteriyor. Hadi deneyelim.

# 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

Eski postgresql sürümü yüklendiğine göre, depomuzu temiz tutmak için en son formülü yeniden yükleyebiliriz:

$ git checkout -- Library/Formula/postgresql.rb

brew switch eski ile yeni arasında değişecek arkadaşın.

b) tarih öncesi zamanlar

Özel ihtiyaçlar için, aynı zamanda homebrew repo ile kendi kazma deneyebilirsiniz.

$ cd Library/Taps/homebrew/homebrew-core && git log -S'8.4.4' -- Formula/postgresql.rb

git log -Sdizenin '8.4.4'dosyaya eklendiği veya kaldırıldığı tüm taahhütleri arar Library/Taps/homebrew/homebrew-core/Formula/postgresql.rb. Sonuç olarak iki taahhüt alıyoruz.

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

Açıkçası, fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422ilgilendiğimiz taahhüt. Bu taahhüt oldukça eski olduğundan, tüm homebrew kurulumunu düşürmeye çalışacağız (bu şekilde, formül API'sının az çok geçerli olduğu garanti edilmektedir):

$ git checkout -b postgresql-8.4.4 fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422
$ brew install postgresql
$ git checkout master
$ git branch -d postgresql-8.4.4

Git deponuzda referansı tutmak için son komutu atlayabilirsiniz.

Bir not: Eski taahhüdü kontrol ederken, homebrew kurulumunuzu geçici olarak düşürürsünüz. Bu nedenle, dikkatli olmalısınız çünkü homebrew'daki bazı komutlar en son sürümden farklı olabilir.

4) Manuel olarak bir formül yazma

Çok zor değil ve daha sonra kendi havuzunuza yükleyebilirsiniz. Eskiden Homebrew-Versions'dı , ama şimdi artık üretilmiyor.

A.) Bonus: Sabitleme

Postgresql'in belirli bir sürümünü saklamak ve doğal brew update; brew upgradeprosedürü yaptığınızda güncellenmesini durdurmak istiyorsanız, bir formül sabitleyebilirsiniz :

$ brew pin postgresql

Sabitlenmiş formüller listelenir /usr/local/Library/PinnedKegs/ve en son değişiklikleri ve güncellemeleri getirmek istediğinizde, tekrar sabitlemesini kaldırabilirsiniz :

$ brew unpin postgresql

18
Ayrıca, formülü kullanarak ödeme yapabilirsiniz git checkout fa992 -- Library/Formula/postgresql.rb. İşiniz bittiğinde, formüldeki değişiklikleri kullanarak geri alabilirsiniz git revert HEAD Library/Formula/postgresql.rb && git checkout -- Library/Formula/postgresql.rb.
mipadi

18
Not: yeni bir Homebrew kurulumunda, brew updateGit deposunu kurmanız gerekebilir .
Bluu

557
Bu gülünç derecede zor.
Dogweather

30
Bugün itibariyle, depoya karşı manuel komutları yürütmek için doğru dizin cd $(brew --repository)/Library/Taps/homebrew/homebrew-core, o zaman git checkout 4cce79d -- Formula/go.rbve kullanabilirsiniz HOMEBREW_NO_AUTO_UPDATE=1 brew install go.
Calin

12
homebrew / versiyonları kullanımdan kaldırıldı
Ezekiel Victor

775

Basit İş Akışı

Homebrew / sürümleri kullanımdan kaldırıldığına göre, Homebrew / core yeni bir adlandırma biçimiyle formüllerin birden çok sürümünü desteklemektedir.

Belirli bir sürümü yüklemek için, örneğin postgresql 9.5:

$ brew install postgresql@9.5

Kullanılabilir sürümleri listelemek için @ ile bir arama yapın:

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

8
En basit gibi görünüyor, ama kopyalayıp yapıştırdığımda olsun fatal: Not a git repository (or any of the parent directories): .git. Ben sadece cdbunun yerine dizinin içine (FORMULANAME.rb olmadan), sonragit checkout 120938
Ramon Tayag

8
@RamonTayag, aynı problemi yaşadım. cd /usr/localÖnce emin olun .
gjb

13
3.5 adımına ihtiyacınız olduğunu brew unlink FORMULANAME
buldum

37
brew versions <formula>artık desteklenmiyor.
ejoubaud

4
@ dem7w2 ile semboller oluşturabilirsiniz brew link --force postgresql@9.5. Zaten daha yeni bir sürüm yüklediyseniz ve eski sürümün varsayılanınız olmasını istiyorsanız, orada da bir sürüm gerekir --overwrite.
Ryan

457

Önceden yüklediğiniz bir formülün eski bir sürümünü yüklemenin çok daha kolay bir yolu var. Basitçe kullanın

brew switch [formula] [version]

Örneğin, düzenli olarak Node.js 0.4.12 ve 0.6.5 arasında değişiyorum:

brew switch node 0.4.12
brew switch node 0.6.5

Yana brew switchsadece sembolik değiştirir, çok hızlı. Harici Komutlar altındaki Homebrew Wiki ile ilgili diğer belgelere bakın .


2
Bunu denedim ve "/usr/local/Cellar/node/0.4.7 için oluşturulan 33 bağlantı" mesajıyla başarılı oldu, ancak daha sonra düğümü çalıştırdığımda "-bash: / usr / local / "msgstr"% s "msgstr"% s "msgstr" bin / düğüm: Böyle bir dosya veya dizin yok ". Neyin yanlış gidebileceğine dair bir fikrin var mı? Not: 0.4.7'yi manuel olarak indirdim ve bodrum dizinine koydum, çünkü demleme kullanarak anyhting'i ancak son düğüm sürümünü nasıl indireceğimi bilmiyorum.
Soroush Hakami

6
Umarım 'nvm' [ github.com/creationix/nvm] diye bir şey olduğunu biliyorsunuzdur !
Gaurav Agarwal

40
Zaten kurulmakta olan paket sürümüne güveniyorum. Sürümü kaçırırsanız, yine de seçilen cevabı uygulamanız gerekir.
Nic Strong

1
Özellikle düğüm versiyonu mgmt için nvm daha iyi bir çözümdür, imho.
cweekly

5
@NicStrong Gerçekten de, brew switcharanan sürümün zaten kurulu olmasına güveniyor. Ne yazık ki, şu anda kabul edilen cevap inanılmaz derecede yararsızdır, kıvrık ve modası geçmiş. Orada olan iyi olan aşağıdaki cevaplar çok daha yararlı.
GDP2

250

Güncelleme: 1/15/2015

  • İstenen yazılım ve sürümün kayıt geçmişini bulun. Örneğin, docker sürüm 1.4.1'den 1.3.3'e geçmem gerekiyor: https://github.com/Homebrew/homebrew-core/commits/master/Formula/docker.rb
  • Bu düğmeyi kullanarak dosyayı görüntüleyin: resim açıklamasını buraya girin
  • Ham düğmesini tıklayın: Liste öğesi
  • URL'yi (bu örnekte docker.rb url) adres çubuğundan kopyalayın
  • brew install <url>( brew unlinkilk önce gerekebilir brew unlink docker) , örneğin )
  • brew switch docker 1.3.3
  • Tersane 1.4.1'e geri dön brew switch docker 1.4.1

Bu özden

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

46
Benim için işe yarayan tek şey bu. Oldukça aptalca bir paket yöneticisi sadece önceki bir sürümü yüklemek için çok fazla futzing gerektirir. Belki de ruby ​​RVM ve bundler tarafından şımartıldım, ancak bu sürecin gerçekten kolaylaştırılması ve soyutlanması gerekiyor.
poetmountain

3
Ansible'ın önceki bir sürümüne gitmeye çalıştığımda, önceki sürümü belirtildiği gibi yüklemeden önce formülün bağlantısını kaldırmam gerekiyordu. Yapmadan önce Yani brew install <url>, brew unlink <formulaname>. Aksi takdirde, bu, bir formülün belirli bir sürümüne geçmenin en basit ve en kısa yoludur.
bigsweater

Sen vurmak RawNe dosyadaki düğmeye ?!
Iulian Onofrei

1
Çalışıyor, ancak bazen Homebrew'un SHA uyuşmazlığı hakkında şikayet etmesini önlemek için ham .rb dosyasını indirip sağlama toplamını değiştirmeniz gerekiyor. GitHub, 2017'de bir ara repo ağaçlarının büyük bir bölümünü aramış gibi görünüyor ve sağlama toplamları değişti. (Aslında Bazel geçen Temmuz karma uyumsuzluklarında başarısız olmaya başladığında ekibimde çok karışıklığa neden oldu)
Chang Qian

6
Adresi kolayca buldumbrew log <formula>
kangkyu

128

@ Halfcube'un önerisi doğrultusunda, bu gerçekten iyi çalışıyor:

  1. Aradığınız kütüphaneyi https://github.com/Homebrew/homebrew-core/tree/master/Formula adresinde bulabilirsiniz.
  2. Tıklayın: https://github.com/Homebrew/homebrew-core/blob/master/Formula/postgresql.rb
  3. Eski taahhütlere bakmak için "geçmiş" düğmesini tıklayın: https://github.com/Homebrew/homebrew-core/commits/master/Formula/postgresql.rb
  4. İstediğiniz birini tıklayın: "postgresql: sürümü 8.4.4'e güncelle", https://github.com/Homebrew/homebrew-core/blob/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb
  5. "Ham" bağlantısını tıklayın: 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

8
Bu, çekirdek package@version
repoda

7
Web arayüzünü kullanamıyorsanız, repoyu klonlayabilir ve yerel olarak yapabilirsiniz: git log master -- Formula/PACKAGENAME.rbtaahhüt geçmişini almak için kullanın , doğru taahhüdü kontrol edin ve ardından brew install Formula/PACKAGENAME.rbyüklemek için çalıştırın .
chipbuster

7
Sanırım diğer versiyondan brew unlinkönce ihtiyacın var brew install.
studgeek

Bu kim mxcl?
PJSCopeland

1
Bunu yapıyorum brew install https://github.com/Homebrew/homebrew-core/raw/afc10f17af8023906b87363a8340aeb62284329f/Formula/postgresql%409.6.rbama muhtemelen @işareti nedeniyle hata alıyorum : 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.Herhangi bir fikir?
msciwoj

109

Diğer karmaşık çözümlerden daha iyi bir alternatif çözüm keşfettim.

brew install https://raw.github.com/Homebrew/homebrew-versions/master/postgresql8.rb

Bu, PostgreSQL 8.4.8'i indirip yükleyecektir


Repo ve yorum arama adımlarını izleyerek bu çözümü buldum .

Küçük bir araştırmadan sonra birisinin demlenecek nadir formüller koleksiyonu olduğunu buldu.


MySQL 5.1.x'i arıyorsanız, bunu deneyin.

brew install https://raw.github.com/Homebrew/homebrew-versions/master/mysql51.rb

1
hmm, brew install https://github.com/Homebrew/homebrew-versions/blob/master/node06.rbsözdizimi hatalarıyla başarısız görünüyordu.
Brian Armstrong

6
@BrianArmstrong Ham bir sürüme ihtiyaç duyarken, dosyanın html biçimli bir sürümüne başvuruyorsunuz .
Nikita Volkov

Github.com/Homebrew/homebrew/commits/master/Library/Formula/… adresine gidin , sürümünüzü seçin, kodu tarayın, ham - bu url'yi kullanın.
jpillora

1
rawURL'yi unutmayın
Faber

9
homebrew-versionsgitti ve her şey açıktır coregenel durum için bunu hemen: brew install https://raw.github.com/Homebrew/homebrew-core/<COMMIT>/Formula/<FORMULA>.rb. github.com/Homebrew/homebrew-core/commits/master/Formula/… adresineCOMMIT giderek bulunabilir .
PJSCopeland

78

Yüklemek istediğiniz paketin sürümüyle eşleşen formülü ve formülün geçmişindeki belirli bir taahhüdü tanımlama stratejisini kullanabilirsiniz.

  1. Https://github.com/Homebrew/homebrew-core adresine gidin

  2. tDosya bulucuyu etkinleştirmek için klavyenizdeki tuşuna basın .

  3. Belki de en alakalı görünen bir formül belirleyin: Formula/mysql.rbsizi bir forumla dosyası konumuna getirin: https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql.rb .

  4. Https://github.com/Homebrew/homebrew-core/commits/master/Formula/mysql.rb adresindeHistory bulunan düğmeyi tıklayarak düzeltme geçmişine bakın. . MySQL 5.7.10 ile ilgileniyorsanız, 5.7.11'den önceki bir GitHub taahhüdüne giden en son revizyonu tıklayabilirsiniz:

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

NOT: Taahhüt geçmişi tarayıcınıza yüklenmezse, GitHub'ın önerisi uyarınca konsolunuzdaki işlem geçmişini görüntülemeniz gerekebilir. GitHub'da bu taahhüdü görmek istiyorsanız yukarıdaki URL'yi yukarıdaki SHA ile değiştirin. Alternatif olarak, aşağıdaki 7. adıma atlayın.

  1. Taahhüt uygulandıktan sonra mysql.rb dosyasının kaynağını görüntülemek için "Görünüm" düğmesini tıklatın.

  2. Ardından ham kaynağı görüntülemek için "Ham" düğmesini tıklayın.

  3. URL'yi kopyalayın. Alternatif olarak, mysql.rbformülünüzü ve bu formülün belirli sürümünü tanımlamak için URL'yi dosya adıyla kendiniz oluşturun (aşağıdaki URL'de SHA'yı teslim edin).

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

  4. İle yükleyin $ brew install [URL from step 7]

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

NOT: Bu yanıt, braumeister.org web sitesinin kaldırılmasını hesaba katarak güncellenmiştir. Aynı prensip geçerlidir, braumeister formül sürümlerinde gezinmek için başlangıç ​​dostu bir yol sağlamıştır.


13
Ne yazık ki bu cevaplar listesinde çok uzakta ama en iyi çözüm. Benim kullandığım şey bu, braumeister kullanmak yerine sadece istediğim formülün Homebrew GitHub sayfasına gidiyorum (örneğin gcc için github.com/Homebrew/homebrew/blob/master/Library/Formula/gcc.rb adresine gidin ) ve istediğim sürüme ulaşana kadar dosyanın "Geçmişi" ne geçiyorum.
Guy Kogus

3
Bu kesinlikle benim durumumdaki en iyi çözümdü - Xcode 8.1 gerektirmeyen eski bir Watchman sürümünü yüklemek
Zachary Keener

3
Bu gerçekten eski bir sürümü kurmanın en kolay yoludur. Harika cevap
Martin

4
Bu benim için çalıştı ama önce yazılım bağlantısını demlemek zorunda kaldı.
Brett Wagner

3
Bu benim için en basit çözümdü. Kabul edilen cevap eski olduğu için bu daha yüksek olmalıdır.
Tim W

35

Diğer cevapların çoğu artık kullanılmıyor. Ne yazık ki Homebrew'un, eski bir sürümü kurmanın yerleşik bir yolu yoktur, ancak bu sürüm ayrı bir formül olarak mevcut değilse (ör. python@2, postgresql@9.4 …).

Neyse ki, diğer formüller için, eskiden gerekli olan kıvrımlı karmaşadan çok daha kolay bir yol var. İşte tam talimatlar:

  1. Günlüklerde doğru sürümü arayın:

    brew log formula
    # Scroll down/up with j/k or the arrow keys
    # or use eg. /4\.4\.23 to search a specific version
    
    # This syntax only works on pre-2.0 Homebrew versions
    brew log --format=format:%H\ %s -F --grep=‹version› ‹formula›
    

    Bu işlem sağlama karmalarının bir listesini gösterecektir. Uygun olanı alın (çoğunlukla oldukça açık olmalı ve genellikle en yeni (yani üst) olanı alın.

  2. Formülün yukarı akış deposunda bulunduğu URL'yi bulun:

    brew info ‹formula› | grep ^From:
    
  3. URL'yi düzeltin:

    1. Değiştir github.comileraw.githubusercontent.com
    2. blob/masterİlk adımda bulduğumuz tamamlama karmasıyla değiştirin .
  4. masterDaha önce bulunan URL'de taahhüt karmasıyla değiştirerek istediğiniz sürümü yükleyin , örn:

    brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/‹hash›/Formula/‹formula›.rb
    

(Son adım daha brew unlink ‹formula›önce çalışmayı gerektirebilir .)


Kullanmak istediğiniz bir sağlama karmasını kopyaladıysanız, bu sürümü yüklemek, değeri ve bashtaahhüt karmanızı ve istediğiniz formülü değiştirmek için bu örnekte benzer bir şey kullanabilirsiniz .

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

Bu örnek, bash 5 yerine bash 4.4.23'ü yükler, ancak brew upgradedaha sonra gerçekleştirirseniz , ilk çalıştırılmadıkça bash 5 üste yüklenir brew pin bash. Bunun yerine öncelikle en son yüklemeniz gerekir, iğneleme OLMADAN bu yumuşak hale getirmek brew install bash, sonra brew unlink bashyukarıdaki komut başına istiyorum eski sürümü yüklemek sonra, ve sonra kullanmak brew switch bash 4.4.23eski sürüme sembolik kurmak. Şimdi bir brew upgradeBash sürümünüzü etkilememelidir. Şunları yapabilirsiniz brew switch bashgeçmek için mevcut sürümlerin listesi almak için.


Yalnızca yerel olarak özel bir dokunuş kullanarak alternatif

Aynı hedefe ulaşmanın başka bir yolu şöyledir:

brew tap-new username/repo-name
# extract with a version seems to run a grep under the hood
brew extract --version='4.4.23' bash username/repo-name
brew install bash@4.4.23
# Note this "fails" when trying to grab a bottle for the package and seems to have
# some odd doubling of the version in that output, but this isn't fatal.

Bu, formula@versionözel örneğinizde yukarıdaki örneğe göre yükleyebileceğiniz bir a oluşturur . Dezavantajı, muhtemelen Bash'inizi veya başka bir formülü kullanmak için hala brew unlink bashve sonra ihtiyacınız olması brew link bash@4.4.23.


1
Görünüşe göre sözdizimini değiştirdiler, brew logböylece ekstra -Fveya --grepseçenekler benim için başarısız oldu.
dragon788

1
@ dragon788 Kanlı cehennem, Homebrew 2 tamamen kırıldı brew log. Git günlük iletisini düzgün bir şekilde ayrıştırmayı veya alternatif olarak git logdoğrudan ilgili depoda çalıştırmayı gerektirdiğinden, şimdi yeni bir sürüm yazmak için rahatsız edilemem . Ve changelog, bu kırılma değişiminden bile bahsetmiyor gibi görünüyor. Sinir bozucu ötesinde.
Konrad Rudolph

Davranıştaki değişikliğin bir hata olduğunu kabul etmedikçe, bu tür filtrelemeyi geri almak External Commandiçin yapı içinde çalışmak gerekebilir . docs.brew.sh/External-Commandsbrewgit log
dragon788 17:19

Bu, doğru brew extractkullanımı bulabildiğim tek yerdi , teşekkürler!
dognotdog

Özel local0only'nin cevabınızın ilk kısmına dokunmasını öneririm. Genel olarak en iyi çözüm gibi görünüyor.
studgeek

29

Homebrew'u Maven 2.2.1'e geri dönmek için kullandım. brew install maven yüklü Maven 3.0.3'ten .

Önce maven dirsini orada bırakmalısın

$ demlemek unav maven

Demleme musluk komutunu kullanın

$ brew tap homebrew / versiyonlar
'/ Usr / local / Library / Taps / homebrew-version' klasörüne kopyalama ...
uzak: Nesneleri sayma: 590, bitti.
uzak: Nesneleri sıkıştırma:% 100 (265/265), bitti.
uzak: Toplam 590 (delta 362), yeniden kullanılan 549 (delta 325)
Nesneleri alma:% 100 (590/590), 117,49 KiB | 79 KiB / s, bitti.
Çözülen deltalar:% 100 (362/362), bitti.
Bantlanmış 50 formül

Şimdi maven2 formülünü yükleyebilirsiniz:

$ brew install maven2
==> http://www.apache.org/dist/maven/maven-2/2.2.1/binaries/apache-maven-2.2.1-bin.tar.gz indiriliyor
################################################## ######################% 100.0
/usr/local/Cellar/maven2/2.2.1: 10 dosya, 3,1M, 6 saniyede oluşturulmuş
$ mvn - sürüm
Apache Maven 2.2.1 (r801777; 2009-08-06 12: 16: 01-0700)
Java sürümü: 1.6.0_37
Java ana sayfası: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Varsayılan yerel ayar: en_US, platform kodlaması: MacRoman
İşletim Sistemi adı: "mac os x" sürüm: "10.7.4" arch: "x86_64" Aile: "mac" 

Düzenleme: Ayrıcabrew switch maven 2.2.1 farklı bir sürüme geçmek için .

Edit: Apache Maven projesi repolarını yeniden düzenledi. Bu değişikliği, bu değişikliği hesaba katarak güncelledi.


Bu çok yardımcı oldu. Apache vakfı, maven ikili dosyalarını sürüm (1,2,3) belirli dizinlere göre yeniden düzenledi, bu nedenle maven.rb dosyasını 2.2.1 ve belki de başkalarının yeni yapıya uyacak şekilde düzenlemeniz gerekir. Örneğin, 2.2.1 ikili dosyası apache.org/dist/maven/maven-2/2.2.1/binaries/… konumunda bulundu . URL'deki "maven-2 / 2.2.1 /" öğesine dikkat edin.
Charles Forcey

@CharlesForcey Yeniden düzenlenmiş maven dist repo konusunda haklısınız. Eski maven2 formülünü kullanmak için demleme musluğunu kullanmak için cevabı güncelleyeceğim. Yorum için teşekkürler.
Cameron Goodale


18

O zamandan beri güncellenmiş bir cevap @ lance-pollard'ın zaten çalışma yanıtı olarak ne gönderdiğini ekler.

Bir Formülün belirli bir sürümünü yükleme (bu örnekte kullanılan formül terraform):

  1. Formül dosyanızı bulun, örneğin: https://github.com/Homebrew/homebrew-core/blob/master/Formula/terraform.rb
  2. Https://github.com/Homebrew/homebrew-core/commits/master/Formula/terraform.rb ile veya git log master -- Formula/terraform.rbrepoyu yerel olarak klonladıysanız, github'un geçmişinden taahhütlü sürümü alın .
  3. Ham git URL'sini formülünüzün teslim sürümüyle alın: github.com'daki formül bağlantısı https://github.com/Homebrew/homebrew-core/blob/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb ise, ham URL'niz be: https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
  4. Şununla yükle: brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb

3. adımda raw git URL'sini almak için, yalnızca "Raw" düğmesine basabilir ve tarayıcının sizi götürdüğü URL'yi kopyalayabilirsiniz.
Brian Topping

15

Resmi yöntem ( https://github.com/Homebrew/brew/issues/6028 adresine verilen yanıttan yola çıkarak )

Maalesef Homebrew'un daha eski bir sürümünü kurmanın belirgin bir yerleşik yolu yok.

Neyse ki, çoğu formül için eskiden gerekli olan kıvrımlı karmaşadan çok daha kolay bir yol var. bashÖrnek olarak kullanılan talimatların tamamı şunlardır :

brew tap-new $USER/local-tap
# extract with a version seems to run a `git log --grep` under the hood
brew extract --version=4.4.23 bash $USER/local-tap
# Install your new version from the tap
brew install bash@4.4.23
# Note this "fails" trying to grab a bottle for the package and seems to have
# some odd doubling of the version in that output, but this isn't fatal.

Bu formula@version, yukarıdaki örneğe göre yükleyebileceğiniz özel dokunuşunuzda oluşturur . Önemli bir not, brew unlink bashformülün varsayılan / en son sürümünü daha önce yüklediyseniz ve sonra brew link bash@4.4.23Bash'in belirli sürümünü (veya en son ve daha eski bir sürümün yüklü olduğu başka bir formülü) kullanmak için muhtemelen yapmanız gerekir.

Bu yöntemin potansiyel bir dezavantajı, sürümler arasında kolayca ileri geri geçiş yapamamanızdır, çünkü brewona göre "farklı bir formül" dir.

Kullanmak istiyorsanız bir brew switch $FORMULA $VERSIONsonraki yöntemi kullanmalısınız.


Komut Dosyası Yöntemi (Önerilen)

Bu örnek, bashformül şu anda bash 5'i yüklediğinden faydalı bir örnek olan eski bash 4.4.23'ü yüklemeyi göstermektedir .

  • İlk önce formülün en son sürümünü brew install bash
  • sonra brew unlink bash
  • ardından aşağıdaki kod parçacıklarına göre istediğiniz eski sürümü yükleyin
  • sonunda brew switch bash 4.4.23sürümünüze sembolik bağlantıları ayarlamak için

Eğer bir gerçekleştirdiyseniz brew upgradeöncelikle en son yüklemeden eski bir sürümünü yükledikten sonra ilk idam sürece, o zaman son, senin eski sürümü clobbering yüklü alacağıbrew pin bash .

Buradaki adımları unutmaktan kaçının, çünkü unutmak kolaydır ve gelecekte güvensiz hale gelen bir sürüme sabitleyebilirsiniz (bkz. Shellshock / etc). Bu kurulum brew upgradeile Bash sürümünüzü etkilemez ve her zaman çalıştırabilirsinizbrew switch bash geçiş yapmak için mevcut sürümlerin bir listesini almak için .

exportİstediğiniz sürüm ve formül adıyla güncellemek için aşağıdaki kod snippet'indeki satırları kopyalayıp yapıştırın ve düzenleyin , ardından geri kalanını olduğu gibi kopyalayıp yapıştırın ve sihri yapmak için bu değişkenleri kullanır.

# This search syntax works with newer Homebrew
export BREW_FORMULA_SEARCH_VERSION=4.4.23 BREW_FORMULA_NAME=bash
# This will print any/all commits that match the version and formula name
git -C $(brew --repo homebrew/core) log \
--format=format:%H\ %s -F --all-match \
--grep=$BREW_FORMULA_SEARCH_VERSION --grep=$BREW_FORMULA_NAME

Sürümün formülde bulunduğundan eminseniz, aşağıdakileri kullanabilirsiniz:

# Gets only the latest Git commit SHA for the script further down
export BREW_FORMULA_VERSION_SHA=$(git -C $(brew --repo homebrew/core) log \
 --format=format:%H\ %s -F --all-match \
--grep=$BREW_FORMULA_SEARCH_VERSION --grep=$BREW_FORMULA_NAME | \
head -1 | awk '{print $1}')

Kullanmak istediğiniz işlem karmasını dışa aktardıktan sonra, paketin o sürümünü yüklemek için bunu kullanabilirsiniz.

brew info $BREW_FORMULA_NAME \
| sed -n \
    -e '/^From: /s///' \
    -e 's/github.com/raw.githubusercontent.com/' \
    -e 's%blob/%%' \
    -e "s/master/$BREW_FORMULA_VERSION_SHA/p" \
| xargs brew install

PATH'nize koymak veya varsayılan kabuğunuz olarak ayarlamak için formül çıkışındaki talimatları izleyin.


12

Homebrew'un en yeni sürümünde (bu yazıdan itibaren 0.9.5) yüklemek istediğiniz homebrew fıçısı sürümü için belirli bir tarif olacaktır. Misal:

$ brew search mongodb
mongodb    mongodb24  mongodb26

Sonra brew install mongodb26normal gibi yapın.

Zaten son sürümünü yüklemiş olduğu durumda, en son sürümünü bağlantısını kaldırmak emin olun ve istenen versiyonunu bağlantı: brew unlink mongodb && brew link mongodb26.


Bu soruya cevap verebilse de, cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantı sağlamak tercih edilir.
Erik

1
@Erik Teşekkürler, düzeltildi.
Alex Sharp

11

İle ilgili sorun homebrew/versions şu ki, birisinin onu kullanabilmeniz için o yazılımın belirli bir sürümünün depoda listelenmiş olması gerekir. Ayrıca, brew versionsartık desteklenmediği için başka bir çözüm gereklidir. Kullanmayı gösteren çözümler için brew switch, yalnızca brew cleanupsürümün bilgisayarınızda bulunması gerektiğinden bunu yapmadıysanız çalışır.

Uygulamasının eski bir sürümünü yüklemek istemeyle ilgili bir sorun yaşadım docker-machineListede olmayanhomebrew/versions . Bunu, demlenmiş herhangi bir yazılım için de çalışması gereken aşağıdakileri kullanarak çözdüm. Aşağıdaki örnek docker-machine, 0.5.0 sürümünden 0.4.1 sürümüne geçmek istediğim paket olarak kullanılacaktır .

  1. Homebrew Formuladizininize gidin.
    Bunu çalıştırarak belirleyebilirsiniz brew info [any package name]. Örneğin brew info docker-machine, bana bir yol gösteren bir çizgi verir /usr/local/Cellar/docker-machine/0.5.0. Bu bana makinemde homebrew'un/usr/local ve Formula dizinimin varsayılan olarak/usr/local/Library/Formula

  2. Paketiniz için belirli formül dosyasını (.rb) bulun. Eski sürüme geçmek istediğimden docker-machinebir docker-machine.rbdosya görebiliyorum .

  3. Bu formül dosyası için sürüm geçmişini alın . Enter git log docker-machine.rb. Bu işlem, bu dosya için tüm tamamlanma geçmişini listeler. Aşağıdaki gibi bir çıktı göreceksiniz:

    ...Daha 

    taahhüt 20c7abc13d2edd67c8c1d30c407bd5e31229cacc
    Eser Sahibi: BrewTestBot 
    Tarih: Perş 5 Kas 16:14:18 2015 +0000

        liman işçisi makine: 0.5.0 şişeyi güncelleyin.

    taahhüt 8f615708184884e501bf5c16482c95eff6aea637
    Eser Sahibi: Vincent Lesierse 
    Tarih: Sal 27 Eki 22:25:30 2015 +0100

        liman işçisi makine 0.5.0

        Liman işçisi makine 0.5.0 olarak güncellendi

        Kapatır # 45403.

        İmzalayan: Dominyk Tiller 

    taahhüt 5970e1af9b13dcbeffd281ae57c9ab90316ba423
    Eser Sahibi: BrewTestBot 
    Tarih: Pzt Eyl 21 14:04:04 2015 +0100

        liman işçisi makine: 0.4.1 şişeyi güncelleyin.

    taahhüt 18fcbd36d22fa0c19406d699308fafb44e4c8dcd
    Eser Sahibi: BrewTestBot 
    Tarih: Paz 16 Ağu 09:05:56 2015 +0100

        liman işçisi makine: 0.4.1 şişeyi güncelleyin.

    ...Daha

Zor kısmı, istediğiniz belirli sürüm için en son taahhüdü bulmaktır. Yukarıdaki, ben etiketi işlemek son 0.4.1 sürümü ile bu işlendiği söyleyebilirim: commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423. Bu noktanın üstündeki taahhütler 0.5.0 sürümünü kullanmaya başlar (git log girişleri en sondan en erken tarihe kadar listelenir).

  1. Formül dosyasının önceki bir sürümünü edinin. 3. adımdaki kesinleştirme etiketini kullanarak (ilk 6 karakteri kullanabilirsiniz), aşağıdakileri kullanarak formül dosyasının daha eski bir sürümünü alabilirsiniz:

    git checkout 5970e1 docker-machine.rb

  2. Mevcut paket sürümünüzü kaldırın. Paketinizin geçerli sürümünü kaldırmak için normal demleme komutlarını çalıştırmanız yeterlidir.
    Ör.brew uninstall docker-machine

  3. Eski paket sürümünü yükleyin Şimdi, normal demlemek yükleme komutunu çalıştırabilirsiniz ve ödeme yaptığınız formülü yükleyecektir. Ör.brew install docker-machine

brew link docker-machineGerekirse kullanarak yeniden bağlamanız gerekebilir.

Herhangi bir zamanda belirli bir paketin en son sürümüne geri dönmek isterseniz, Formula dizinine gidin ve formül dosyanızda (.rb) aşağıdaki komutları verin

git reset HEAD docker-machine.rb
git checkout -- docker-machine.rb

O zaman yapabilirsin brew uninstall docker-machine ve brew install docker-machineson sürümü almak ve bu şekilde devam tutmak.


1
Çok ayrıntılı yazmak @ rchawdry, teşekkür ederim. BTW: --grep parametresini hızla eklemek istediğiniz sürümle eşleşen taahhüdü bulmak için git log --grep 0.4.1 docker-machine.rb.
Jerry Mindek

Benim için, yol oldu/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula
akauppi

cairoBu şekilde demleme için yeterli sürüm geçmişi bulamadım . @ sealocal'ın cevabı bir nedenden dolayı daha fazlasını gösterdi.
akauppi

11

2020 ve çoğu cevap modası geçmiş

Durumum: postgresql11'den 12'ye yanlışlıkla yükseltildi. 11 tutmak istiyorum.

  1. DB'yi durdurun:
brew services stop postgresql
  1. Postgres 11'i yükleyin:
brew install postgresql@11
  1. Onu etkinleştir:
brew link postgresql@11 --force
  1. (İsteğe bağlı) yeniden adlandır DB veri dizini postgresiçin postgres@11:
cd /usr/local/var
ls -lh
mv postgresql@11 postgresql@11-fresh-backup
mv postgres postgresql@11
  1. DB'yi başlatın:
brew services start postgresql@11

Herhangi bir hatanız varsa, kontrol edin /usr/local/var/log/postgresql@11.log(@ 11'e dikkat edin).


6
Bu, yalnızca, özel mağaza ile gerçekleştirilen veri deposu geçişlerine yardımcı olmak için Homebrew yöneticileri tarafından açıkça tutulan postgresql @ 11 özel durumu için geçerlidir brew postgresql-upgrade-database. Bu cevap hemen hemen her formül için yararlı değildir.
Adam Wróbel

@ AdamWróbel Postgres hakkındaki orijinal soruya cevap vermenin iyi olduğuna karar verdim . brew postgresql-upgrade-database, yükseltmeler içindir . Cevabım eski bir Postgres sürümünü kullanmakla ilgili . Sadece ikili dosyaları değiştirmek işe yaramaz.
Max Malysh

Bir sürüm yöneticisi kullanmayan NodeJS kullanıcıları nvm, örneğin , FYI Eski LTS sürümleri için bu tekniği kullanma şansım oldu. En azından v10 ve v12 yazarken mevcut olmalıdır, örneğin brew install node@12 formulae.brew.sh/formula/node
paws

9

Eski bir demleme paketi sürümü yükleyin (Flyway 4.2.0 örneği)

Yerel homebrew git dir'nizi bulun veya yerel olarak Homebrew / homebrew-core'u klonlayın

cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/

VEYA

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

Mevcut tüm sürümleri listele

git log master -- Formula/flyway.rb

İstediğiniz sürümün kesin kimliğini kopyalayın ve doğrudan yükleyin

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


neden sadece çalışmaz brew install Formula/flyway.rbgelen homebrew-coredizinden? raw.github..adres kullanmadan benim için çalıştı
kangkyu

9

Burada çözümlerin çoğunu denedim ve modası geçmiş. Buradan bazı çalışmaları kendi işlerimle birleştirmek zorunda kaldım. Sonuç olarak, burada bulabileceğiniz ağır kaldırmayı yapmama yardımcı olacak bir senaryo oluşturdum

Kullanımı:

brewv.sh formula_name desired_version

6

demleme son sürümü için çok kolay yapılabilir.

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)

2
... eğer birisi bu paket için versiyonlu bir tarif yaratmaya rahatsa.
clacke

6

Bunların hiçbiri benim durumumda gerçekten işe yaramadı (Python), bu yüzden 2 sentimi ekleyeceğim:

cd `brew --prefix`
git log Library/Formula/python.rb

Çıktı şöyle görünür:

commit 9ff2d8ca791ed1bd149fb8be063db0ed6a67a6de
Author: Dominyk Tiller <dominyktiller@gmail.com>
Date:   Thu Jun 30 17:42:18 2016 +0100

    python: clarify pour_bottle reason

commit cb3b29b824a264895434214e191d0d7ef4d51c85
Author: BrewTestBot <brew-test-bot@googlegroups.com>
Date:   Wed Jun 29 14:18:40 2016 +0100

    python: update 2.7.12 bottle.

commit 45bb1e220341894bbb7de6fd3f6df20987dc14f0
Author: Rakesh <rakkesh@users.noreply.github.com>
Date:   Wed Jun 29 10:02:26 2016 +0530

    python 2.7.12

    Closes #2452.

    Signed-off-by: Tim D. Smith <git@tim-smith.us>

commit cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9
Author: BrewTestBot <brew-test-bot@googlegroups.com>
Date:   Fri Jun 17 20:14:36 2016 +0100

    python: update 2.7.11 bottle.

...

Sürümü istiyorum 2.7.11böylece karma cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9(veya cf5da05kısa). Sonra, bu sürüme göz atın ve formülü yükledim python:

git checkout cf5da05
brew install python

Son olarak, temizleyin:

git checkout master

2
Hayat değişir ve bu cevap en alakalı olanıdır. Unutmayın HOMEBREW_NO_AUTO_UPDATEve github.com/Homebrew/brew/issues/1188 adresini ziyaret edin
Wile E.

Doğru komutlar cd demlemek --prefix /Homebrewvegit log Library/Taps/homebrew/homebrew-core/Formula/python.rb
Iulian Onofrei

Ama bu bile işe yaramıyor çünkü /Library/Tapsyok sayılıyor.
Iulian Onofrei

Unutma HOMEBREW_NO_AUTO_UPDATE. Evet, ihtiyacınız olan şeyi keşfettikten sonra ihtiyacınız olan şeyi unutmayın . xD
Josh Habdas

Buna ne dersin? HOMEBREW_NO_INSTALL_CLEANUPbu hatırlamanız gereken bir şey değil mi?
kangkyu

6

Sürümünüzü brew search <formula>bulamıyorsanız, istediğiniz sürümü bulmak için formülünüzün taahhüt günlüklerini gözden geçirmeyi de deneyebilirsiniz:

demleme yoluyla nginx'in eski bir sürümünü yüklemek için bir örnek:

Oradan 1.6.3, sha ve raw git url ile kurabiliriz :

brew install https://raw.githubusercontent.com/Homebrew/homebrew/eba75b9a1a474b9fc4df30bd0a32637fa31ec049/Library/Formula/nginx.rb


3

Şu anda belirli formül sürümlerini yüklemenin eski yolları kullanımdan kaldırılmıştır. Yani kullanmak zorundayız gibi görünüyor brew edit [formula]. Diyelim ki bir 62.1sürümünü kurmak istiyoruz icu4c(örneğin için gerekli postgresql 10.5). O zaman yapmak zorundasın

> brew edit icu4c
# drops you to editor

Burada değiştirmek zorunda kalacak url, versionve sha256(belki de mirrortekabül kadar) 62.1dizeleri.

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"

sonra brew reinstall icu4cnihayet 62.1sürümü indirmek için çalıştırın .


nasıl alınır sha256 ? benim durumumdahttps://storage.googleapis.com/dart-archive/channels/stable/release/1.24.3/sdk/dartsdk-macos-x64-release.zip
simo

1

Library / Formula / postgresql.rb satır 8'e güncelleştirme

http://ftp2.uk.postgresql.org/sites/ftp.postgresql.org/source/v8.4.6/postgresql-8.4.6.tar.bz2

9 numaralı MD5

fcc3daaf2292fa6bf1185ec45e512db6

Kaydet ve çık.

brew install postgres
initdb /usr/local/var/postgres

Şimdi bu aşamada postgresql could not create shared memory segment, bu güncellemeyi geçici olarak çözmek için şu hatayla karşılaşabilirsiniz /etc/sysctl.conf:

kern.sysv.shmall=65536
kern.sysv.shmmax=16777216

initdb /usr/local/var/postgresTekrar deneyin ve sorunsuz çalışmalıdır.

Postgresql'yi başlangıçta çalıştırmak için

launchctl load -w /usr/local/Cellar/postgresql/8.4.6/org.postgresql.postgres.plist

Umarım yardımcı olur :)


1

Daha önce elasticsearch'ün eski bir sürümünü /usr/local/Cellar/elasticsearchdizine kopyaladım .

$ mkdir /usr/local/Cellar/elasticsearch/5.4.3/bin
$ cp elasticsearch /usr/local/Cellar/elasticsearch/5.4.3/bin
$ brew switch elasticsearch 5.4.3

Bu kadar. Belki herkes için yararlıdır.


Çirkin bir kesmek. Ama, konsolosun eski bir sürümünü aramaya ve yüklemeye çalışırken, benim için de işe yaradı! Şerefe.
darkdefender27

0

Daha iyi bir yargıya karşı Maven 3.1.1 için olmayan bir formül yaratmaya karar verdim homebrew/versions. Bunu yapmak için:

  1. Github homebrew/versionsüzerine çatalladım.
  2. Çatalımın $(brew --prefix)/Library/Tapsyerel çalışma kopyasına bağlandım. Bunu arayacağım my-homebrew/versions.
  3. Formülü olarak belirterek test ettim my-homebrew/versions/<formula>.
  4. homebrew/versionsYeni formülüm için bir çekme isteği gönderdim .

Yaşasın.



0

Bu cevapta öngörülen süreci kolaylaştırmak için bir araç oluşturdum .

pkgSürümü a.b.colan bir paket bulmak için şunu çalıştırın:

$ brew-install-specific pkg@a.b.c

Bu, pkgGitHub url'leriyle birlikte verilen sürümden bahseden homebrew formülünde taahhütleri listeler .

Matching versions:
1. pkg: update a.b.c bottle.
   https://github.com/Homebrew/homebrew-core/commit/<COMMIT-SHA>
2. pkg: release a.b.c-beta
   https://github.com/Homebrew/homebrew-core/commit/<COMMIT-SHA>
3. pkg a.b.c
   https://github.com/Homebrew/homebrew-core/commit/<COMMIT-SHA>

Select index: 

Verilen URL'den kesinliği doğrulayın ve seçilen kesinliğin dizinini girin.

Select index: 2
Run:
  brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/<COMMIT-SHA>/Formula/pkg.rb

Yüklemek için verilen komutu kopyalayın ve çalıştırın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.