installation महत होमब्रू सूत्र के विशिष्ट संस्करण स्थापित करें?




गणित के सूत्र कक्षा 10 (16)

अब एक सूत्र के पुराने संस्करण को स्थापित करने का एक आसान तरीका है जिसे आपने पहले इंस्टॉल किया था। बस उपयोग करें

brew switch [formula] [version]

उदाहरण के लिए, मैं नियमित रूप से Node.js 0.4.12 और 0.6.5 के बीच वैकल्पिक रूप से वैकल्पिक हूं:

brew switch node 0.4.12
brew switch node 0.6.5

चूंकि brew switch सिर्फ सिम्लिंक बदलता है, यह बहुत तेज़ है। बाहरी कमांड के तहत होमब्रू विकी पर और दस्तावेज देखें।

मैं होमब्री में सूत्र के एक विशिष्ट संस्करण को कैसे स्थापित करूं? उदाहरण के लिए, नवीनतम 9.0 के बजाय postgresql-8.4.4।


मैंने बस brew install maven इंस्टॉल मैवेन मैवेन 3.0.3 स्थापित brew install maven बाद से मैवेन 2.2.1 पर वापस जाने के लिए होमब्रू का उपयोग किया।

सबसे पहले आपको वहां मैवेन डायर छोड़ना होगा

$ brew unlink maven

ब्रू टैप कमांड का प्रयोग करें

$ brew tap homebrew/versions
Cloning into '/usr/local/Library/Taps/homebrew-versions'...
remote: Counting objects: 590, done.
remote: Compressing objects: 100% (265/265), done.
remote: Total 590 (delta 362), reused 549 (delta 325)
Receiving objects: 100% (590/590), 117.49 KiB | 79 KiB/s, done.
Resolving deltas: 100% (362/362), done.
Tapped 50 formula

अब आप maven2 सूत्र स्थापित कर सकते हैं:

$ brew install maven2
==> Downloading http://www.apache.org/dist/maven/maven-2/2.2.1/binaries/apache-maven-2.2.1-bin.tar.gz
######################################################################## 100.0%
/usr/local/Cellar/maven2/2.2.1: 10 files, 3.1M, built in 6 seconds
$ mvn --version
Apache Maven 2.2.1 (r801777; 2009-08-06 12:16:01-0700)
Java version: 1.6.0_37
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x" version: "10.7.4" arch: "x86_64" Family: "mac" 

संपादित करें: आप एक अलग संस्करण पर स्विच करने के लिए बस brew switch maven 2.2.1 भी बना सकते हैं।

संपादित करें: अपाचे मेवेन प्रोजेक्ट ने अपने रेपो को पुनर्गठित किया। इस परिवर्तन को इस परिवर्तन के लिए खाते में अपडेट किया गया।


यह ब्रू के अंतिम संस्करण के लिए बहुत आसान किया जा सकता है।

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)

अद्यतन: 1/15/2015

  • वांछित सॉफ्टवेयर और संस्करण का प्रतिबद्ध इतिहास खोजें। उदाहरण के लिए मुझे डॉकर संस्करण 1.4.1 से 1.3.3 तक स्विच करने की आवश्यकता है: https://github.com/Homebrew/homebrew-core/commits/master/Formula/docker.rb
  • इस बटन के साथ फ़ाइल देखें:
  • रॉ बटन पर क्लिक करें:
  • पता बार से URL (इस उदाहरण में docker.rb यूआरएल) की प्रतिलिपि बनाएँ
  • brew install <url>
  • brew switch docker 1.3.3
  • डॉकर 1.4.1 brew switch docker 1.4.1 वापस brew switch docker 1.4.1

इस gist

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

homebrew/versions साथ समस्या यह है कि आपके पास इसका उपयोग करने में सक्षम होने के लिए रिपॉजिटरी में सूचीबद्ध सॉफ़्टवेयर का उस विशिष्ट संस्करण होना चाहिए। इसके अलावा, चूंकि brew versions अब समर्थित नहीं हैं, एक और समाधान की आवश्यकता है। brew switch का उपयोग करने वाले संकेतों के brew switch , यह केवल तभी काम करेगा जब आपने brew cleanup नहीं किया है क्योंकि संस्करण आपके कंप्यूटर पर मौजूद होना आवश्यक है।

मुझे docker-machine एक विशिष्ट पुराने संस्करण को स्थापित करने के लिए एक समस्या थी जो homebrew/versions में सूचीबद्ध नहीं था। मैंने इसे नीचे का उपयोग करके हल किया है, जिसे किसी भी ब्रू इंस्टॉल सॉफ़्टवेयर के लिए भी काम करना चाहिए। नीचे दिया गया उदाहरण docker-machine उपयोग उस पैकेज के रूप में करेगा जिसे मैं संस्करण 0.5.0 से 0.4.1 तक डाउनग्रेड करना चाहता हूं।

  1. अपने होमब्रू Formula निर्देशिका पर जाएं।
    आप brew info [any package name] चलाकर इसे निर्धारित कर सकते हैं। उदाहरण के लिए, brew info docker-machine मुझे एक लाइन देता है जो मुझे पथ दिखाती है - /usr/local/Cellar/docker-machine/0.5.0 । यह मुझे बताता है कि मेरी मशीन पर, होमब्रू /usr/local पर स्थापित है और मेरी Formula निर्देशिका डिफ़ॉल्ट रूप से /usr/local/Library/Formula पर स्थित है

  2. अपने पैकेज के लिए विशिष्ट सूत्र फ़ाइल (.rb) का पता लगाएं। चूंकि मैं docker-machine डाउनग्रेड करना चाहता हूं, इसलिए मैं एक docker-machine.rb फ़ाइल देख सकता हूं।

  3. इस सूत्र फ़ाइल के लिए संस्करण इतिहास प्राप्त करेंgit log docker-machine.rb दर्ज करें। यह इस फ़ाइल के लिए पूर्ण प्रतिबद्धता इतिहास सूचीबद्ध करेगा। आप इस तरह के आउटपुट देखेंगे:

    ...more 

    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

मुश्किल हिस्सा यह है कि आप चाहते हैं कि विशिष्ट संस्करण के लिए नवीनतम प्रतिबद्धता को खोजने के लिए है। उपरोक्त में, मैं बता सकता हूं कि इस प्रतिबद्ध टैग के साथ नवीनतम 0.4.1 संस्करण किया गया था: commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423 । इस बिंदु के ऊपर की ओर संस्करण 0.5.0 का उपयोग शुरू होता है (गिट लॉग प्रविष्टियां नवीनतम से सबसे पुरानी तारीख तक सूचीबद्ध हैं)।

  1. फॉर्मूला फ़ाइल का पिछला संस्करण प्राप्त करें। चरण # 3 से प्रतिबद्ध टैग का उपयोग करना (आप पहले 6 वर्णों का उपयोग कर सकते हैं), आप निम्न का उपयोग कर फ़ॉर्मूला फ़ाइल का पुराना संस्करण प्राप्त कर सकते हैं:

    git checkout 5970e1 docker-machine.rb

  2. अपने वर्तमान पैकेज संस्करण को अनइंस्टॉल करें। अपने पैकेज के वर्तमान संस्करण को अनइंस्टॉल करने के लिए बस सामान्य ब्रू कमांड चलाएं।
    पूर्व। brew uninstall docker-machine

  3. पुराने पैकेज संस्करण को अभी इंस्टॉल करें, आप केवल सामान्य ब्रू इंस्टॉल कमांड चला सकते हैं और यह उस फॉर्मूला को इंस्टॉल करेगा जिसे आपने चेकआउट किया है। पूर्व। brew install docker-machine

यदि आवश्यक हो तो आपको brew link docker-machine का उपयोग कर फिर से लिंक करने की आवश्यकता हो सकती है।

यदि आप किसी भी समय किसी विशिष्ट पैकेज के नवीनतम संस्करण पर वापस जाना चाहते हैं, तो फॉर्मूला निर्देशिका में जाएं और अपने सूत्र फ़ाइल (.rb) पर निम्न आदेश जारी करें।

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

फिर आप नवीनतम संस्करण प्राप्त करने के लिए brew uninstall docker-machine और brew install docker-machine सकते हैं और इसे आगे बढ़ने के तरीके को बनाए रख सकते हैं।


  1. Braumeister.org पर अपने पैकेज के लिए खोजें।

  2. परिणामों को देखो। आप इस तरह के एक स्थान पर होंगे:

    http://braumeister.org/search/mysql

    जहां mysql आपकी खोज क्वेरी है।

  3. जिसकी आप रुचि रखते हैं उसे क्लिक करें, उदाहरण के लिए, "mysql", http://braumeister.org/formula/mysql जैसे किसी स्थान पर नेविगेट करना।

  4. पृष्ठ के निचले हिस्से में संशोधन इतिहास देखें। यदि आप MySQL 5.7.10 में रूचि रखते हैं, तो आप 5.7.11 से पहले नवीनतम संशोधन पर क्लिक करना चाहेंगे, जो कि गिटहब प्रतिबद्धता पर नेविगेट करता है:

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

  5. प्रतिबद्धता लागू होने के बाद mysql.rb फ़ाइल के स्रोत को देखने के लिए "देखें" बटन पर क्लिक करें।

  6. फिर कच्चे स्रोत को देखने के लिए "कच्चे" बटन पर क्लिक करें।

  7. यूआरएल कॉपी करें।

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

  8. इसे स्थापित करो:

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

बहुत आसान।


लाइब्रेरी / फॉर्मूला / postgresql.rb लाइन 8 पर अपडेट करें

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

और एमडी 5 लाइन 9 पर

fcc3daaf2292fa6bf1185ec45e512db6

सुरषित और बहार।

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

अब इस चरण में आपको postgresql could not create shared memory segment सामना करना पड़ postgresql could not create shared memory segment , जो कि इस तरह के /etc/sysctl.conf अद्यतन करने के postgresql could not create shared memory segment त्रुटि postgresql could not create shared memory segment :

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

initdb /usr/local/var/postgres दोबारा प्रयास करें, और इसे चिकनी चलाना चाहिए।

शुरुआत पर postgresql चलाने के लिए

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

उम्मीद है की वो मदद करदे :)


I decided, against my better judgment, to create a formula for Maven 3.1.1, which homebrew/versions did not have. To do this:

  1. I forked homebrew/versions on github.
  2. I symlinked from $(brew --prefix)/Library/Taps to the local working copy of my fork. I'll call this my-homebrew/versions .
  3. I tested by specifying the formula as my-homebrew/versions/<formula> .
  4. I sent a pull request to homebrew/versions for my new formula.

Yay.


@tschundeee और @ डेबिलस्की के अपडेट 1 द्वारा वर्णित वर्कफ़्लो के आधार पर, मैंने प्रक्रिया को स्वचालित किया और इस स्क्रिप्ट में क्लीनअप जोड़ा।

इसे डाउनलोड करें , इसे अपने पथ में रखें और brewv <formula_name> <wanted_version> । विशिष्ट ओपी के लिए, यह होगा:

cd path/to/downloaded/script/
./brewv postgresql 8.4.4

:)


इनमें से कोई भी वास्तव में मेरे मामले (पायथन) के लिए काम नहीं करता है, इसलिए मैं अपना 2 सेंट जोड़ूंगा:

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

आउटपुट इस तरह दिखता है:

commit 9ff2d8ca791ed1bd149fb8be063db0ed6a67a6de
Author: Dominyk Tiller <[email protected]>
Date:   Thu Jun 30 17:42:18 2016 +0100

    python: clarify pour_bottle reason

commit cb3b29b824a264895434214e191d0d7ef4d51c85
Author: BrewTestBot <[email protected]>
Date:   Wed Jun 29 14:18:40 2016 +0100

    python: update 2.7.12 bottle.

commit 45bb1e220341894bbb7de6fd3f6df20987dc14f0
Author: Rakesh <[email protected]>
Date:   Wed Jun 29 10:02:26 2016 +0530

    python 2.7.12

    Closes #2452.

    Signed-off-by: Tim D. Smith <[email protected]>

commit cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9
Author: BrewTestBot <[email protected]>
Date:   Fri Jun 17 20:14:36 2016 +0100

    python: update 2.7.11 bottle.

...

मुझे संस्करण cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9 इसलिए मेरा हैश cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9 (या cf5da05 लिए cf5da05 ) है। इसके बाद, मैं उस संस्करण को देखता हूं और फॉर्मूला python स्थापित करता हूं:

git checkout cf5da05
brew install python

अंत में, साफ करें:

git checkout master

यदि आपको brew search <formula> साथ अपना संस्करण नहीं मिल रहा है, तो आप अपने फॉर्मूला के लिए प्रतिबद्ध लॉग को अपने इच्छित संस्करण को ढूंढने का प्रयास कर सकते हैं:

ब्रू के माध्यम से nginx के पुराने संस्करण को स्थापित करने के लिए यहां एक उदाहरण दिया गया है:

वहां से, हम शा और कच्चे गिट यूआरएल के साथ 1.6.3 स्थापित कर सकते हैं:

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


मैंने अन्य जटिल समाधानों के बाद एक बेहतर वैकल्पिक समाधान खोजा है।

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

यह PostgreSQL 8.4.8 को डाउनलोड और इंस्टॉल करेगा

मुझे रेपो में एक comment और रेपो में एक comment खोजने के चरणों का पालन करना शुरू करके यह समाधान मिला।

एक छोटे से शोध के बाद पाया गया कि किसी के साथ बनाने के लिए दुर्लभ सूत्रों का संग्रह है।

यदि आप MySQL 5.1.x की तलाश में हैं, तो इसे आज़माएं।

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

@ आधे क्यूब के सुझावों के साथ, यह वास्तव में अच्छी तरह से काम करता है:

  1. जिस लाइब्रेरी को आप ढूंढ रहे हैं उसे https://github.com/mxcl/homebrew/tree/master/Library/Formula पर ढूंढें
  2. इसे क्लिक करें: https://github.com/mxcl/homebrew/blob/master/Library/Formula/postgresql.rb
  3. पुरानी प्रतिबद्धताओं को देखने के लिए "इतिहास" बटन पर क्लिक करें: https://github.com/mxcl/homebrew/commits/master/Library/Formula/postgresql.rb
  4. अपनी इच्छानुसार क्लिक करें: "postgresql: अद्यतन संस्करण 8.4.4", https://github.com/mxcl/homebrew/blob/fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422/Library/Formula/postgresql.rb
  5. "कच्चे" लिंक पर क्लिक करें: https://raw.github.com/mxcl/homebrew/fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422/Library/Formula/postgresql.rb
  6. brew install https://raw.github.com/mxcl/homebrew/fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422/Library/Formula/postgresql.rb

होमब्रू के नवीनतम संस्करण (इस लेखन के रूप में 0.9.5) पर होमब्री किग के संस्करण के लिए एक विशिष्ट नुस्खा होगा जिसे आप इंस्टॉल करना चाहते हैं। उदाहरण:

$ brew search mongodb
mongodb    mongodb24  mongodb26

फिर बस सामान्य की तरह brew install mongodb26

यदि आप पहले से ही नवीनतम संस्करण स्थापित कर चुके हैं, तो नवीनतम संस्करण को अनलिंक करना और इच्छित संस्करण को लिंक करना सुनिश्चित करें: brew unlink mongodb && brew link mongodb26


मैंने बस /usr/local/Cellar/elasticsearch निर्देशिका में elasticsearch की पुरानी रिलीज की प्रतिलिपि बनाई है।

$ 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

बस। शायद यह किसी के लिए उपयोगी है।


( मैंने होमब्री के साथ पुराने सॉफ्टवेयर संस्करणों को स्थापित / उपयोग करने के लिए एक अधिक व्यापक वर्कफ़्लो देने के लिए अपना उत्तर दोबारा संपादित कर दिया है। यदि आपको पुराना संस्करण बेहतर लगता है तो नोट जोड़ने के लिए स्वतंत्र महसूस करें। )

चलो सबसे सरल मामले से शुरू करते हैं:

1) जांचें, क्या संस्करण पहले से स्थापित है (लेकिन सक्रिय नहीं है)

जब होमब्री एक नया सूत्र स्थापित करता है, तो यह इसे एक संस्करण वाली निर्देशिका में रखता है जैसे /usr/local/Cellar/postgresql/9.3.1 । इस फ़ोल्डर के लिए केवल प्रतीकात्मक लिंक वैश्विक स्तर पर स्थापित किए जाते हैं। सिद्धांत रूप में, यह दो स्थापित संस्करणों के बीच स्विच करना बहुत आसान बनाता है। (*)

यदि आप लंबे समय तक होमब्री का उपयोग कर रहे हैं और पुराने संस्करणों को कभी नहीं हटाते हैं (उदाहरण के लिए, brew cleanup का उपयोग करके), संभावना है कि आपके प्रोग्राम का कुछ पुराना संस्करण अभी भी आसपास हो सकता है। यदि आप बस उस पिछले संस्करण को सक्रिय करना चाहते हैं, तो brew switch यह करने का सबसे आसान तरीका है।

brew info postgresql (या brew switch postgresql <TAB> ) के साथ जांचें कि पुराना संस्करण स्थापित है या नहीं:

$ 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

हम देखते हैं कि कुछ पुराने संस्करण पहले ही स्थापित हैं। हम 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

आइए सक्रिय करें कि सक्रिय क्या है:

$ 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

ध्यान दें कि स्टार * नए सक्रिय संस्करण में स्थानांतरित हो गया है

(*) कृपया ध्यान दें कि brew switch केवल तब तक काम करता है जब तक कि पुराने संस्करण की सभी निर्भरताएं अभी भी आसपास न हों। कुछ मामलों में, पुराने संस्करण का पुनर्निर्माण आवश्यक हो सकता है। इसलिए, brew switch का उपयोग करना अधिकतर उपयोगी होता है जब कोई दो संस्करणों के बीच स्विच करना चाहता है जो बहुत दूर नहीं है।

2) जांचें, क्या संस्करण टैप के रूप में उपलब्ध है या नहीं

विशेष रूप से बड़ी सॉफ्टवेयर परियोजनाओं के लिए, यह बहुत संभव है कि सॉफ़्टवेयर के एक निश्चित टुकड़े के कई (संभावित रूप से एपीआई असंगत) प्रमुख संस्करणों की पर्याप्त मांग है। मार्च 2012 तक, होमब्रू 0.9 इसके लिए एक तंत्र प्रदान करता है: brew tap और होमब्रू संस्करण भंडार।

उन संस्करणों में भंडार में कई सूत्रों के लिए पुराने संस्करणों के बैकपोर्ट शामिल हो सकते हैं। (ज्यादातर बड़े और मशहूर लोग, लेकिन निश्चित रूप से उनके पास पोस्टग्रेस्क्ल के लिए कई सूत्र भी होंगे।)

brew search postgresql आपको दिखाएगा कि कहां देखना है:

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

हम इसे टाइप करके बस इंस्टॉल कर सकते हैं

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

ध्यान दें कि इसने homebrew/versions टैप को स्वचालित रूप से टैप कर दिया homebrew/versions । ( brew tap साथ जांचें, brew untap homebrew/versions साथ हटाएं।) निम्नलिखित समकक्ष होंगे:

$ brew tap homebrew/versions
$ brew install postgresql8

जब तक बैकपोर्टेड संस्करण सूत्र अद्यतित रहते हैं, तब तक यह दृष्टिकोण पुराने सॉफ्टवेयर से निपटने का सबसे अच्छा तरीका है।

3) अतीत से कुछ सूत्र का प्रयास करें

निम्नलिखित दृष्टिकोण ज्यादातर पूर्णता के लिए सूचीबद्ध हैं। दोनों ब्रू रिपोजिटरी से कुछ मरे हुए सूत्र को पुनर्जीवित करने का प्रयास करते हैं। परिवर्तित निर्भरताओं के कारण, फॉर्मूला spec में एपीआई परिवर्तन या डाउनलोड यूआरएल में बस एक बदलाव, चीजें काम कर सकती हैं या नहीं भी हो सकती हैं।

चूंकि संपूर्ण सूत्र निर्देशिका एक गिट भंडार है, इसलिए कोई सादा गिट कमांड का उपयोग करके विशिष्ट संस्करण स्थापित कर सकता है। हालांकि, हमें उस प्रतिबद्धता को पाने का एक तरीका ढूंढना होगा जहां पुराना संस्करण उपलब्ध था।

ए) ऐतिहासिक समय

अगस्त 2011 और अक्टूबर 2014 के बीच, होमब्रू में brew versions कमांड था, जो सभी उपलब्ध संस्करणों को उनके संबंधित एसएचए हैंश के साथ बाहर निकाल देता था। अक्टूबर 2014 तक, आप इसे इस्तेमाल करने से पहले brew tap homebrew/boneyard करना होगा। जैसा कि टैप के नाम से पता चलता है, आपको शायद इसे अंतिम उपाय के रूप में ही करना चाहिए।

उदाहरण के लिए

$ 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

जैसा कि आप देख सकते हैं, यह इसका उपयोग करने के खिलाफ सलाह देता है। होमब्रू अपने आंतरिक ह्युरिस्टिक के साथ मिल सकने वाले सभी संस्करणों को थकाता है और आपको पुराने सूत्रों को पुनर्प्राप्त करने का एक तरीका दिखाता है। चलो यह कोशिश करते हैं।

# 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

अब जब पुराना पोस्टग्रेस्क्ल संस्करण स्थापित है, तो हम अपने भंडार को साफ रखने के लिए नवीनतम सूत्र को फिर से इंस्टॉल कर सकते हैं:

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

brew switch आपके दोस्त को पुराने और नए के बीच बदलने के लिए है।

बी) प्रागैतिहासिक काल

विशेष जरूरतों के लिए, हम होमब्रे रेपो के माध्यम से अपनी खुदाई भी कर सकते हैं।

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

git log -S सभी काम करता है जिसमें स्ट्रिंग '8.4.4' या तो फ़ाइल Library/Formula/postgresql.rb फ़ाइल में जोड़ा या हटा दिया गया था। परिणामस्वरूप हमें दो काम मिलते हैं।

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

जाहिर है, fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422 वह प्रतिबद्धता है जिसमें हम रुचि रखते हैं। चूंकि यह प्रतिबद्धता बहुत पुरानी है, हम पूरी होमब्रू स्थापना को डाउनग्रेड करने का प्रयास करेंगे (इस तरह, फॉर्मूला एपीआई मान्य होने की गारंटी कम या कम है):

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

आप अपने गिट भंडार में संदर्भ रखने के लिए अंतिम आदेश छोड़ सकते हैं।

एक नोट: पुराने प्रतिबद्धता की जांच करते समय, आप अस्थायी रूप से अपने होमब्रू स्थापना को डाउनग्रेड करते हैं। इसलिए, आपको सावधान रहना चाहिए क्योंकि होमब्री में कुछ कमांड नवीनतम संस्करण के लिए अलग हो सकते हैं।

4) मैन्युअल रूप से एक सूत्र लिखें

यह बहुत कठिन नहीं है और फिर आप इसे होमब्रू-संस्करणों में अपलोड कर सकते हैं।

ए) बोनस: पिनिंग

यदि आप एक निश्चित संस्करण रखना चाहते हैं, तो postgresql कहें, जब आप प्राकृतिक brew update; brew upgrade करते हैं तो उसे अपडेट होने से रोकें और रोकें brew update; brew upgrade brew update; brew upgrade प्रक्रिया, आप एक फॉर्मूला पिन कर सकते हैं:

$ brew pin postgresql

पिन किए गए सूत्र /usr/local/Library/PinnedKegs/ में सूचीबद्ध हैं /usr/local/Library/PinnedKegs/ और एक बार जब आप नवीनतम परिवर्तन और अपडेट लाने के लिए चाहते हैं, तो आप इसे फिर से अनपिन कर सकते हैं:

$ brew unpin postgresql