ฉันจะติดตั้งสูตรเฉพาะในโฮมบรูว์ได้อย่างไร ตัวอย่างเช่น postgresql-8.4.4 แทนที่จะเป็น 9.0 ล่าสุด
ฉันจะติดตั้งสูตรเฉพาะในโฮมบรูว์ได้อย่างไร ตัวอย่างเช่น postgresql-8.4.4 แทนที่จะเป็น 9.0 ล่าสุด
คำตอบ:
TLDR: brew install postgresql@8.4.4ดูคำตอบด้านล่างสำหรับรายละเอียดเพิ่มเติม
* ( ฉันได้แก้ไขคำตอบของฉันอีกครั้งเพื่อให้เวิร์กโฟลว์ที่ละเอียดยิ่งขึ้นสำหรับการติดตั้ง / ใช้ซอฟต์แวร์รุ่นเก่ากับ homebrew อย่าลังเลที่จะเพิ่มบันทึกย่อหากคุณพบรุ่นเก่าดีกว่า )
เริ่มจากกรณีที่ง่ายที่สุด:
เมื่อติดตั้ง homebrew สูตรใหม่ก็ทำให้มันอยู่ในไดเรกทอรี versioned /usr/local/Cellar/postgresql/9.3.1เช่น ลิงก์สัญลักษณ์ไปยังโฟลเดอร์นี้เท่านั้นจะถูกติดตั้งทั่วโลก โดยหลักการแล้วสิ่งนี้ทำให้ง่ายต่อการสลับไปมาระหว่างรุ่นที่ติดตั้งสองรุ่น (*)
หากคุณใช้ homebrew มานานกว่าและไม่เคยลบรุ่นเก่าออกไป (ตัวอย่างเช่นใช้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จึงมีประโยชน์เป็นส่วนใหญ่เมื่อเราต้องการสลับระหว่างสองเวอร์ชันไม่ห่างกันมากเกินไป
โดยเฉพาะอย่างยิ่งสำหรับโครงการซอฟต์แวร์ขนาดใหญ่มันอาจเป็นไปได้ว่ามีความต้องการสูงพอสำหรับรุ่นหลักบางส่วน (อาจเข้ากันไม่ได้กับ API) ของซอฟต์แวร์บางชิ้น ตั้งแต่เดือนมีนาคม 2012 เป็นต้นไปHomebrew 0.9จะมีกลไกสำหรับการดำเนินการดังนี้: brew tap& พื้นที่เก็บข้อมูลรุ่น homebrew
ที่เก็บเวอร์ชันนั้นอาจมี backport ของเวอร์ชันที่เก่ากว่าสำหรับหลายสูตร (ส่วนใหญ่เป็นเพียงรายการขนาดใหญ่และมีชื่อเสียงเท่านั้น แต่แน่นอนว่าพวกเขาจะมีสูตรสำหรับ postgresql หลายสูตร)
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ประปา (ตรวจสอบด้วยbrew tapลบด้วยbrew untap homebrew/versions) สิ่งต่อไปนี้จะเทียบเท่า:
$ brew tap homebrew/versions
$ brew install postgresql8
ตราบใดที่สูตรเวอร์ชัน backported ยังคงทันสมัยอยู่วิธีนี้น่าจะเป็นวิธีที่ดีที่สุดในการจัดการกับซอฟต์แวร์รุ่นเก่า
วิธีการต่อไปนี้มีการระบุไว้ส่วนใหญ่เพื่อความสมบูรณ์ ทั้งคู่พยายามที่จะฟื้นคืนชีพสูตร Undead บางส่วนจากแหล่งเก็บข้อมูลชง เนื่องจากการอ้างอิงที่เปลี่ยนแปลงการเปลี่ยนแปลง API ในข้อมูลจำเพาะของสูตรหรือเพียงแค่การเปลี่ยนแปลงใน URL ดาวน์โหลดสิ่งต่าง ๆ อาจมีหรือไม่มีผล
เนื่องจากไดเรกทอรีสูตรทั้งหมดเป็นที่เก็บ git เราจึงสามารถติดตั้งเวอร์ชันเฉพาะโดยใช้คำสั่ง git ธรรมดา อย่างไรก็ตามเราจำเป็นต้องหาวิธีที่จะใช้ในการคอมมิชชันที่เวอร์ชันเก่าพร้อมใช้งาน
a) ครั้งประวัติศาสตร์
ระหว่างเดือนสิงหาคม 2011 ถึงตุลาคม 2014 , homebrew มีbrew versionsคำสั่งซึ่งพ่นเวอร์ชั่นที่มีทั้งหมดด้วยแฮช SHA ที่เกี่ยวข้อง ตั้งแต่เดือนตุลาคม 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
อย่างที่คุณเห็นมันให้คำแนะนำกับการใช้งาน Homebrew คายทุกเวอร์ชั่นที่สามารถค้นหาได้ด้วยการแก้ปัญหาภายในและแสดงวิธีดึงสูตรเก่า มาลองดูกัน.
# 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
ในตอนนี้เวอร์ชัน postgresql ที่เก่ากว่าได้รับการติดตั้งแล้วเราสามารถติดตั้งสูตรล่าสุดอีกครั้งเพื่อให้ที่เก็บของเราสะอาด:
$ git checkout -- Library/Formula/postgresql.rb
brew switch เป็นเพื่อนของคุณที่จะเปลี่ยนระหว่างเก่าและใหม่
b) ยุคก่อนประวัติศาสตร์
สำหรับความต้องการพิเศษเราอาจลองขุดของเราเองผ่าน repo homebrew
$ cd Library/Taps/homebrew/homebrew-core && git log -S'8.4.4' -- Formula/postgresql.rb
git log -Sรูปลักษณ์สำหรับการกระทำทั้งหมดที่สตริงถูกเพิ่มหรือลบออกในแฟ้ม'8.4.4' Library/Taps/homebrew/homebrew-core/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เป็นความมุ่งมั่นที่เราสนใจเนื่องจากการกระทำนี้ค่อนข้างเก่าเราจะพยายามปรับลดรุ่นการติดตั้งโฮมบรูว์ทั้งหมด (ด้วยวิธีนี้สูตร API รับประกันว่าจะถูกต้องมากหรือน้อย):
$ git checkout -b postgresql-8.4.4 fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422
$ brew install postgresql
$ git checkout master
$ git branch -d postgresql-8.4.4
คุณสามารถข้ามคำสั่งสุดท้ายเพื่อเก็บข้อมูลอ้างอิงในที่เก็บ git ของคุณ
One note: เมื่อตรวจสอบการกระทำที่เก่ากว่าคุณจะลดระดับการติดตั้ง homebrew ของคุณชั่วคราว ดังนั้นคุณควรระวังเนื่องจากคำสั่งบางคำใน homebrew อาจแตกต่างจากเวอร์ชันล่าสุด
ไม่ยากเกินไปและคุณสามารถอัปโหลดไปยังที่เก็บข้อมูลของคุณเอง เคยเป็นรุ่น Homebrewแต่ตอนนี้ถูกยกเลิกแล้ว
หากคุณต้องการเก็บรุ่นที่แน่นอนให้พูด postgresql ไปรอบ ๆ และหยุดการอัปเดตเมื่อคุณทำตามbrew update; brew upgradeขั้นตอนธรรมชาติคุณสามารถตรึงสูตรได้:
$ brew pin postgresql
สูตรที่ปักหมุดมีการระบุไว้ใน/usr/local/Library/PinnedKegs/และเมื่อคุณต้องการนำการเปลี่ยนแปลงและอัปเดตล่าสุดคุณสามารถเลิกตรึงอีกครั้ง:
$ brew unpin postgresql
git checkout fa992 -- Library/Formula/postgresql.rbนอกจากนี้คุณยังสามารถชำระเงินโดยใช้สูตร git revert HEAD Library/Formula/postgresql.rb && git checkout -- Library/Formula/postgresql.rbเมื่อคุณทำคุณสามารถยกเลิกการเปลี่ยนแปลงสูตรการคำนวณโดยใช้
brew updateสร้าง repo Git
cd $(brew --repository)/Library/Taps/homebrew/homebrew-coreแล้วคุณสามารถใช้และgit checkout 4cce79d -- Formula/go.rb HOMEBREW_NO_AUTO_UPDATE=1 brew install go
ขณะนี้ Homebrew / รุ่นเลิกใช้แล้ว Homebrew / core รองรับสูตรหลายเวอร์ชันด้วยรูปแบบการตั้งชื่อใหม่
หากต้องการติดตั้งรุ่นเฉพาะเช่น postgresql 9.5 คุณเพียงแค่เรียกใช้:
$ brew install postgresql@9.5
หากต้องการแสดงรายการเวอร์ชันที่มีให้รันการค้นหาด้วย @:
$ brew search postgresql@
==> Searching local taps...
postgresql@10.1 ✔ postgresql@9.4 postgresql@9.5 postgresql@9.6
fatal: Not a git repository (or any of the parent directories): .gitแต่เมื่อผมคัดลอกและวางได้รับ ฉันเพิ่งcdเข้าไปในไดเรกทอรีแทน (โดยไม่มี FORMULANAME.rb) จากนั้นทำgit checkout 120938
cd /usr/localก่อน
brew unlink FORMULANAME
brew versions <formula>ไม่ได้รับการสนับสนุนอีกต่อไป
brew link --force postgresql@9.5ได้ หากคุณมีเวอร์ชันที่ใหม่กว่าติดตั้งอยู่แล้วและต้องการให้รุ่นที่เก่ากว่าเป็นค่าเริ่มต้นคุณจะต้อง--overwriteมีรุ่นดังกล่าวด้วย
ตอนนี้มีวิธีที่ง่ายกว่ามากในการติดตั้งสูตรที่เก่ากว่าที่คุณเคยติดตั้งไว้ก่อนหน้านี้ เพียงใช้
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เพิ่งเปลี่ยน symlink มันเร็วมาก ดูเอกสารเพิ่มเติมเกี่ยวกับวิกิพีเดีย Homebrew ภายใต้คำสั่งภายนอก
อัปเดต: 1/15/2015

brew install <url>(อาจต้องbrew unlinkก่อนเช่นbrew unlink docker)brew switch docker 1.3.3brew switch docker 1.4.1จากส่วนสำคัญนี้
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 install <url> brew unlink <formulaname>มิฉะนั้นนี่เป็นวิธีที่ง่ายและกระชับที่สุด (จนถึงตอนนี้) เพื่อเปลี่ยนเป็นสูตรเฉพาะรุ่น
Rawปุ่มบนไฟล์อะไร!
brew log <formula>
ตามคำแนะนำของ @ halfcube สิ่งนี้ใช้ได้ดีจริงๆ:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rbpackage@version
git log master -- Formula/PACKAGENAME.rbเพื่อรับประวัติการกระทำตรวจสอบการกระทำที่ถูกต้องแล้วรันbrew install Formula/PACKAGENAME.rbเพื่อติดตั้ง
brew unlinkก่อนbrew installรุ่นอื่น
mxcl?
brew install https://github.com/Homebrew/homebrew-core/raw/afc10f17af8023906b87363a8340aeb62284329f/Formula/postgresql%409.6.rbแต่ได้รับข้อผิดพลาดอาจเกิดจากการ@ลงชื่อ: 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.ความคิดใด ๆ
ฉันได้ค้นพบทางเลือกที่ดีกว่าแล้วก็แก้ปัญหาที่ซับซ้อนอื่น
brew install https://raw.github.com/Homebrew/homebrew-versions/master/postgresql8.rb
สิ่งนี้จะดาวน์โหลดและติดตั้ง PostgreSQL 8.4.8
ฉันพบโซลูชันนี้โดยเริ่มต้นทำตามขั้นตอนของการค้นหา repo และแสดงความคิดเห็นใน repo
หลังจากการวิจัยเล็กน้อยพบว่ามีบางคนรวบรวมคอลเลคชั่นที่หายากที่จะชงด้วย
หากคุณกำลังมองหา MySQL 5.1.x ลองดูสิ
brew install https://raw.github.com/Homebrew/homebrew-versions/master/mysql51.rb
brew install https://github.com/Homebrew/homebrew-versions/blob/master/node06.rbดูเหมือนว่าจะล้มเหลวด้วยข้อผิดพลาดทางไวยากรณ์
rawURL
homebrew-versionsจะหายไปและทุกอย่างอยู่ในขณะนี้ดังนั้นกรณีทั่วไปคือcore สามารถพบได้โดยไปที่github.com/Homebrew/homebrew-core/commits/master/Formula/... brew install https://raw.github.com/Homebrew/homebrew-core/<COMMIT>/Formula/<FORMULA>.rbCOMMIT
คุณสามารถใช้กลยุทธ์ในการระบุสูตรและการกระทำเฉพาะในประวัติของสูตรที่ตรงกับรุ่นของแพ็คเกจที่คุณต้องการติดตั้ง
กดtบนแป้นพิมพ์เพื่อเปิดใช้งานตัวค้นหาไฟล์
ระบุสูตรที่มีลักษณะที่เกี่ยวข้องมากที่สุดอาจจะเป็น: Formula/mysql.rbนำคุณไปยังสถานที่ไฟล์ forumla: https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql.rb
ดูประวัติการแก้ไขโดยการคลิกที่Historyปุ่มซึ่งตั้งอยู่ที่https://github.com/Homebrew/homebrew-core/commits/master/Formula/mysql.rb หากคุณสนใจ MySQL 5.7.10 คุณอาจต้องการคลิกการแก้ไขล่าสุดก่อน 5.7.11 ซึ่งนำทางไปยัง GitHub ที่กระทำ:
หมายเหตุ: คุณอาจต้องดูประวัติการส่งข้อมูลในคอนโซลของคุณตามคำแนะนำของ GitHub หากประวัติการส่งไม่ได้โหลดในเบราว์เซอร์ของคุณ แทนที่การกระทำ SHA ด้านบนใน URL หากคุณสนใจที่จะเห็นการกระทำนั้นใน GitHub หรือข้ามไปขั้นตอนที่ 7 ด้านล่าง
คลิกปุ่ม "ดู" เพื่อดูแหล่งที่มาของไฟล์ mysql.rb หลังจากที่คอมมิชชันถูกนำไปใช้
จากนั้นคลิกปุ่ม "ดิบ" เพื่อดูแหล่งข้อมูลดิบ
คัดลอก URL หรือสร้าง URL ของคุณเองด้วยmysql.rbชื่อไฟล์เพื่อระบุสูตรของคุณและรุ่นเฉพาะของสูตรนั้น (ระบุโดย SHA ที่ยอมรับใน URL ด้านล่าง)
ติดตั้งด้วย $ brew install [URL from step 7]
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/c77882756a832ac1d87e7396c114158e5619016c/Formula/mysql.rb
หมายเหตุ: คำตอบนี้ได้รับการปรับปรุงเพื่อการลบเว็บไซต์ braumeister.org ใช้หลักการเดียวกันนี้ braumeister มีวิธีการที่ง่ายสำหรับผู้เริ่มต้นในการนำทางสูตรของสูตร
คำตอบอื่น ๆ ส่วนใหญ่ล้าสมัยไปแล้ว แต่น่าเสียดายที่ Homebrew ยังคงไม่ได้มีวิธีการในตัวของการติดตั้งรุ่นเก่าเว้นแต่รุ่นที่มีอยู่เป็นสูตรที่แยกจากกัน (เช่นpython@2, postgresql@9.4 ... )
โชคดีสำหรับสูตรอื่น ๆ มีวิธีที่ง่ายกว่าระเบียบที่ซับซ้อนที่เคยมีความจำเป็น นี่คือคำแนะนำแบบเต็ม:
ค้นหารุ่นที่ถูกต้องในบันทึก:
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›
นี่จะแสดงรายการการแฮ็ช เลือกอันที่เหมาะสม (ส่วนใหญ่ควรจะค่อนข้างชัดเจนและมักจะเป็นอันล่าสุด (เช่นบนสุด)
ค้นหา URL ที่มีสูตรอยู่ในที่เก็บอัปสตรีม:
brew info ‹formula› | grep ^From:
แก้ไข URL:
github.comด้วยraw.githubusercontent.comblob/masterด้วยแฮชการกระทำที่เราพบในขั้นตอนแรกติดตั้งรุ่นที่ต้องการโดยแทนที่masterURL ที่พบก่อนหน้านี้ด้วยแฮชการกระทำเช่น:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/‹hash›/Formula/‹formula›.rb
(ขั้นตอนสุดท้ายอาจทำให้ต้องรันbrew unlink ‹formula›ก่อน)
หากคุณคัดลอกแฮชคอมมิตที่คุณต้องการใช้คุณสามารถใช้บางอย่างเช่นตัวอย่างนี้เพื่อติดตั้งเวอร์ชันนั้นแทนที่ค่าและbashด้วยคอมมิชแฮชและสูตรที่คุณต้องการ
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
ตัวอย่างนี้คือการติดตั้งทุบตี 4.4.23 แทนการทุบตี 5 แต่ถ้าคุณดำเนินการbrew upgradeหลังจากนั้นแล้วทุบตี 5 brew pin bashจะได้รับการติดตั้งกว่าด้านบนถ้าคุณดำเนินการครั้งแรก คุณควรติดตั้งรุ่นล่าสุดด้วยbrew install bashจากนั้นbrew unlink bashจึงติดตั้งรุ่นเก่ากว่าที่คุณต้องการต่อสคริปต์ข้างต้นจากนั้นใช้brew switch bash 4.4.23การตั้งค่า symlink เป็นรุ่นที่เก่ากว่าแทน ตอนนี้การbrew upgradeอัปเดตของคุณจะไม่ส่งผลกระทบต่อ Bash ของคุณ คุณสามารถbrew switch bashรับรายการเวอร์ชันที่มีให้สลับได้
อีกวิธีหนึ่งในการบรรลุเป้าหมายเดียวกันคือ:
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.
สิ่งนี้จะสร้างformula@versionในการแตะที่คุณกำหนดเองซึ่งคุณสามารถติดตั้งได้ตามตัวอย่างด้านบน ข้อเสียคือคุณอาจต้องใช้brew unlink bashและbrew link bash@4.4.23เพื่อใช้เวอร์ชันเฉพาะของ Bash หรือสูตรอื่น ๆ
brew logให้พิเศษ-Fหรือ--grepตัวเลือกใด ๆ ที่ล้มเหลวสำหรับฉัน
brew logสมบูรณ์ยากจน ฉันไม่สามารถเขียนรุ่นใหม่ได้ในขณะนี้เพราะต้องมีการแยกวิเคราะห์ข้อความบันทึกการทำงานอย่างถูกต้องหรือทำงานgit logโดยตรงบนที่เก็บข้อมูลที่เกี่ยวข้อง และการเปลี่ยนแปลงนั้นดูเหมือนจะไม่พูดถึงการเปลี่ยนแปลงครั้งนี้ เกินกว่าจะน่ารำคาญ
External Commandอาจจะต้องดำเนินการภายในโครงสร้างของbrewการได้รับการgit logกรองประเภทนั้นกลับ docs.brew.sh/External-Commands
brew extractใช้งานที่ถูกต้องขอบคุณ!
ฉันใช้ Homebrew เพื่อกลับไปที่ Maven 2.2.1 ตั้งแต่brew install mavenMaven 3.0.3 ที่ติดตั้งง่าย
ก่อนอื่นคุณต้องปล่อยให้สัตว์ประหลาดอยู่ที่นั่น
$ Brew ยกเลิกการเชื่อมโยง Maven
ใช้คำสั่ง brew tap
$ brew แตะ homebrew / version การโคลนเป็น '/ usr / local / Library / Taps / homebrew-version' ... รีโมต: การนับวัตถุ: 590 เสร็จแล้ว รีโมต: บีบอัดออบเจ็กต์: 100% (265/265) เสร็จแล้ว ระยะไกล: ทั้งหมด 590 (เดลต้า 362), นำมาใช้ใหม่ 549 (เดลต้า 325) รับวัตถุ: 100% (590/590), 117.49 KiB | 79 KiB / s เสร็จแล้ว แก้ไขเดลตา: 100% (362/362) เสร็จแล้ว แตะ 50 สูตร
ตอนนี้คุณสามารถติดตั้งสูตร maven2:
$ brew ติดตั้ง maven2 ==> กำลังดาวน์โหลด 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 ไฟล์, 3.1M, สร้างขึ้นใน 6 วินาที
$ mvn - รุ่น Apache Maven 2.2.1 (r801777; 2009-08-06 12: 16: 01-0700) เวอร์ชั่น Java: 1.6.0_37 Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home ภาษาเริ่มต้น: en_US, การเข้ารหัสแพลตฟอร์ม: MacRoman ชื่อระบบปฏิบัติการ: "mac os x" เวอร์ชั่น: "10.7.4" arch: "x86_64" ตระกูล: "mac"
แก้ไข:
คุณสามารถbrew switch maven 2.2.1เปลี่ยนไปใช้เวอร์ชันอื่นได้
แก้ไข: โครงการ Apache Maven จัดระเบียบ repo ใหม่ อัปเดตคำตอบสำหรับบัญชีสำหรับการเปลี่ยนแปลงนี้
ตามเวิร์กโฟลว์ที่อธิบายโดย@tschundeeeและการอัปเดตของ @ Debilski 1ฉันดำเนินการตามขั้นตอนอัตโนมัติและเพิ่มการล้างข้อมูลในสคริปต์นี้
ดาวน์โหลดได้brewv <formula_name> <wanted_version>ใส่ไว้ในเส้นทางของคุณและ สำหรับ OP เฉพาะมันจะเป็น:
cd path/to/downloaded/script/
./brewv postgresql 8.4.4
:)
คำตอบที่ได้รับการอัปเดตตั้งแต่นั้นเพิ่มไปยังสิ่งที่ @ lance-pollard โพสต์แล้วเป็นคำตอบที่ใช้งานได้
วิธีติดตั้งสูตรเฉพาะรุ่น (สูตรที่ใช้ในตัวอย่างนี้คือterraform):
git log master -- Formula/terraform.rbถ้าคุณโคลน repo ภายในเครื่องbrew install https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rbแต่น่าเสียดายที่ Homebrew ยังคงไม่ได้มีความชัดเจนทาง builtin ของการติดตั้งรุ่นเก่า
โชคดีสำหรับสูตรส่วนใหญ่มีวิธีที่ง่ายกว่าระเบียบที่ซับซ้อนที่เคยมีความจำเป็น นี่คือคำแนะนำทั้งหมดที่ใช้bashเป็นตัวอย่าง:
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.
สิ่งนี้จะสร้างformula@versionในการแตะที่คุณกำหนดเองซึ่งคุณสามารถติดตั้งได้ตามตัวอย่างด้านบน สิ่งสำคัญที่ควรทราบคือbrew unlink bashถ้าคุณเคยติดตั้งสูตรเริ่มต้น / รุ่นล่าสุดไว้ก่อนหน้านี้และbrew link bash@4.4.23เพื่อใช้เวอร์ชัน Bash เฉพาะของคุณ (หรือสูตรอื่น ๆ ที่คุณติดตั้งล่าสุดและรุ่นที่เก่ากว่า)
ข้อเสียที่เป็นไปได้ของวิธีนี้คือคุณไม่สามารถสลับไปมาระหว่างเวอร์ชันต่าง ๆ ได้ง่าย ๆ เพราะอ้างอิงbrewจาก "สูตรที่แตกต่าง"
หากคุณต้องการใช้งานbrew switch $FORMULA $VERSIONคุณควรใช้วิธีการถัดไป
ตัวอย่างนี้แสดงการติดตั้ง bash ที่เก่ากว่า 4.4.23 ซึ่งเป็นตัวอย่างที่มีประโยชน์นับตั้งแต่ bashสูตรติดตั้ง bash 5 ในปัจจุบัน
brew install bashbrew unlink bashbrew switch bash 4.4.23เพื่อตั้งค่า symlink ให้กับเวอร์ชันของคุณหากคุณดำเนินการbrew upgradeหลังจากติดตั้งเวอร์ชันที่เก่ากว่าโดยไม่ต้องติดตั้งล่าสุดก่อนล่าสุดจะได้รับการติดตั้งซึ่งอุดตันเวอร์ชันเก่าของคุณเว้นแต่คุณจะดำเนินการครั้งแรกbrew pin bashรุ่นเก่าของคุณจนกว่าคุณจะดำเนินการครั้งแรก
ขั้นตอนที่นี่หลีกเลี่ยงการปักหมุดเนื่องจากง่ายต่อการลืมและคุณอาจปักหมุดเป็นรุ่นที่ไม่ปลอดภัยในอนาคต (ดู Shellshock / etc) ด้วยการตั้งค่านี้brew upgradeจะไม่ส่งผลกระทบต่อเวอร์ชัน Bash ของคุณและคุณสามารถเรียกใช้ได้เสมอbrew switch bashเพื่อรับรายการเวอร์ชันที่มีให้สลับใช้
คัดลอกและวางและแก้ไขexportบรรทัดจากข้อมูลโค้ดด้านล่างเพื่ออัปเดตด้วยชื่อรุ่นและสูตรที่คุณต้องการจากนั้นคัดลอกและวางส่วนที่เหลือตามที่เป็นและจะใช้ตัวแปรเหล่านั้นเพื่อสร้างเวทย์มนตร์
# 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
เมื่อคุณแน่ใจว่ามีสูตรอยู่ในสูตรแล้วคุณสามารถใช้ด้านล่าง:
# 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}')
เมื่อคุณส่งออกแฮชการคอมมิตที่คุณต้องการใช้แล้วคุณสามารถใช้สิ่งนี้เพื่อติดตั้งแพคเกจเวอร์ชันนั้นได้
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 ของคุณหรือตั้งเป็นเชลล์เริ่มต้นของคุณ
ในเวอร์ชันล่าสุดของ homebrew (0.9.5 ตามที่เขียนนี้) จะมีสูตรเฉพาะสำหรับรุ่นของถัง homebrew ที่คุณต้องการติดตั้ง ตัวอย่าง:
$ brew search mongodb
mongodb mongodb24 mongodb26
จากนั้นทำbrew install mongodb26เหมือนปกติ
brew unlink mongodb && brew link mongodb26ในกรณีที่คุณได้ติดตั้งแล้วรุ่นล่าสุดให้แน่ใจว่าจะยกเลิกการเชื่อมโยงรุ่นล่าสุดและเชื่อมโยงรุ่นที่ต้องการ:
ปัญหาhomebrew/versionsคือใครบางคนจะต้องมีซอฟต์แวร์เฉพาะรุ่นนั้นอยู่ในรายการในที่เก็บเพื่อให้คุณสามารถใช้งานได้ นอกจากนี้เนื่องจากbrew versionsไม่ได้รับการสนับสนุนอีกต่อไปจึงจำเป็นต้องใช้โซลูชันอื่น สำหรับวิธีแก้ปัญหาที่บ่งชี้ว่าใช้brew switchงานจะทำงานได้ก็ต่อเมื่อคุณยังไม่ได้ทำbrew cleanupเนื่องจากจำเป็นต้องมีรุ่นในคอมพิวเตอร์ของคุณ
ผมมีปัญหาเกี่ยวกับความต้องการที่จะติดตั้งเฉพาะรุ่นเก่าที่ไม่ได้ระบุไว้ในdocker-machine homebrew/versionsฉันแก้ไขโดยใช้ด้านล่างซึ่งควรทำงานกับซอฟต์แวร์ที่ติดตั้งมา ตัวอย่างด้านล่างจะใช้docker-machineเป็นแพ็คเกจที่ฉันต้องการลดระดับจากรุ่น 0.5.0 เป็น 0.4.1
ไปที่Formulaไดเรกทอรีhomebrew ของคุณ คุณสามารถตรวจสอบนี้โดยการเรียกใช้
brew info [any package name]ยกตัวอย่างเช่นbrew info docker-machineให้ฉันบรรทัดที่แสดงให้เห็นว่าฉันเส้นทาง /usr/local/Cellar/docker-machine/0.5.0- สิ่งนี้บอกฉันว่าในเครื่องของฉันโฮมบรูว์ติดตั้งที่/usr/localและFormula
ไดเรกทอรีของฉันจะอยู่ที่ค่าเริ่มต้นที่/usr/local/Library/Formula
ค้นหาไฟล์สูตรเฉพาะ (.rb) สำหรับแพ็คเกจของคุณ
เนื่องจากฉันต้องการปรับลดรุ่นdocker-machineฉันสามารถดูdocker-machine.rbไฟล์ได้
รับประวัติรุ่นสำหรับไฟล์สูตรนี้ git log docker-machine.rbเข้าสู่ นี่จะแสดงรายการประวัติการส่งที่สมบูรณ์สำหรับไฟล์นี้ คุณจะเห็นผลลัพธ์เช่นนี้:
...มากกว่า
กระทำ 20c7abc13d2edd67c8c1d30c407bd5e31229cacc
ผู้แต่ง: BrewTestBot
วันที่: พฤหัสบดี 5 พ.ย. 16:14:18 2558 +0000
เครื่องจักรนักเทียบท่า: อัปเดต 0.5.0 ขวด
กระทำ 8f615708184884e501bf5c16482c95eff6aea637
ผู้แต่ง: Vincent Lesierse
วันที่: อ. 27 ต.ค. 22:25:30 น. +0100
เครื่องเทียบท่า 0.5.0
อัพเดทเครื่องเทียบท่าเป็น 0.5.0
ปิด # 45403
ลงชื่อออกโดย: Dominyk Tiller
กระทำ 5970e1af9b13dcbeffd281ae57c9ab90316ba423
ผู้แต่ง: BrewTestBot
วันที่: จันทร์ 21 ก.ย. 14:04:04 2558 +0100
เครื่องจักรนักเทียบท่า: อัปเดต 0.4.1 ขวด
กระทำ 18fcbd36d22fa0c19406d699308fafb44e4c8dcd
ผู้แต่ง: BrewTestBot
วันที่: วันอาทิตย์ที่ 16 ส.ค. 09:05:56 น. +0100
เครื่องจักรนักเทียบท่า: อัปเดต 0.4.1 ขวด
...มากกว่า
ส่วนที่ยุ่งยากคือการค้นหาความมุ่งมั่นล่าสุดสำหรับรุ่นที่คุณต้องการ ในข้างต้นผมสามารถบอกล่าสุด 0.4.1 commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423รุ่นได้รับการมุ่งมั่นกับเรื่องนี้กระทำแท็ก: ความมุ่งมั่นข้างต้นจุดเริ่มต้นใช้รุ่น 0.5.0 (รายการบันทึก git มีการระบุไว้ตั้งแต่วันที่ล่าสุดถึงวันแรกสุด)
รับไฟล์สูตรเวอร์ชันก่อนหน้า การใช้แท็ก commit จากขั้นตอน # 3 (คุณสามารถใช้ 6 chars แรก) คุณสามารถรับไฟล์สูตรเวอร์ชันเก่าโดยใช้สิ่งต่อไปนี้:
git checkout 5970e1 docker-machine.rb
ถอนการติดตั้งเวอร์ชันแพ็คเกจปัจจุบันของคุณ
เพียงรันคำสั่งชงปกติเพื่อถอนการติดตั้งแพ็คเกจปัจจุบันของคุณ
อดีตbrew uninstall docker-machine
ติดตั้งแพคเกจรุ่นเก่า
ตอนนี้คุณสามารถเรียกใช้คำสั่งติดตั้งชงปกติและจะติดตั้งสูตรที่คุณชำระเงินแล้ว อดีต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รับเวอร์ชันล่าสุดและทำให้มันเป็นแบบนั้นต่อไป
git log --grep 0.4.1 docker-machine.rbเพื่อหาสิ่งที่กระทำที่ตรงกับรุ่นที่คุณต้องการได้อย่างรวดเร็วเพิ่มพารามิเตอร์
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula
cairoชงด้วยวิธีนี้ คำตอบ @ sealocal แสดงให้เห็นมากขึ้นด้วยเหตุผลบางอย่าง
สถานการณ์ของฉัน: postgresqlอัพเกรดจาก 11 เป็น 12 โดยไม่ตั้งใจ ฉันต้องการเก็บ 11
brew services stop postgresql
brew install postgresql@11
brew link postgresql@11 --force
postgresเป็นpostgres@11:cd /usr/local/var
ls -lh
mv postgresql@11 postgresql@11-fresh-backup
mv postgres postgresql@11
brew services start postgresql@11
หากคุณมีข้อผิดพลาดใด ๆ ให้ตรวจสอบ/usr/local/var/log/postgresql@11.log(สังเกตเห็น @ 11)
brew postgresql-upgrade-database) คำตอบนี้ไม่เป็นประโยชน์สำหรับสูตรอื่นเกือบทั้งหมด
brew postgresql-upgrade-databaseคือดีสำหรับการอัพเกรด คำตอบของฉันเกี่ยวกับการใช้รุ่น Postgres รุ่นเก่ากว่า เพียงแค่สลับไบนารีจะไม่ทำงาน
nvmFYI ฉันโชคดีที่ใช้เทคนิคนี้สำหรับ LTS รุ่นเก่า อย่างน้อยเวลาที่เขียน v10 & v12 ควรมีอยู่เช่นbrew install node@12 formulae.brew.sh/formula/node
cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/
หรือ
git clone git@github.com:Homebrew/homebrew-core.git
git log master -- Formula/flyway.rb
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/793abfa325531415184e1549836c982b39e89299/Formula/flyway.rb
brew install Formula/flyway.rbจากhomebrew-coreไดเรกทอรี มันใช้งานได้โดยไม่ต้องใช้ที่raw.github..อยู่
ฉันได้ลองวิธีการแก้ปัญหาส่วนใหญ่ที่นี่และพวกเขาล้าสมัย ฉันต้องรวมแนวคิดบางอย่างจากที่นี่กับงานของฉันเอง ด้วยเหตุนี้ฉันจึงสร้างสคริปต์ขึ้นมาเพื่อช่วยฉันยกของหนักซึ่งคุณสามารถหาได้จากที่นี่
การใช้งาน:
brewv.sh formula_name desired_version
มันสามารถทำได้ง่ายมากสำหรับการชงเวอร์ชันล่าสุด
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)
สิ่งเหล่านี้ไม่ได้ผลกับกรณีของฉัน (Python) ดังนั้นฉันจะเพิ่ม 2 เซนต์ของฉัน:
cd `brew --prefix`
git log Library/Formula/python.rb
ผลลัพธ์มีดังนี้:
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. ...
ฉันต้องการเวอร์ชัน2.7.11ดังนั้นแฮชของฉันคือcf5da0547cd261f79d69e7ff62fdfbd2c2d646e9(หรือcf5da05สั้น ๆ ) ต่อไปฉันจะตรวจสอบเวอร์ชั่นนั้นและติดตั้งสูตรpython:
git checkout cf5da05
brew install python
ในที่สุดทำความสะอาด:
git checkout master
HOMEBREW_NO_AUTO_UPDATEและอ่านgithub.com/Homebrew/brew/issues/1188
cd brew --prefix /Homebrewและgit log Library/Taps/homebrew/homebrew-core/Formula/python.rb
/Library/Tapsถูกเพิกเฉย
HOMEBREW_NO_AUTO_UPDATEอย่าลืมเกี่ยวกับ ใช่อย่าลืมเกี่ยวกับสิ่งที่คุณต้องการจนกระทั่งหลังจากที่คุณค้นพบว่าคุณต้องการมัน xD
HOMEBREW_NO_INSTALL_CLEANUPนี่ไม่ใช่สิ่งที่คุณต้องจำ
หากคุณไม่พบรุ่นของคุณด้วย brew search <formula>คุณคุณสามารถลองดูบันทึกการกระทำเพื่อหาสูตรที่ต้องการ:
นี่คือตัวอย่างสำหรับการติดตั้ง nginx รุ่นเก่าผ่านทาง Brew:
ดู nginx: update 1.6.3 bottle eba75b9a1a474b9fc4df30bd0a32637fa31ec049
จากตรงนั้นเราสามารถติดตั้ง1.6.3กับ sha และ url git ดิบ:
brew install https://raw.githubusercontent.com/Homebrew/homebrew/eba75b9a1a474b9fc4df30bd0a32637fa31ec049/Library/Formula/nginx.rb
ปัจจุบันวิธีการติดตั้งสูตรสูตรเก่าได้เลิกใช้แล้วในปัจจุบัน brew edit [formula]ดังนั้นจึงดูเหมือนว่าเราจะต้องใช้ เช่นบอกว่าเราต้องการติดตั้ง62.1รุ่นicu4c(จำเป็นเช่นสำหรับpostgresql 10.5) จากนั้นคุณจะต้อง
> brew edit icu4c
# drops you to editor
ที่นี่คุณจะต้องปรับเปลี่ยนurl, versionและsha256(อาจจะยังmirror) เพื่อสอดคล้องกัน62.1สตริง
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"
จากนั้นรันbrew reinstall icu4cเพื่อดาวน์โหลด62.1เวอร์ชันสุดท้าย
sha256 ? ในกรณีของฉันhttps://storage.googleapis.com/dart-archive/channels/stable/release/1.24.3/sdk/dartsdk-macos-x64-release.zip
อัปเดตบน Library / Formula / postgresql.rb บรรทัด 8 ถึง
http://ftp2.uk.postgresql.org/sites/ftp.postgresql.org/source/v8.4.6/postgresql-8.4.6.tar.bz2
และ MD5 ในบรรทัดที่ 9 ถึง
fcc3daaf2292fa6bf1185ec45e512db6
บันทึกและออก.
brew install postgres
initdb /usr/local/var/postgres
ในขั้นตอนนี้คุณอาจเผชิญกับpostgresql could not create shared memory segmentข้อผิดพลาดเพื่อหลีก/etc/sysctl.confเลี่ยงการอัปเดต เช่นนี้:
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
หวังว่าจะช่วย :)
ฉันเพิ่งคัดลอกรุ่นเก่าของ elasticsearch ลงใน/usr/local/Cellar/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
แค่นั้นแหละ. อาจเป็นประโยชน์กับทุกคน
ฉันตัดสินใจต่อต้านการตัดสินใจที่ดีกว่าของฉันเพื่อสร้างสูตรสำหรับ Maven 3.1.1 ซึ่งhomebrew/versionsไม่มี เพื่อทำสิ่งนี้:
homebrew/versionsกับ gitub$(brew --prefix)/Library/Tapsไปยังสำเนาการทำงานในท้องถิ่นของส้อมของฉัน ฉันจะเรียกสิ่งนี้my-homebrew/versionsว่าmy-homebrew/versions/<formula>ผมทดสอบโดยการระบุสูตรเป็นhomebrew/versionsสูตรใหม่ของฉันเย้.
สำหรับรุ่นที่ไม่ได้อยู่ในสูตรชงเริ่มต้นคุณสามารถสร้างการแตะของคุณเองด้วยเครื่องมือจากhttps://github.com/buildtools-version-taps/homebrew-versions-tap-tool
brew tap-new user/repoแล้วแล้วbrew extract --version='Major.minor' FORMULA user/repo brew install FORMULA@Major.minor
ฉันสร้างเครื่องมือเพื่อลดขั้นตอนที่กำหนดไว้ในคำตอบนี้
ในการค้นหาแพ็คเกจที่pkgมีเวอร์ชันa.b.cให้รัน:
$ brew-install-specific pkg@a.b.c
รายการนี้จะคอมมิตในpkgสูตรโฮมบรูว์ที่กล่าวถึงเวอร์ชันที่ระบุพร้อมกับ URL ของ GitHub
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:
ตรวจสอบการมอบหมายจาก URL ที่กำหนดและป้อนดัชนีของการกระทำที่เลือก
Select index: 2
Run:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/<COMMIT-SHA>/Formula/pkg.rb
คัดลอกและเรียกใช้คำสั่งที่กำหนดเพื่อติดตั้ง
postgresqlเป็นสิ่งที่แปลกเพราะมันมีเวอร์ชั่นแยกต่างหากใน Homebrew ณ จุดหนึ่งสิ่งที่คล้ายกันbashอาจเป็นตัวอย่างที่ดีกว่าเนื่องจากมันเปลี่ยนจาก 4.x เป็น 5.x ภายในชื่อสูตรเดียวกัน ดูstackoverflow.com/a/55764594/3794873