ฉันจะติดตั้งสูตรเฉพาะในโฮมบรูว์ได้อย่างไร ตัวอย่างเช่น 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.3
brew 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.rb
package@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
ดูเหมือนว่าจะล้มเหลวด้วยข้อผิดพลาดทางไวยากรณ์
raw
URL
homebrew-versions
จะหายไปและทุกอย่างอยู่ในขณะนี้ดังนั้นกรณีทั่วไปคือcore
สามารถพบได้โดยไปที่github.com/Homebrew/homebrew-core/commits/master/Formula/... brew install https://raw.github.com/Homebrew/homebrew-core/<COMMIT>/Formula/<FORMULA>.rb
COMMIT
คุณสามารถใช้กลยุทธ์ในการระบุสูตรและการกระทำเฉพาะในประวัติของสูตรที่ตรงกับรุ่นของแพ็คเกจที่คุณต้องการติดตั้ง
กด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.com
blob/master
ด้วยแฮชการกระทำที่เราพบในขั้นตอนแรกติดตั้งรุ่นที่ต้องการโดยแทนที่master
URL ที่พบก่อนหน้านี้ด้วยแฮชการกระทำเช่น:
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 maven
Maven 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 bash
brew unlink bash
brew 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 รุ่นเก่ากว่า เพียงแค่สลับไบนารีจะไม่ทำงาน
nvm
FYI ฉันโชคดีที่ใช้เทคนิคนี้สำหรับ 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