Homebrew는 특정 버전의 수식을 설치합니까?


2195

Homebrew에 특정 버전의 수식을 어떻게 설치합니까? 예를 들어, 최신 9.0 대신 postgresql-8.4.4입니다.


2
postgresqlHomebrew에 별도의 버전이 있었기 때문에 이상한 bash수식입니다. 같은 수식 이름 내에서 4.x에서 5.x로 이동했기 때문에 더 좋은 예가 될 수 있습니다. 참조 stackoverflow.com/a/55764594/3794873
dragon788


2
나는 모든 답을 읽었다. 2020 년 이었고 그렇게하는 쉬운 방법이나 공식적인 명령이 없습니다
oluckyman

답변:


2556

TLDR : brew install postgresql@8.4.4 자세한 내용은 아래 답변 을 참조하십시오.


* ( 홈 브루와 함께 이전 소프트웨어 버전을 설치 / 사용하기위한보다 철저한 워크 플로를 제공하기 위해 답변을 다시 편집했습니다. 이전 버전을 더 잘 발견 한 경우 언제든지 메모를 추가하십시오. )

가장 간단한 경우부터 시작하겠습니다.

1) 버전이 이미 설치되어 있는지 확인 (활성화되지는 않음)

homebrew는 새로운 공식을 설치할 때와 같은 버전의 디렉토리에 넣습니다 /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두 버전 사이를 너무 멀지 않게 전환하려는 경우 사용 이 주로 유용합니다.

2) 버전이 탭으로 제공되는지 확인

특히 대규모 소프트웨어 프로젝트의 경우 특정 소프트웨어의 여러 (잠재적으로 API 호환되지 않는) 주요 버전에 대한 수요가 충분할 것입니다. 2012 년 3 월 현재, Homebrew 0.9 는이를위한 메커니즘을 제공합니다 : brew tap& homebrew 버전 저장소.

해당 버전 저장소에는 여러 공식에 대한 이전 버전의 백 포트가 포함될 수 있습니다. (대부분 크고 유명한 것들이지만 물론 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

백 포트 된 버전 공식이 최신 상태를 유지하는 한이 방법은 구형 소프트웨어를 처리하는 가장 좋은 방법 일 것입니다.

3) 과거의 수식을 사용해보십시오.

다음과 같은 접근 방식은 대부분 완전성에 대한 것입니다. 둘 다 추출 저장소에서 언데드 수식을 부활 시키려고합니다. 종속성 변경, 수식 사양의 API 변경 또는 다운로드 URL의 변경으로 인해 문제가 발생하거나 작동하지 않을 수 있습니다.

전체 공식 디렉토리는 git 저장소이므로 일반 git 명령을 사용하여 특정 버전을 설치할 수 있습니다. 그러나 이전 버전을 사용할 수있는 커밋을 수행 할 수있는 방법을 찾아야합니다.

a) 역사적인 시대

20118 월과 2014 년 10 월 사이 에 homebrew는 brew versions각각의 SHA 해시로 사용 가능한 모든 버전을 생성 하는 명령을 받았습니다. 2014 년 10 월 기준으로 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) 선사 시대

특별한 필요를 위해, 우리는 자체 양조장을 통해 우리 자신의 파기를 시도 할 수 있습니다.

$ 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 저장소에 참조를 유지하기 위해 마지막 명령을 건너 뛸 수 있습니다.

참고 사항 : 이전 커밋을 체크 아웃하면 homebrew 설치를 일시적으로 다운 그레이드합니다. 따라서 homebrew의 일부 명령이 최신 버전과 다를 수 있으므로주의해야합니다.

4) 수동으로 수식 작성

너무 어렵지 않고 자신의 저장소에 업로드 할 수 있습니다. 수하는 데 사용 브루-버전 ,하지만 지금은 중단된다.

A.) 보너스 : 피닝

postgresql과 같은 특정 버전을 유지하고 자연스러운 brew update; brew upgrade절차 를 수행 할 때 업데이트되지 않도록하려면 수식을 고정 하십시오.

$ brew pin postgresql

고정 된 수식이 나열되며 /usr/local/Library/PinnedKegs/최신 변경 사항 및 업데이트를 가져 오려면 다시 고정 해제 할 수 있습니다 .

$ brew unpin postgresql

18
를 사용하여 공식을 체크 아웃 할 수도 있습니다 git checkout fa992 -- Library/Formula/postgresql.rb. 완료되면을 사용하여 수식 변경을 취소 할 수 있습니다 git revert HEAD Library/Formula/postgresql.rb && git checkout -- Library/Formula/postgresql.rb.
mipadi

18
참고 : Homebrew를 새로 설치할 때는 brew updateGit 저장소를 설정 해야 할 수도 있습니다 .
Bluu

556
이것은 엄청나게 어렵다.
Dogweather

29
오늘부터 저장소에 대해 수동 명령을 실행하는 올바른 디렉토리는입니다 cd $(brew --repository)/Library/Taps/homebrew/homebrew-core. 그러면 git checkout 4cce79d -- Formula/go.rb및 을 사용할 수 있습니다 HOMEBREW_NO_AUTO_UPDATE=1 brew install go.
Calin

12
Homebrew / versions는 더 이상 사용되지 않습니다
Ezekiel Victor

775

간단한 워크 플로우

Homebrew / versions는 더 이상 사용되지 않으므로 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

8
가장 간단한 것처럼 보이지만 복사하여 붙여 넣을 때을 얻으십시오 fatal: Not a git repository (or any of the parent directories): .git. 나는 단지 cd(FORMULANAME.rb없이) 디렉토리로 들어간 다음git checkout 120938
Ramon Tayag

8
@RamonTayag, 나는 같은 문제가있었습니다. cd /usr/local먼저 확인하십시오 .
gjb

13
: 난 당신이 단계 3.5이 필요 찾을 수brew unlink FORMULANAME
Intentss

37
brew versions <formula>더 이상 지원되지 않습니다.
ejoubaud

4
@ dem7w2에서을 사용하여 심볼릭 링크를 만들 수 있습니다 brew link --force postgresql@9.5. 최신 버전이 이미 설치되어 있고 이전 버전을 기본값으로 사용하려면이 버전도 필요합니다 --overwrite.
Ryan

457

이제 이전에 설치 한 이전 버전의 수식을 훨씬 쉽게 설치할 수 있습니다. 간단히 사용

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에 대한 추가 설명서를 참조하십시오 .


2
나는 이것을 시도하고 "/usr/local/Cellar/node/0.4.7"에 대해 생성 된 "33 개의 링크"메시지로 성공했지만 나중에 노드를 실행하면 "-bash : / usr / local / 메시지와 함께 실패합니다. bin / node : 해당 파일 또는 디렉토리가 없습니다 ". 무엇이 잘못되었을 수 있는지 아십니까? 참고 : brew를 사용하여 최신 노드 버전을 다운로드하는 방법을 모르기 때문에 수동으로 0.4.7을 다운로드하여 저장고 디렉토리에 넣습니다.
Soroush Hakami

6
나는 'nvm'[ github.com/creationix/nvm] 이라는 것을 알고 있기를 바랍니다 .
Gaurav Agarwal

40
이미 설치되어있는 패키지 버전에 의존합니다. 버전이 누락 된 경우에도 선택한 답변을 적용해야합니다.
Nic Strong

1
특히 노드 버전 mgmt의 경우 nvm이 더 나은 솔루션입니다 (imho).
cweekly

5
@NicStrong 실제로, brew switch이미 설치되어있는 인기 버전에 의존합니다. 그러나 불행히도 현재 인정되는 답변은 매우 도움이되지 않고 복잡하고 구식입니다. 있습니다 더 나은 있는 아래 답변 훨씬 더 도움이.
GDP2

250

업데이트 : 2015 년 1 월 5 일

  • 원하는 소프트웨어 및 버전의 커밋 히스토리를 찾으십시오. 예를 들어 docker 버전 1.4.1에서 1.3.3으로 전환해야합니다 : https://github.com/Homebrew/homebrew-core/commits/master/Formula/docker.rb
  • 이 버튼으로 파일을 봅니다. 여기에 이미지 설명을 입력하십시오
  • Raw 버튼을 클릭하십시오 : 아이템 목록
  • 주소 표시 줄에서 URL (이 예에서는 docker.rb url)을 복사하십시오.
  • brew install <url>(해야 brew unlink먼저 예를 brew unlink docker)
  • brew switch docker 1.3.3
  • 도커 1.4.1로 다시 전환 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

46
이것이 나를 위해 일한 유일한 것입니다. 패키지 관리자가 이전 버전을 설치하기 위해 많은 노력을 기울여야한다는 것은 매우 어리석은 일입니다. 아마도 루비 RVM과 번 들러에 의해 망가 졌을 지 모르지만이 프로세스는 실제로 간소화되고 추상화되어야합니다.
시인 마운틴

3
이전 버전의 Ansible로 이동하려고 할 때 표시된대로 이전 버전을 설치하기 전에 공식을 연결 해제해야했습니다. 하기 전에 그래서 brew install <url>, brew unlink <formulaname>. 그렇지 않으면 특정 버전의 수식으로 전환하는 가장 간단하고 간결한 방법입니다 (지금까지).
bigsweater 2016 년

Raw어떤 파일 에서 버튼을 누르 셨나요?!
Iulian Onofrei

1
작동하지만 때로는 원시 .rb 파일을 다운로드하고 체크섬을 변경하여 Homebrew가 SHA 불일치에 대해 불평하지 않도록하십시오. GitHub는 2017 년 언젠가 리포지토리 트리가 상당 부분 재구성 된 것으로 보이며 체크섬이 변경되었습니다. (Bazel 해시 불일치 지난 7 월 실패 시작했을 때 사실은 우리 팀에 많은 혼란을 야기)
장 키안

6
주소 :brew log <formula>
kangkyu

128

@halfcube의 제안을 따라, 이것은 실제로 잘 작동합니다.

  1. https://github.com/Homebrew/homebrew-core/tree/master/Formula 에서 원하는 라이브러리를 찾으십시오.
  2. 그것을 클릭하십시오 : https://github.com/Homebrew/homebrew-core/blob/master/Formula/postgresql.rb
  3. "기록"버튼을 클릭하여 이전 커밋을 확인하십시오. https://github.com/Homebrew/homebrew-core/commits/master/Formula/postgresql.rb
  4. "postgresql : 버전을 8.4.4로 업데이트", https://github.com/Homebrew/homebrew-core/blob/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb
  5. "원시"링크를 클릭하십시오 : https://raw.githubusercontent.com/Homebrew/homebrew-core/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb
  6. brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb

8
코어 package@version
리포지토리

7
웹 인터페이스를 사용할 수없는 경우 리포지토리를 복제하여 로컬로 수행 할 수 있습니다. git log master -- Formula/PACKAGENAME.rb커밋 기록을 가져오고 올바른 커밋을 확인한 다음 실행 brew install Formula/PACKAGENAME.rb하여 설치하십시오.
chipbuster 2018 년

7
난 당신이 필요가 있다고 생각 brew unlink하기 전에 brew install다른 버전의.
studgeek

누구 mxcl시죠?
PJSCopeland

1
나는 이것을 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.어떤 아이디어?
msciwoj

109

다른 복잡한 솔루션보다 더 나은 대안 솔루션을 발견했습니다.

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

1
흠, brew install https://github.com/Homebrew/homebrew-versions/blob/master/node06.rb구문 오류로 실패한 것 같습니다.
Brian Armstrong

6
@BrianArmstrong 파일의 html 형식 버전을 참조하고 있지만 원시 버전 이 필요합니다 .
Nikita Volkov

github.com/Homebrew/homebrew/commits/master/Library/Formula/…로 이동 하여 버전을 선택하고 코드를 찾아보고 원시 URL을 사용하십시오.
jpillora 2016 년

1
rawURL을 잊지 마십시오
Faber

9
homebrew-versions사라졌고 모든 것이 core현재 진행 중이므로 일반적인 경우는 다음과 같습니다 brew install https://raw.github.com/Homebrew/homebrew-core/<COMMIT>/Formula/<FORMULA>.rb. github.com/Homebrew/homebrew-core/commits/master/Formula/…COMMIT 로 이동하여 찾을 수 있습니다 .
PJSCopeland

78

설치하려는 패키지 버전과 일치하는 수식 기록에서 수식 및 특정 커밋을 식별하는 전략을 사용할 수 있습니다.

  1. https://github.com/Homebrew/homebrew-core로 이동

  2. 를 눌러 t키보드에서 파일 찾기를 활성화합니다.

  3. 아마도 다음과 같이 가장 관련성이 높은 수식을 식별하십시오 Formula/mysql.rb: . 포럼 포럼 파일 위치 : https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql.rb

  4. https://github.com/Homebrew/homebrew-core/commits/master/Formula/mysql.rb 에있는 History단추 를 클릭하여 개정 히스토리를보십시오 . MySQL 5.7.10에 관심이 있다면 5.7.11 이전의 최신 개정판을 클릭하여 GitHub 커밋으로 이동할 수 있습니다.

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

참고 : 커밋 기록이 브라우저에로드되지 않으면 GitHub의 제안에 따라 콘솔에서 커밋 기록을 확인해야 할 수도 있습니다. GitHub에서 커밋을 확인하려면 URL에서 위의 커밋 SHA를 바꾸십시오. 또는 아래의 7 단계로 건너 뜁니다.

  1. 커밋이 적용된 후 mysql.rb 파일의 소스를 보려면 "보기"버튼을 클릭하십시오.

  2. 그런 다음 "Raw"버튼을 클릭하여 원시 소스를보십시오.

  3. URL을 복사하십시오. 또는 mysql.rb파일 이름으로 URL을 직접 작성 하여 수식 및 해당 수식의 특정 버전을 식별하십시오 (아래 URL에서 commmit SHA로 식별).

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

  4. 함께 설치 $ brew install [URL from step 7]

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

참고 :이 답변은 braumeister.org 웹 사이트 제거를 설명하기 위해 업데이트되었습니다. 같은 원칙이 적용되어, braumeister는 초보자에게 친숙한 공식 버전 탐색 방법을 제공했습니다.


13
불행히도 이것은 답변 목록에서 너무 아래에 있지만 최상의 솔루션입니다. 이것은 braumeister를 사용하는 대신 내가 원하는 공식의 Homebrew GitHub 페이지로 이동합니다 (예 : gcc의 경우 github.com/Homebrew/homebrew/blob/master/Library/Formula/gcc.rb 로 이동 하십시오) ) 그런 다음 원하는 버전에 도달 할 때까지 파일의 "기록"을 살펴 봅니다.
Guy Kogus

3
이것은 필자의 경우에 최고의 솔루션이었습니다. Xcode 8.1이 필요없는 이전 버전의 Watchman 설치
Zachary Keener

3
이전 버전을 설치하는 가장 쉬운 방법입니다. 큰 답변
Martin

4
이것은 나를 위해 일했지만 소프트웨어를 먼저 연결 해제해야합니다.
Brett Wagner

3
이것은 저에게 가장 간단한 해결책이었습니다. 허용 된 답변이 오래되어서 더 높아야합니다.
Tim W

35

다른 답변의 대부분은 이제 더 이상 사용되지 않습니다. 해당 버전은 별도의 수식으로 존재하지 않는 불행하게도 브루 여전히 오래된 버전을 설치하는 내장 방법이없는 (예를 들어 python@2, postgresql@9.4 ...).

운 좋게도 다른 공식의 경우 이전에 필요했던 복잡한 혼란보다 훨씬 쉬운 방법이 있습니다. 전체 지침은 다음과 같습니다.

  1. 로그에서 올바른 버전을 검색하십시오.

    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›
    

    커밋 해시 목록이 표시됩니다. 적절한 것을 선택하십시오 (주로 꽤 분명해야하며 일반적으로 가장 최근의 것).

  2. 업스트림 저장소에서 수식이있는 URL을 찾으십시오.

    brew info ‹formula› | grep ^From:
    
  3. URL을 수정하십시오.

    1. 교체 github.comraw.githubusercontent.com
    2. blob/master첫 번째 단계에서 찾은 커밋 해시로 바꿉니다 .
  4. 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

이 예제는 bash 5 대신 bash 4.4.23을 설치하는 것입니다.하지만 brew upgrade이후에 수행하면 bash 5는 처음 실행하지 않는 한 맨 위에 설치됩니다 brew pin bash. 대신 처음에 최신을 설치해야합니다, 고정없이 부드럽게 만들려면 brew install bash다음, brew unlink bash위의 스크립트에 따라 원하는 이전 버전을 설치 한 후, 다음 사용 brew switch bash 4.4.23이전 버전으로 심볼릭 링크를 설정합니다. 이제 brew upgradeBash 버전에 영향을 미치지 않아야합니다. 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배쉬 또는 다른 식의 특정 버전을 사용하기 위해.


1
그들은 구문을 변경하여 brew log여분의 옵션 -F이나 --grep옵션이 나에게 실패했습니다.
dragon788

1
@ dragon788 Bloody hell, Homebrew 2가 완전히 고장났습니다 brew log. git log 메시지를 올바르게 구문 분석하거나 git log해당 저장소 에서 직접 실행해야하기 때문에 새 버전을 작성하는 데 어려움을 겪을 수 없습니다 . 그리고 변경 로그에는 이러한 주요 변경 사항이 언급되지 않은 것 같습니다. 성가신 이상.
Konrad Rudolph

그들이 행동의 변화가 버그라는 것을 인정하지 않는 한, 그러한 유형의 필터링을 되 찾으 려면 External Command구조 내에서 작동해야 할 것 같습니다 . docs.brew.sh/External-Commandsbrewgit log
dragon788

이것은 올바른 brew extract사용법 을 찾을 수있는 유일한 장소였습니다 . 감사합니다!
dognotdog

맞춤 local0 만 탭하여 답변의 첫 부분을 만드는 것이 좋습니다. 실제로 가장 좋은 솔루션처럼 보입니다.
studgeek

29

방금 Homebrew를 사용하여 간단한 brew install maven설치된 Maven 3.0.3 이후 Maven 2.2.1로 돌아갔습니다 .

먼저 maven dir을 거기에 두어야합니다.

$ brew unlink maven

추출 탭 명령 사용

$ brew tap 사제 / 버전
'/ usr / local / Library / Taps / homebrew-versions'로 복제 중 ...
원격 : 개체 수 : 590, 완료.
원격 : 객체 압축 : 100 % (265/265) 완료.
원격 : 총 590 (델타 362), 재사용 549 (델타 325)
받는 물건 : 100 % (590/590), 117.49 KiB | 79 KiB / s 완료
델타 해결 : 100 % (362/362) 완료
탭 50 공식

이제 maven2 공식을 설치할 수 있습니다 :

brew install 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)
자바 버전 : 1.6.0_37
Java 홈 : /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
기본 로캘 : en_US, 플랫폼 인코딩 : MacRoman
OS 이름 : "mac os x"버전 : "10.7.4"아치 : "x86_64"제품군 : "mac" 

편집 :brew switch maven 2.2.1 다른 버전으로 전환 할 수도 있습니다 .

편집 : Apache Maven 프로젝트가 저장소를 재구성했습니다. 이 변경 사항을 반영하여이 답변을 업데이트했습니다.


이것은 매우 도움이되었습니다. 아파치 재단은 maven 바이너리를 버전 (1,2,3) 특정 디렉토리로 재구성 했으므로 2.2.1에 대한 maven.rb를 편집하고 새로운 구조에 맞게 다른 것을 편집해야합니다. 예를 들어 2.2.1의 바이너리는 apache.org/dist/maven/maven-2/2.2.1/binaries/…에 있습니다. URL의 "maven-2 / 2.2.1 /"에 유의하십시오.
Charles Forcey 2013

@CharlesForcey 당신은 maven dist repo가 ​​재구성되는 것에 대해 맞습니다. 이전 maven2 공식을 사용하려면 추출 탭을 사용하도록 답변을 업데이트합니다. 의견 주셔서 감사합니다.
Cameron Goodale

21

@tschundeee@Debilski의 업데이트 1 에서 설명한 워크 플로를 기반 으로이 스크립트 에서 절차를 자동화하고 정리를 추가했습니다 .

그것을 다운로드하고 경로에 넣으십시오 brewv <formula_name> <wanted_version>. 특정 OP의 경우 다음과 같습니다.

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

:)


4
대단해 왜 이것이 양조에 있지 않습니까?
Adrian

3
더 이상 찾을 수 없습니다 :(
D-32

18

그 이후로 업데이트 된 답변은 @ lance-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리포지토리를 로컬로 복제 한 경우 github 기록에서 커밋 버전을 가져옵니다 .
  3. 커밋 버전의 공식으로 원시 자식 URL을 가져옵니다. 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

3 단계에서 원시 자식 URL을 얻으려면 "Raw"버튼을 누르고 브라우저로 이동하는 URL을 복사하면됩니다.
브라이언 토핑

15

공식적인 방법 ( https://github.com/Homebrew/brew/issues/6028에 )

불행히도 Homebrew는 여전히 분명 하지 않습니다 이전 버전을 설치하는 방법 .

운 좋게도 대부분의 수식에는 이전에 필요했던 복잡한 혼란보다 훨씬 쉬운 방법이 있습니다. 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공식이 현재 bash 5를 설치하기 때문에 유용한 예인 이전 bash 4.4.23 설치를 보여줍니다 .

  • 먼저 최신 버전의 수식을 brew install bash
  • 그때 brew unlink bash
  • 그런 다음 아래 스 니펫에 따라 원하는 이전 버전을 설치하십시오.
  • 마지막으로 brew switch bash 4.4.23버전에 대한 심볼릭 링크를 설정하는 데 사용 하십시오.

brew upgrade최신 버전을 먼저 설치하지 않고 이전 버전을 설치 한 후 수행 한 경우 , 처음 실행하지 않는 한 최신 버전이 이전 버전을 방해하는 설치됩니다.brew pin bash .

이 단계는 잊어 버리기 쉽고 나중에 고정되지 않는 버전에 고정 될 수 있으므로 고정을 피하십시오 (Shellshock / etc 참조). 이 설정을 사용하면 brew upgradeBash 버전에 영향을 미치지 않아야하며 언제든지 실행할 수 있습니다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에 넣거나 기본 쉘로 설정하십시오.


12

최신 버전의 homebrew (이 글을 쓰는 시점에서 0.9.5)에는 설치하려는 homebrew keg 버전에 대한 특정 레시피가 있습니다. 예:

$ brew search mongodb
mongodb    mongodb24  mongodb26

그런 다음 그냥 brew install mongodb26평소처럼하십시오.

최신 버전을 이미 설치 한 경우 최신 버전을 연결 해제하고 원하는 버전을 연결하십시오 brew unlink mongodb && brew link mongodb26.


이 질문에 대답 수 있지만, 바람직 할 것이다 여기에 대한 대답의 본질적인 부분을 포함하고 참조 할 수 있도록 링크를 제공합니다.
Erik

1
@Erik 감사합니다.
Alex Sharp

11

문제 homebrew/versions는 누군가 사용할 수 있으려면 저장소에 특정 버전의 소프트웨어가 나열되어 있어야한다는 것입니다. 또한 brew versions더 이상 지원되지 않으므로 다른 솔루션이 필요합니다. 사용을 나타내는 솔루션의 brew switch경우 brew cleanup버전이 컴퓨터에 있어야하므로 아직 사용하지 않은 경우에만 작동 합니다.

docker-machine나열되지 않은 특정 이전 버전을 설치하려는 데 문제가있었습니다 homebrew/versions. 아래를 사용 하여이 문제를 해결했으며 양조 설치 소프트웨어에서도 작동합니다. 아래 예제 docker-machine는 버전 0.5.0에서 0.4.1로 다운 그레이드하려는 패키지로 사용 됩니다.

  1. homebrew Formula디렉토리로 이동하십시오 .
    를 실행하여이를 확인할 수 있습니다 brew info [any package name]. 예를 들어, brew info docker-machine나에게 경로를 보여주는 선을 제공합니다 /usr/local/Cellar/docker-machine/0.5.0. 이것은 내 컴퓨터에서 homebrew가 설치 /usr/local되고 내 Formula 디렉토리는 기본적으로/usr/local/Library/Formula

  2. 패키지의 특정 수식 파일 (.rb)을 찾으십시오. 다운 그레이드하고 싶기 때문에 파일을 docker-machine볼 수 있습니다 docker-machine.rb.

  3. 이 수식 파일의 버전 기록을 가져옵니다 . 를 입력하십시오 git log docker-machine.rb. 이 파일에 대한 전체 커밋 히스토리가 표시됩니다. 다음과 같은 출력이 표시됩니다.

    ...더 

    커밋 20c7abc13d2edd67c8c1d30c407bd5e31229cacc
    저자 : BrewTestBot 
    날짜 : Thu 11 월 5 일 16:14:18 2015 +0000

        도커 기계 : 0.5.0 병을 업데이트하십시오.

    커밋 8f615708184884e501bf5c16482c95eff6aea637
    저자 : Vincent Lesierse 
    날짜 : 화 10 월 27 일 22:25:30 2015 +0100

        도커 머신 0.5.0

        docker-machine을 0.5.0으로 업데이트했습니다.

        # 45403을 닫습니다.

        서명자 : Dominyk Tiller 

    커밋 5970e1af9b13dcbeffd281ae57c9ab90316ba423
    저자 : BrewTestBot 
    날짜 : 월요일 9 월 21 일 14:04:04 2015 +0100

        도커 기계 : 0.4.1 병을 업데이트하십시오.

    커밋 18fcbd36d22fa0c19406d699308fafb44e4c8dcd
    저자 : BrewTestBot 
    날짜 : 일요일 8 월 16 일 09:05:56 2015 +0100

        도커 기계 : 0.4.1 병을 업데이트하십시오.

    ...더

까다로운 부분은 원하는 특정 버전에 대한 최신 커밋을 찾는 것입니다. 위에서,이 커밋 태그로 최신 0.4.1 버전이 커밋되었음을 알 수 있습니다 commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423. 이 시점 위의 커밋은 버전 0.5.0부터 시작합니다 (git log 항목은 최신 날짜부터 가장 빠른 날짜까지 나열 됨).

  1. 수식 파일의 이전 버전을 가져옵니다. 3 단계의 커밋 태그 (처음 6자를 사용할 수 있음)를 사용하여 다음을 사용하여 이전 버전의 수식 파일을 얻을 수 있습니다.

    git checkout 5970e1 docker-machine.rb

  2. 현재 패키지 버전을 제거하십시오. 일반 brew 명령을 실행하여 현재 버전의 패키지를 제거하십시오.
    전의.brew uninstall docker-machine

  3. 이전 패키지 버전 설치 이제 일반 brew install 명령을 실행하면 체크 아웃 한 공식이 설치됩니다. 전의.brew install docker-machine

brew link docker-machine필요한 경우 를 사용하여 다시 연결해야 할 수도 있습니다 .

언제든지 특정 패키지의 최신 버전으로 되돌리려면 공식 디렉토리로 이동하여 공식 파일 (.rb)에서 다음 명령을 실행하십시오.

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

그럼 당신은 할 수 brew uninstall docker-machinebrew install docker-machine최신 버전을 다운로드하고 앞으로 그런 식으로 유지합니다.


1
@rchawdry를 작성해 주셔서 감사합니다. BTW : --grep 매개 변수를 빠르게 추가하려는 버전과 일치하는 커밋을 찾습니다 git log --grep 0.4.1 docker-machine.rb.
Jerry Mindek

나를 위해, 경로는 /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula
akauppi

cairo이런 식으로 추출을 위한 충분한 버전 기록을 찾을 수 없었습니다 . @sealocal의 답변은 어떤 이유로 더 많은 것을 보여주었습니다.
akauppi

11

2020 년이며 대부분의 답변이 구식입니다.

내 상황 : postgresql실수로 11에서 12로 업그레이드되었습니다. 11을 유지하고 싶습니다.

  1. DB를 중지하십시오.
brew services stop postgresql
  1. Postgres 11 설치 :
brew install postgresql@11
  1. 그것을 활성화하십시오 :
brew link postgresql@11 --force
  1. 에서 (선택 사항) 이름 바꾸기 DB 데이터 디렉토리 postgrespostgres@11:
cd /usr/local/var
ls -lh
mv postgresql@11 postgresql@11-fresh-backup
mv postgres postgresql@11
  1. DB를 시작하십시오.
brew services start postgresql@11

오류가 있으면 확인하십시오 /usr/local/var/log/postgresql@11.log(@ 11에 유의하십시오).


6
이는 postbrewsql @ 11의 특수한 경우에만 작동하며 Homebrew 유지 관리자가 명시 적으로 유지하여 데이터 저장소 마이그레이션 (특수 명령 사용 brew postgresql-upgrade-database) 을 도와줍니다 . 이 답변은 거의 모든 다른 수식에는 유용하지 않습니다.
Adam Wróbel

@ AdamWróbel 나는 이것이 Postgres에 관한 원래 질문에 대답 하는 것이 좋다고 결정했습니다 . brew postgresql-upgrade-database글쎄, 업그레이드 입니다. 내 대답은 이전 Postgres 버전을 사용하는 것 입니다. 바이너리를 바꾸는 것만으로는 효과가 없습니다.
Max Malysh

예를 들어 nvm, 버전 관리자를 사용하지 않는 NodeJS 사용자는 이전 LTS 릴리스에이 기술을 사용하여 운이 좋았습니다. 쓰기 V10 및 V12의 시점에서 적어도, 예를 들어, 사용할 수 있어야 brew install node@12 formulae.brew.sh/formula/node

9

이전 추출 패키지 버전 설치 (Flyway 4.2.0 예)

로컬 homebrew git dir을 찾거나 로컬에서 Homebrew / homebrew-core를 복제하십시오.

cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/

또는

git clone git@github.com:Homebrew/homebrew-core.git

사용 가능한 모든 버전 나열

git log master -- Formula/flyway.rb

원하는 버전의 커밋 ID를 복사하여 직접 설치하십시오.

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/793abfa325531415184e1549836c982b39e89299/Formula/flyway.rb


왜 단순히 디렉토리 brew install Formula/flyway.rb에서 실행하지 homebrew-core않습니까? 그것은 raw.github..주소 를 사용하지 않고 나를 위해 일했다
kangkyu

9

나는 여기서 대부분의 솔루션을 시도했지만 구식입니다. 나는 여기에서 나온 아이디어와 내 작품을 결합해야했다. 결과적으로 여기에서 찾을 수있는 무거운 물건을 들어 올리는 데 도움이되는 스크립트를 만들었습니다.

용법:

brewv.sh formula_name desired_version

6

추출의 마지막 버전에서는 매우 쉽게 수행 할 수 있습니다.

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)

2
... 누군가가 해당 패키지에 대해 버전이 지정된 레시피를 만들려고한다면
clacke

6

이 중 어느 것도 실제로 내 경우 (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

2
삶의 변화와이 답변이 가장 관련이 있습니다. 잊지 마세요HOMEBREW_NO_AUTO_UPDATE 읽기 github.com/Homebrew/brew/issues/1188
책략 E.

올바른 명령은 cd brew --prefix /Homebrewgit log Library/Taps/homebrew/homebrew-core/Formula/python.rb
Iulian Onofrei

그러나 /Library/Taps무시 되기 때문에 작동하지 않습니다 .
Iulian Onofrei

에 대해 잊지 마십시오 HOMEBREW_NO_AUTO_UPDATE. 네, 필요한 것까지 잊지 마세요 후에 당신은 당신이 그것을 필요로 발견 할 수 있습니다. xD
Josh Habdas 12

이건 어때? HOMEBREW_NO_INSTALL_CLEANUP이것이 당신이 기억해야하는 것이 아닌가?
kangkyu

6

로 버전을 찾을 수없는 경우 brew search <formula>수식의 커밋 로그를 검토하여 원하는 버전을 찾을 수도 있습니다.

brew를 통해 이전 버전의 nginx를 설치하는 예는 다음과 같습니다.

거기 1.6.3에서 sha와 raw git url로 설치할 수 있습니다 :

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


3

현재 특정 수식 버전을 설치하는 기존 방법은 더 이상 사용되지 않습니다. 그래서 우리가 사용해야 할 것 같습니다 brew edit [formula]. 예를 들어 (예 :에 필요한) 62.1버전 을 설치하려고합니다 . 그런 다음에icu4cpostgresql 10.5

> brew edit icu4c
# drops you to editor

여기에서 url, versionsha256(아마도 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
simo

1

Library / Formula / postgresql.rb 8 행에서

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

그리고 9 호선의 MD5는

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

희망이 있습니다 :)


1

방금 이전 버전의 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

그게 다야. 아마 누군가에게 유용 할 것입니다.


못생긴 해킹. 그러나 예, 이전 버전의 영사를 검색하고 설치하는 동안 나에게도 효과가있었습니다! 건배.
darkdefender27

0

나는 더 나은 판단에 비추어 Maven 3.1.1에 대한 수식을 만들지 않기로 결정했습니다 homebrew/versions. 이것을하기 위해:

  1. 나는 homebrew/versionsgithub를 포크 했다.
  2. 나는 $(brew --prefix)/Library/Taps내 포크의 로컬 작업 복사본과 연결되었습니다. 나는 이것을 부를 것이다 my-homebrew/versions.
  3. 수식을로 지정하여 테스트했습니다 my-homebrew/versions/<formula>.
  4. homebrew/versions새 공식 에 대한 풀 요청을 보냈습니다 .



0

나는 이 답변 에서 규정 된 프로세스를 용이하게 하는 도구 를 만들었다 .

pkgversion 패키지를 찾으려면 a.b.c다음을 실행하십시오.

$ brew-install-specific pkg@a.b.c

여기 pkg에는 주어진 버전과 GitHub URL이 언급 된 홈 브루 수식 에 대한 커밋이 나열됩니다 .

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

제공된 명령을 복사하고 실행하여 설치하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.