Câu hỏi Homebrew cài đặt phiên bản công thức cụ thể?


Làm thế nào để cài đặt một phiên bản cụ thể của một công thức trong homebrew? Ví dụ, postgresql-8.4.4 thay vì 9.0 mới nhất.


1713
2017-10-21 12:58


gốc


Làm theo các hướng dẫn này: effectif.com/mac-os-x/…. - Alex Sharp
kiểm tra stackoverflow.com/a/3949908/3256989 - ultraon
Trong những năm qua, câu trả lời đã phát triển. Kể từ năm 2018 sử dụng nodejs làm ví dụ: brew search node@ sau đó brew install node@8 - MarkHu


Các câu trả lời:


(Tôi đã chỉnh sửa lại câu trả lời của mình để cung cấp quy trình làm việc toàn diện hơn để cài đặt / sử dụng các phiên bản phần mềm cũ hơn với homebrew. Vui lòng thêm ghi chú nếu bạn thấy phiên bản cũ tốt hơn.)

Hãy bắt đầu với trường hợp đơn giản nhất:

1) Kiểm tra xem phiên bản đã được cài đặt chưa (nhưng chưa được kích hoạt)

Khi homebrew cài đặt một công thức mới, nó đặt nó trong một thư mục được phiên bản như /usr/local/Cellar/postgresql/9.3.1. Chỉ các liên kết tượng trưng đến thư mục này mới được cài đặt trên toàn cầu. Về nguyên tắc, điều này làm cho nó khá dễ dàng để chuyển đổi giữa hai phiên bản cài đặt. (*)

Nếu bạn đã sử dụng homebrew lâu hơn và không bao giờ loại bỏ các phiên bản cũ hơn (sử dụng, ví dụ brew cleanup), rất có thể là một số phiên bản cũ hơn của chương trình của bạn có thể vẫn còn tồn tại. Nếu bạn chỉ muốn kích hoạt phiên bản trước đó, brew switch là cách dễ nhất để làm điều này.

Kiểm tra với brew info postgresql (hoặc là brew switch postgresql <TAB>) phiên bản cũ hơn đã được cài đặt chưa:

$ 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

Chúng tôi thấy rằng một số phiên bản cũ hơn đã được cài đặt. Chúng tôi có thể kích hoạt nó bằng cách sử dụng 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

Hãy kiểm tra kỹ những gì được kích hoạt:

$ 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

Lưu ý rằng ngôi sao * đã chuyển sang phiên bản mới được kích hoạt

(*) Xin lưu ý rằng brew switch chỉ hoạt động miễn là tất cả các phụ thuộc của phiên bản cũ vẫn còn xung quanh. Trong một số trường hợp, việc xây dựng lại phiên bản cũ có thể trở nên cần thiết. Do đó, sử dụng brew switch chủ yếu là hữu ích khi người ta muốn chuyển đổi giữa hai phiên bản không quá xa nhau.

2) Kiểm tra xem phiên bản có sẵn dưới dạng một lần nhấn hay không

Đặc biệt đối với các dự án phần mềm lớn hơn, rất có thể là có một nhu cầu đủ cao cho một số phiên bản chính (có khả năng không tương thích với API) của một phần mềm nhất định. Kể từ tháng 3 năm 2012, Homebrew 0.9 cung cấp một cơ chế cho việc này: brew tap & các phiên bản homebrew kho.

Kho lưu trữ phiên bản đó có thể bao gồm backports của các phiên bản cũ hơn cho một số công thức. (Chủ yếu chỉ là những cái lớn và nổi tiếng, nhưng tất nhiên chúng cũng sẽ có một số công thức cho postgresql.)

brew search postgresql sẽ cho bạn thấy nơi để tìm:

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

Chúng ta có thể chỉ cần cài đặt nó bằng cách gõ

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

Lưu ý rằng điều này đã tự động khai thác các homebrew/versions chạm vào. (Kiểm tra với brew tap, xóa bằng brew untap homebrew/versions.) Sau đây sẽ là tương đương:

$ brew tap homebrew/versions
$ brew install postgresql8

Miễn là các công thức phiên bản được cập nhật luôn được cập nhật, phương pháp này có lẽ là cách tốt nhất để xử lý phần mềm cũ hơn.

3) Thử một số công thức từ quá khứ

Các cách tiếp cận sau được liệt kê chủ yếu để hoàn thành. Cả hai cố gắng để hồi sinh một số công thức undead từ kho brew. Do thay đổi phụ thuộc, thay đổi API trong thông số công thức hoặc chỉ đơn giản là thay đổi trong URL tải xuống, mọi thứ có thể hoặc có thể không hoạt động.

Vì toàn bộ thư mục công thức là một kho lưu trữ git, người ta có thể cài đặt các phiên bản cụ thể bằng cách sử dụng các lệnh git đơn giản. Tuy nhiên, chúng ta cần phải tìm cách để có được một cam kết mà phiên bản cũ đã có sẵn.

a) thời gian lịch sử

Giữa Tháng 8 năm 2011 và tháng 10 năm 2014, homebrew đã có brew versions lệnh, mà spat ra tất cả các phiên bản có sẵn với băm SHA tương ứng của họ. Tính đến tháng 10 năm 2014, bạn phải làm brew tap homebrew/boneyard trước khi bạn có thể sử dụng nó. Như tên của vòi nước cho thấy, bạn có lẽ chỉ nên làm điều này như là một phương sách cuối cùng.

Ví dụ.

$ 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

Như bạn có thể thấy, nó khuyên không nên sử dụng nó. Homebrew phun ra tất cả các phiên bản nó có thể tìm thấy với heuristic nội bộ của nó và cho bạn thấy một cách để lấy các công thức cũ. Hãy thử nó.

# 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

Bây giờ phiên bản postgresql cũ hơn đã được cài đặt, chúng ta có thể cài đặt lại công thức mới nhất để giữ kho lưu trữ của chúng ta luôn sạch sẽ:

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

brew switch là bạn của bạn thay đổi giữa cái cũ và cái mới.

b) thời tiền sử

Đối với nhu cầu đặc biệt, chúng tôi cũng có thể thử đào của chúng tôi thông qua repo homebrew.

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

git log -S tìm kiếm tất cả các cam kết trong đó chuỗi '8.4.4' đã được thêm hoặc xóa trong tệp Library/Formula/postgresql.rb. Chúng tôi nhận được hai cam kết như là một kết quả.

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

Chắc chắn, fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422 là cam kết mà chúng tôi quan tâm. Vì cam kết này khá cũ nên chúng tôi sẽ cố gắng hạ cấp cài đặt homebrew hoàn chỉnh (theo cách đó, API công thức ít nhiều được bảo đảm hợp lệ):

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

Bạn có thể bỏ qua lệnh cuối cùng để giữ tham chiếu trong kho git của bạn.

Một lưu ý: Khi kiểm tra cam kết cũ hơn, bạn tạm thời hạ cấp cài đặt homebrew của mình. Vì vậy, bạn nên cẩn thận vì một số lệnh trong homebrew có thể khác với phiên bản mới nhất.

4) Viết công thức theo cách thủ công

Nó không quá khó và sau đó bạn có thể tải nó lên Homebrew-phiên bản.

A.) Tiền thưởng: Ghim

Nếu bạn muốn giữ một phiên bản nhất định, hãy nói postgresql, xung quanh và ngăn chặn nó được cập nhật khi bạn làm điều tự nhiên brew update; brew upgrade thủ tục, bạn có thể ghim công thức:

$ brew pin postgresql

Công thức được ghim được liệt kê trong /usr/local/Library/PinnedKegs/ và một khi bạn muốn mang những thay đổi và cập nhật mới nhất, bạn có thể bỏ ghim nó một lần nữa:

$ brew unpin postgresql

2120
2017-11-11 20:04



Bạn cũng có thể chỉ cần thanh toán công thức bằng cách sử dụng git checkout fa992 -- Library/Formula/postgresql.rb. Khi bạn hoàn tất, bạn có thể hoàn tác các thay đổi đối với công thức sử dụng git revert HEAD Library/Formula/postgresql.rb && git checkout -- Library/Formula/postgresql.rb. - mipadi
Lưu ý: khi cài đặt Homebrew tươi, bạn có thể cần brew update để thiết lập repo Git của nó. - Bluu
dường như brew versions Không làm việc nữa? - jrmgx
Điều này là vô cùng khó khăn. - Dogweather
Tính đến hôm nay, thư mục chính xác để thực thi các lệnh thủ công đối với kho lưu trữ là cd $(brew --repository)/Library/Taps/homebrew/homebrew-core, sau đó bạn có thể sử dụng git checkout 4cce79d -- Formula/go.rb và HOMEBREW_NO_AUTO_UPDATE=1 brew install go. - Calin


Quy trình làm việc đơn giản

Giờ đây, Homebrew / phiên bản đã không được chấp nhận, Homebrew / core hỗ trợ nhiều phiên bản công thức với định dạng đặt tên mới.

Để cài đặt phiên bản cụ thể, ví dụ: postgresql 9.5 bạn chỉ cần chạy:

$ brew install postgresql@9.5

Để liệt kê các phiên bản có sẵn, hãy tìm kiếm bằng @:

$ brew search postgresql@
==> Searching local taps...
postgresql@10.1      postgresql@9.4        postgresql@9.5        postgresql@9.6

633
2018-03-22 23:29



Có vẻ như đơn giản nhất, nhưng khi tôi sao chép và dán, hãy fatal: Not a git repository (or any of the parent directories): .git. tôi chỉ cd vào thư mục thay vào đó (không có FORMULANAME.rb), sau đó thực hiện git checkout 120938 - Ramon Tayag
@RamonTayag, tôi đã có cùng một vấn đề. Chắc chắn rằng cd /usr/local Đầu tiên. - gjb
Tôi thấy bạn cần một bước 3.5: brew unlink FORMULANAME - Intentss
brew versions <formula> không được hỗ trợ nữa. - Emmanuel Joubaud
@ dem7w2, bạn có thể tạo các liên kết với brew link --force postgresql@9.5. Nếu bạn đã cài đặt phiên bản mới hơn và muốn phiên bản cũ hơn là phiên bản mặc định của mình, bạn sẽ cần --overwrite trong đó nữa. - Ryan


Có một cách dễ dàng hơn để cài đặt phiên bản cũ hơn của công thức mà bạn đã cài đặt trước đó. Đơn giản chỉ cần sử dụng

brew switch [formula] [version]

Ví dụ, tôi thay thế thường xuyên giữa Node.js 0.4.12 và 0.6.5:

brew switch node 0.4.12
brew switch node 0.6.5

brew switch chỉ thay đổi các liên kết tượng trưng, ​​nó rất nhanh. Xem thêm tài liệu về Homebrew Wiki dưới Lệnh bên ngoài.


425
2017-12-14 16:33



Tôi đã thử điều này, và nó succeded với thông điệp "33 liên kết tạo ra cho /usr/local/Cellar/node/0.4.7", nhưng khi tôi chạy nút sau đó, nó không thành công với thông báo "-bash: / usr / local / bin / nút: Không có tệp hoặc thư mục như vậy ". Bất kỳ ý tưởng gì couldlve đi sai? Lưu ý: tôi đã tải xuống 0.4.7 theo cách thủ công và đặt nó vào thư mục hầm, vì tôi không biết cách tải xuống anyhting nhưng phiên bản nút mới nhất bằng cách sử dụng brew. - Soroush Hakami
Tôi hy vọng bạn biết có cái gì đó gọi là 'nvm' [github.com/creationix/nvm]! - Gaurav Agarwal
wow ... mong muốn điều này đã được chọn là câu trả lời đúng! +1 - Larry
Tôi dựa vào phiên bản gói đã được cài đặt. Nếu bạn đang thiếu phiên bản, bạn vẫn cần áp dụng câu trả lời đã chọn. - Nic Strong
@NicStrong Thật vậy, brew switch dựa trên phiên bản tìm kiếm sau khi đã được cài đặt. Thật không may, mặc dù, câu trả lời hiện đang được chấp nhận là vô cùng vô ích, phức tạp và lỗi thời. Ở đó  là  tốt hơn câu trả lời dưới đây nhiều hữu ích hơn. - GDP2


Cập nhật: 1/15/2015

  • Tìm lịch sử cam kết của phần mềm và phiên bản mong muốn. ví dụ. Tôi cần chuyển từ phiên bản dock 1.4.1 sang 1.3.3: https://github.com/Homebrew/homebrew-core/commits/master/Formula/docker.rb
  • Xem tệp bằng nút này: enter image description here 
  • Nhấp vào nút Raw: List item
  • Sao chép URL (url docker.rb trong ví dụ này) từ thanh địa chỉ
  • brew install <url> (có thể có brew unlink trước tiên, ví dụ: brew unlink docker)
  • brew switch docker 1.3.3
  • Chuyển về docker 1.4.1 brew switch docker 1.4.1

Từ đây ý chính

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

183
2017-07-19 23:42



Đây là điều duy nhất làm việc cho tôi. Khá ngớ ngẩn khi một người quản lý gói yêu cầu rất nhiều thứ chỉ để cài đặt một phiên bản trước. Có lẽ tôi bị hư hỏng bởi RVM ruby ​​và bundler, nhưng quá trình này thực sự cần phải được sắp xếp hợp lý và trừu tượng. - poetmountain
Khi tôi cố gắng chuyển sang phiên bản trước của Ansible, tôi phải hủy liên kết công thức trước khi cài đặt phiên bản trước như được chỉ ra. Vì vậy, trước khi thực hiện brew install <url>, brew unlink <formulaname>. Nếu không, đây là cách đơn giản và ngắn gọn nhất (cho đến nay) để chuyển sang phiên bản cụ thể của công thức. - bigsweater
Làm việc hoàn hảo. - isHristov
Bạn nhấn Raw trên tập tin nào ?! - Iulian Onofrei
Nó hoạt động, nhưng đôi khi bạn phải tải xuống tệp .rb thô và thay đổi tổng kiểm tra để tránh Homebrew phàn nàn về SHA không khớp. GitHub dường như có một phần lớn cây repo được phát hiện lại vào năm 2017, và việc kiểm tra của họ thay đổi. (Trên thực tế nó gây ra nhiều nhầm lẫn trong đội của tôi khi Bazel bắt đầu thất bại trên băm không phù hợp cuối tháng bảy) - Chang Qian


Tôi đã khám phá ra một giải pháp thay thế tốt hơn sau đó là các giải pháp phức tạp khác.

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

Điều này sẽ tải xuống và cài đặt PostgreSQL 8.4.8


Tôi tìm thấy giải pháp này bằng cách bắt đầu làm theo các bước tìm kiếm repo và bình luận trong repo.

Sau một nghiên cứu nhỏ, một người nào đó có một bộ sưu tập các hình ảnh hiếm hoi để pha trộn.


Nếu bạn đang tìm kiếm MySQL 5.1.x, hãy thử.

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

93
2017-09-19 11:55



hmm, brew install https://github.com/Homebrew/homebrew-versions/blob/master/node06.rb dường như không thành công với lỗi cú pháp. - Brian Armstrong
Hoạt động hoàn hảo! giải pháp tốt nhất của tất cả được liệt kê ở đây. - Nikita Volkov
@BrianArmstrong Bạn đang đề cập đến phiên bản được định dạng html của tệp, trong khi bạn cần phiên bản thô. - Nikita Volkov
Đừng quên rawtrong URL - Faber
homebrew-versions đã biến mất và mọi thứ đều bật core bây giờ, vì vậy trường hợp chung là: brew install https://raw.github.com/Homebrew/homebrew-core/<COMMIT>/Formula/<FORMULA>.rb. COMMIT có thể được tìm thấy bằng cách vào github.com/Homebrew/homebrew-core/commits/master/Formula/…. - PJSCopeland


Dọc theo dòng gợi ý của @ halfcube, điều này hoạt động thực sự tốt:

  1. Tìm thư viện bạn đang tìm kiếm https://github.com/Homebrew/homebrew-core/tree/master/Formula
  2. Nhấp vào nó: https://github.com/Homebrew/homebrew-core/blob/master/Formula/postgresql.rb
  3. Nhấp vào nút "lịch sử" để xem các cam kết cũ: https://github.com/Homebrew/homebrew-core/commits/master/Formula/postgresql.rb
  4. Nhấp vào cái bạn muốn: "postgresql: update version to 8.4.4", https://github.com/Homebrew/homebrew-core/blob/fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422/Library/Formula/postgresql.rb
  5. Nhấp vào liên kết "thô": https://raw.githubusercontent.com/Homebrew/homebrew-core/fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422/Library/Formula/postgresql.rb
  6. brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422/Library/Formula/postgresql.rb

51
2017-10-16 22:12



Đây là cách dễ nhất để cài đặt phiên bản cần thiết của gói nếu nó không có sẵn trong repo lõi package@version - avy
Nếu bạn không thể sử dụng giao diện web, bạn có thể sao chép repo và thực hiện nó cục bộ: sử dụng git log master -- Formula/PACKAGENAME.rb để có được lịch sử cam kết, hãy kiểm tra cam kết chính xác và sau đó chạy brew install Formula/PACKAGENAME.rb để cài đặt nó. - chipbuster
tôi nghĩ bạn cần brew unlink trước brew install của phiên bản khác. - studgeek
Ai đây mxcl? - PJSCopeland
tôi làm việc này brew install https://github.com/Homebrew/homebrew-core/raw/afc10f17af8023906b87363a8340aeb62284329f/Formula/postgresql%409.6.rb nhưng gặp lỗi, có thể là do @ ký tên: 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. Ý tưởng nào? - msciwoj


Bạn có thể sử dụng chiến lược xác định công thức và cam kết cụ thể trong lịch sử của công thức khớp với phiên bản của gói bạn muốn cài đặt.

  1. Đi đến https://github.com/Homebrew/homebrew-core

  2. nhấn t trên bàn phím để kích hoạt trình tìm kiếm tệp.

  3. Xác định một công thức có vẻ phù hợp nhất, có lẽ: Formula/mysql.rb, đưa bạn đến một vị trí tập tin forumla: https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql.rb.

  4. Xem lịch sử sửa đổi bằng cách nhấp vào History nút, được đặt tại https://github.com/Homebrew/homebrew-core/commits/master/Formula/mysql.rb. Nếu bạn quan tâm đến MySQL 5.7.10, bạn có thể muốn nhấp vào bản sửa đổi mới nhất trước 5.7.11, điều hướng đến một cam kết GitHub:

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

LƯU Ý: Bạn có thể phải xem lịch sử cam kết trong bảng điều khiển của bạn theo gợi ý của GitHub nếu lịch sử cam kết không tải trong trình duyệt của bạn. Thay thế cam kết SHA ở trên trong URL nếu bạn quan tâm đến việc thấy cam kết đó trên GitHub. Hoặc, chuyển sang bước 7, bên dưới.

  1. Nhấp vào nút "Xem" để xem nguồn cho tệp mysql.rb sau khi cam kết được áp dụng.

  2. Sau đó nhấp vào nút "Sống" để xem nguồn thô.

  3. Sao chép URL. Ngoài ra, hãy tự xây dựng URL bằng mysql.rb tên tệp để xác định công thức của bạn và phiên bản cụ thể của công thức đó (được xác định bằng SHA ủy quyền trong URL bên dưới).

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

  4. Cài đặt nó với $ brew install [URL from step 7]

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

LƯU Ý: Câu trả lời này đã được cập nhật để giải thích việc xóa trang web braumeister.org. Cùng một nguyên tắc được áp dụng, braumeister đã chỉ đơn giản là cung cấp một cách thân thiện với người mới bắt đầu để điều hướng các phiên bản công thức.


50
2018-02-24 05:38



Thật không may điều này là quá xa trong danh sách các câu trả lời nhưng là giải pháp tốt nhất. Đây là những gì tôi sử dụng, ngoại trừ thay vì sử dụng braumeister tôi chỉ cần đi đến trang Homebrew GitHub của công thức mà tôi muốn (ví dụ: cho gcc đi đến github.com/Homebrew/homebrew/blob/master/Library/Formula/gcc.rb) và sau đó tôi đi qua "Lịch sử" của tập tin cho đến khi tôi nhận được phiên bản mà tôi muốn. - Guy Kogus
Điều này chắc chắn là giải pháp tốt nhất trong trường hợp của tôi - cài đặt một phiên bản cũ của Watchman mà không yêu cầu Xcode 8.1 - Zachary Keener
câu trả lời tuyệt vời, đã làm việc cho tôi - domoarigato
Đây thực sự là cách dễ nhất để cài đặt phiên bản cũ hơn. Câu trả lời chính xác - Martin M
Điều này làm việc cho tôi nhưng tôi đã phải bỏ liên kết phần mềm đầu tiên. - Brett Wagner


Tôi chỉ sử dụng Homebrew để trở lại Maven 2.2.1 kể từ khi đơn giản brew install maven đã cài đặt Maven 3.0.3.

Đầu tiên bạn phải rời khỏi maven dir

$ brew unlink maven

Sử dụng lệnh tap brew

$ brew tap homebrew / phiên bản
Nhân bản thành '/ usr / local / Library / Taps / homebrew-versions' ...
remote: Đếm các đối tượng: 590, xong.
từ xa: Nén đối tượng: 100% (265/265), xong.
từ xa: Tổng 590 (delta 362), được sử dụng lại 549 (delta 325)
Đối tượng nhận: 100% (590/590), 117,49 KiB | 79 KiB / s, đã xong.
Giải quyết vùng đồng bằng: 100% (362/362), đã hoàn thành.
Đã công bố 50 công thức

Bây giờ bạn có thể cài đặt công thức maven2:

$ brew install maven2
==> Tải xuống 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 tệp, 3.1M, được tạo trong 6 giây
$ mvn --version
Apache Maven 2.2.1 (r801777; 2009-08-06 12: 16: 01-0700)
Phiên bản Java: 1.6.0_37
Trang chủ Java: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Ngôn ngữ mặc định: en_, mã hóa nền tảng: MacRoman
Tên hệ điều hành: phiên bản "mac os x": vòm "10.7.4": "x86_64" Gia đình: "mac"

Chỉnh sửa: Bạn cũng có thể brew switch maven 2.2.1 để chuyển sang một phiên bản khác.

Chỉnh sửa: Dự án Apache Maven đã tổ chức lại repo của họ. Đã cập nhật câu trả lời này cho tài khoản cho thay đổi này.


27
2018-02-12 20:35



Đây chính là điều tôi muốn cảm ơn! - micmcg
Thật vui khi bạn thấy nó hữu ích. - Cameron Goodale
Điều này rất hữu ích. Lưu ý, nền tảng apache đã tổ chức lại các tệp nhị phân maven thành các thư mục cụ thể (1,2,3) phiên bản, vì vậy bạn sẽ cần phải chỉnh sửa maven.rb cho 2.2.1 và có lẽ những người khác để phù hợp với cấu trúc mới. Ví dụ, nhị phân cho 2.2.1 được đặt tại: apache.org/dist/maven/maven-2/2.2.1/binaries/…. Lưu ý "maven-2 / 2.2.1 /" trong url. - Charles Forcey
@CharlesForcey Bạn là chính xác về repo maven dist đang được tổ chức lại. Tôi sẽ cập nhật các câu trả lời để sử dụng brew tap để sử dụng công thức maven2 cũ hơn. Cảm ơn bạn đã bình luận. - Cameron Goodale


Dựa trên quy trình công việc được mô tả bởi @tschundeee và Bản cập nhật của @ Debilski 1, Tôi đã tự động hóa quy trình và thêm vào dọn dẹp tập lệnh này.

Tải xuống, đặt nó vào con đường của bạn và brewv <formula_name> <wanted_version>. Đối với OP cụ thể, nó sẽ là:

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

:)


21
2017-07-09 14:06



tuyệt vời. tại sao không phải là trong brew? - Adrian
@mattisg tại sao tôi chỉ có thể upvote này một lần ?? - James B
<3 bạn! cám ơn vì cái này! - Felipe Lima
Không tìm thấy nữa :( - D-32


Trên phiên bản mới nhất của homebrew (0.9.5 như của bài viết này) sẽ có một công thức cụ thể cho phiên bản của homebrew keg bạn muốn cài đặt. Thí dụ:

$ brew search mongodb
mongodb    mongodb24  mongodb26

Sau đó, chỉ cần làm brew install mongodb26 giống bình thường.

Trong trường hợp bạn đã cài đặt phiên bản mới nhất, hãy đảm bảo hủy liên kết phiên bản mới nhất và liên kết phiên bản mong muốn: brew unlink mongodb && brew link mongodb26.


11
2018-04-30 22:01



Trong khi điều này có thể trả lời câu hỏi, nó sẽ là thích hợp hơn để bao gồm các phần thiết yếu của câu trả lời tại đây và cung cấp liên kết để tham khảo. - Erik
@Erik Cảm ơn, cố định. - Alex Sharp