SORU
21 EKİM 2010, PERŞEMBE


Homebrew formül özel bir versiyonunu yüklemek?

Nasıl homebrew bir formül belirli bir sürümünü kurarım? Örneğin,-postgresql 8.4.4 en son 9.0 yerine.

CEVAP
11 Kasım 2010, PERŞEMBE


(Yeniden düzenlenmiş cevabım yükleme/homebrew ile eski yazılım sürümlerini kullanarak daha kapsamlı bir iş akışı vermem gerekiyor. Eğer eski sürüm daha iyi bulduysanız bir not eklemek için çekinmeyin.)

Hadi en basit örnek ile başlayalım:

Sürüm zaten yüklü olup olmadığını 1) Kontrol, (ancak etkin değil)

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

Eğer uzun süre homebrew kullanıyorum ve asla eski sürümleri (örneğin brew cleanup kullanarak) kaldırıldı varsa, şansını bu program bazı eski sürüm hala buralarda olabilir. Önceki sürüm, brew switch bunu yapmak için en kolay yoludur sadece etkinleştirmek istiyorsanız.

Eski sürümü yüklü olup olmadığını brew info postgresql (ya da brew switch postgresql <TAB>) ile 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üm zaten yüklü olduğunu görüyoruz. Biz Mayıs brew switch kullanarak etkinleştirmek için:

$ 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

Hadi aktif ne çift 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

Yıldız * yeni devreye sürümü taşındı unutmayın

(*)Lütfen brew switch sadece eski sürümü tüm bağımlılıkları hala etrafta olduğu sürece çalıştığını unutmayın. Bazı durumlarda, eski sürümü yeniden oluşturulmasını gerekli hale gelebilir. Bu nedenle, brew switch kullanarak bir iki versiyonu da birbirinden uzak değil arasında geçiş yapmak istediğinde çoğunlukla yararlıdır.

2) sürümü, bir musluk olarak kullanılabilir olup olmadığını Kontrol edin

Özellikle büyük yazılım projeleri için, birkaç için yeterince yüksek bir talep (potansiyel olarak uyumsuz API) yazılım belirli bir parça büyük sürümleri var çok büyük ihtimalle. Mart 2012, 51* *bunun için bir mekanizma sağlar: brew tap & homebrew versions depo.

Bu sürümleri depo birçok formüller için eski sürümleri backports içerebilir. (Genellikle büyük ve ünlü olanlar sadece, ama tabii ki de postgresql için çeşitli formüller var.)

brew search postgresql bak sana yolu gösterir:

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

Sadece yazarak yükleyebilirsiniz

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

Bu otomatik olduğunu unutmayınvurduhomebrew/versions dokunun. (brew tap ile kontrol edin*. *32 ile kaldırmak) Aşağıdaki eşdeğer olurdu:

$ brew tap homebrew/versions
$ brew install postgresql8

Backported sürümü formülleri güncel kaldığı sürece, bu yaklaşım, muhtemelen en iyi yolu eski yazılım ile başa çıkmak için.

3) geçmişten gelen bir formül Deneyin

Aşağıdaki yaklaşımlar çoğunlukla bütünlüğü için listelenmiştir. İki bira deposundan bazı undead formül diriltmeye çalışın. Değişti bağımlılıkları, formül spec API değişiklikleri veya indirme URL değişikliği sadece nedeniyle, şeyler olabilir veya çalışmayabilir.

Bütün formül dizine git deposu olduğundan, belirli sürümleri düz git komutlarını kullanarak yükleyebilirsiniz. Ancak, eski sürümü mevcut olduğu bir taahhüt almak için bir yol bulmalıyız.

a) tarihi bir kez

Ağustos 2011-Ekim 2014 arasında, homebrew ilgili SHA onların karma ile tüm mevcut sürümleri tükürdü brew versions bir komut vardı. Ekim 2014, kullanmadan önce brew tap homebrew/boneyard yapmak zorunda. Adını dokunun anlaşılacağı gibi, muhtemelen sadece son çare olarak bunu yapmak gerekir.

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

Gördüğünüz gibi, bunu kullanarak karşı önerir. Homebrew iç arşivlerde bulabilirsin tüm sürümleri tükürüyor ve seni eski formülü almak için bir yol gösterir. 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üklü olduğu için, bizim depoyu temiz tutmak için yeniden yüklemek en son formüle edebiliriz:

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

brew switch eski ve yeni arasında değiştirmek için senin arkadaşın.

b) tarih öncesi zamanlarda

Özel ihtiyaçları için, aynı zamanda homebrew repo yoluyla kendi araştırmaya çalışabiliriz.

$ git log -S'8.4.4' -- Library/Formula/postgresql.rb

git log -S tüm olan 42 ** dize veya dosya Library/Formula/postgresql.rb kaldırılması da eklendi tamamlar görünüyor. İki sonuç olarak tamamlar.

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

Belli ki, fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422 taahhüt ilgileniyoruz. Bu oldukça eski olduğunu taahhüt olarak, tam homebrew yükleme (böylece formül API daha fazla veya daha az garanti geçerli değildir) bozmaya çalışacağız:

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

Git deponuzdaki başvuru tutmak için son komutu atlayabilirsiniz.

Eski taahhüt kontrol, geçici olarak homebrew yükleme düşürme. bir not: Yani, homebrew bazı komutlar en son sürüm için farklı olabilir dikkatli olmak gerekir.

4) El ile formül yazma

Çok zor değil ve daha sonra Homebrew-Versions yükleyin.

A.) Bonus: İğneleme

Eğer ki postgresql, etrafında belirli bir sürümünü kullanmaya devam ve brew update; brew upgrade doğal prosedür ne zaman güncellenmekte durdurmak isterseniz, yapabilirsinizpinbir formül:

$ brew pin postgresql

Tutturulmuş formüller /usr/local/Library/PinnedKegs/ listelenir ve son değişiklik ve güncellemeleri getirmek istiyorum bir kere Ara

$ brew unpin postgresql.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eddie Bravo

    Eddie Bravo

    17 EKİM 2006
  • Kamikazeepanda

    Kamikazeepan

    5 ŞUBAT 2006
  • Sarah's YouTube Channel

    Sarah's YouT

    27 Temmuz 2009