installation - البيرة تثبيت نسخة محددة من الصيغة؟




versioning homebrew (13)

سير العمل البسيط

الآن بعد أن تم إهمال Homebrew / الإصدارات ، يدعم Homebrew / core إصدارات متعددة من الصيغ بتنسيق تسمية جديد.

لتثبيت إصدار معين ، على سبيل المثال postgresql 9.5 ، ما عليك سوى تشغيل:

$ brew install [email protected]

لإدراج الإصدارات المتاحة ، قم بإجراء بحث باستخدام @:

$ brew search [email protected]
==> Searching local taps...
[email protected][email protected]        [email protected]        [email protected]

كيف أقوم بتثبيت إصدار محدد من صيغة في البيرة؟ على سبيل المثال ، postgresql-8.4.4 بدلاً من أحدث 9.0.


  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 ، والتي تنتقل إلى التزام GitHub:

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

  5. انقر فوق الزر "عرض" لعرض المصدر لملف mysql.rb بعد تطبيق الالتزام.

  6. ثم انقر فوق الزر "Raw" لعرض المصدر الخام.

  7. انسخ عنوان URL.

    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
    

سهل جدا.


أنا فقط استخدمت البيرة إلى العودة إلى Maven 2.2.1 منذ brew install maven 3.0.3.

أولاً يجب عليك مغادرة مخضرم دير هناك

$ brew unlink maven

استخدم الأمر brew tap

$ 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 للتبديل إلى إصدار مختلف.

تحرير: قام مشروع Apache Maven بإعادة تنظيم الريبو. تم تحديث هذه الإجابة لحساب هذا التغيير.


إجابة محدثة منذ ذلك يضيف إلى ما @ pollard pollard نشر بالفعل كإجابة عمل.

كيفية تثبيت إصدار محدد من الصيغة (الصيغة المستخدمة في هذا المثال هي terraform ):

  1. ابحث عن ملف الصيغة ، على سبيل المثال: https://github.com/Homebrew/homebrew-core/blob/master/Formula/terraform.rb
  2. احصل على نسخة الالتزام من تاريخ جيثب مع https://github.com/Homebrew/homebrew-core/commits/master/Formula/terraform.rb أو git log master -- Formula/terraform.rb إذا كنت قد استنسعت الريبو محليا.
  3. احصل على عنوان URL الخاص ببرنامج git الخام مع نسخة الالتزام من الصيغة الخاصة بك: إذا كان رابط الصيغة في github.com هو https://github.com/Homebrew/homebrew-core/blob/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb ، فإن عنوان URL الخاص بك سيكون be: https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
  4. تثبيته مع: brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb


المشكلة مع homebrew/versions هي أن شخص ما لديه هذا الإصدار المحدد من البرامج المدرجة في مستودع لتتمكن من استخدامها. أيضا ، لأن لم تعد معتمدة على brew versions ، هناك حاجة إلى حل آخر. بالنسبة للحلول التي تشير إلى استخدام brew switch ، فإن هذا لن يعمل إلا إذا لم تكن قد قمت بعمل brew cleanup لأن الإصدار يحتاج إلى وجوده على جهاز الكمبيوتر الخاص بك.

واجهت مشكلة في الرغبة في تثبيت إصدار قديم محدد من docker-machine لم يتم إدراجه في المنتجات homebrew/versions . لقد حلت هذا باستخدام أدناه ، والتي ينبغي أن تعمل أيضا لأي برمجيات تثبيت المشروب. سيستخدم المثال أدناه جهاز docker-machine كحزمة أريد الرجوع إلى إصدار سابق من الإصدار 0.5.0 إلى 0.4.1.

  1. اذهب إلى دليل Formbau الخاص بك.
    يمكنك تحديد ذلك عن طريق تشغيل brew info [any package name] . على سبيل المثال ، يعطيني brew info docker-machine خطًا يوضح لي مسارًا - /usr/local/Cellar/docker-machine/0.5.0 . هذا يخبرني أنه على جهازي ، يتم تثبيت /usr/local في /usr/local Formula دليل 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 (يتم إدراج إدخالات بوابة git من آخرها إلى أقرب تاريخ).

  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/15/2015

  • ابحث عن سجل الالتزام للبرنامج والإصدار المطلوب. على سبيل المثال ، أنا بحاجة للتبديل من الإصدار 1.4.1 إلى الإصدار 1.31: https://github.com/Homebrew/homebrew-core/commits/master/Formula/docker.rb
  • عرض الملف مع هذا الزر:
  • انقر فوق الزر Raw:
  • انسخ URL (docker.rb url في هذا المثال) من شريط العناوين
  • brew install <url>
  • brew switch docker 1.3.3
  • العودة إلى عامل ميناء 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

توجد الآن طريقة أسهل بكثير لتثبيت إصدار قديم من صيغة قمت بتثبيتها مسبقًا. ببساطة استخدام

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 يغير فقط الروابط ، فإنه سريع جدًا. انظر مزيد من الوثائق حول Homebrew Wiki تحت أوامر خارجية .


في الإصدار الأحدث من البيرة (0.9.5 حتى كتابة هذه السطور) ستكون هناك وصفة محددة لإصدار برميل البيرة الذي تريد تثبيته. مثال:

$ brew search mongodb
mongodb    mongodb24  mongodb26

ثم مجرد القيام brew install mongodb26 مثل وضعها الطبيعي.

في حالة تثبيت أحدث إصدار ، تأكد من إلغاء ربط أحدث إصدار وربط الإصدار المطلوب: brew unlink mongodb && brew link mongodb26 .


لقد اكتشفت حلا بديلا أفضل ثم الحلول المعقدة الأخرى.

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

سيقوم هذا بتنزيل وتثبيت PostgreSQL 8.4.8

لقد وجدت هذا الحل من خلال البدء في اتباع خطوات البحث في الريبو comment في الريبو.

بعد قليل من البحث وجدت أن شخص ما لديه مجموعة من الصيغ النادرة لتكوينها.

إذا كنت تبحث عن MySQL 5.1.x ، فتجرب هذه المحاولة.

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

لم يعمل أي من هذه الأمور لحالتي (بايثون) ، لذا سأضيف سنتاتي 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.

...

أريد إصدار 2.7.11 حتى التجزئة بلدي هو cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9 (أو cf5da05 للاختصار). بعد ذلك ، أتحقق من هذا الإصدار python الصيغة python :

git checkout cf5da05
brew install python

أخيرًا ، قم بتنظيف:

git checkout master

يمكن أن يكون من السهل جدا على الإصدار الأخير من الشراب.

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)