Homebrew에 특정 버전의 수식을 어떻게 설치합니까? 예를 들어, 최신 9.0 대신 postgresql-8.4.4입니다.
답변
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) 역사적인 시대
2011 년 8 월과 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
답변
간단한 워크 플로우
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
답변
이제 이전에 설치 한 이전 버전의 수식을 훨씬 쉽게 설치할 수 있습니다. 간단히 사용
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에 대한 추가 설명서를 참조하십시오 .
답변
업데이트 : 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
답변
@halfcube의 제안을 따라, 이것은 실제로 잘 작동합니다.
- https://github.com/Homebrew/homebrew-core/tree/master/Formula 에서 원하는 라이브러리를 찾으십시오.
- 그것을 클릭하십시오 : https://github.com/Homebrew/homebrew-core/blob/master/Formula/postgresql.rb
- “기록”버튼을 클릭하여 이전 커밋을 확인하십시오. https://github.com/Homebrew/homebrew-core/commits/master/Formula/postgresql.rb
- “postgresql : 버전을 8.4.4로 업데이트”, https://github.com/Homebrew/homebrew-core/blob/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb
- “원시”링크를 클릭하십시오 : https://raw.githubusercontent.com/Homebrew/homebrew-core/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb
답변
다른 복잡한 솔루션보다 더 나은 대안 솔루션을 발견했습니다.
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
답변
설치하려는 패키지 버전과 일치하는 수식 기록에서 수식 및 특정 커밋을 식별하는 전략을 사용할 수 있습니다.
-
를 눌러
t
키보드에서 파일 찾기를 활성화합니다. -
아마도 다음과 같이 가장 관련성이 높은 수식을 식별하십시오
Formula/mysql.rb
: . 포럼 포럼 파일 위치 : https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql.rb -
https://github.com/Homebrew/homebrew-core/commits/master/Formula/mysql.rb 에있는
History
단추 를 클릭하여 개정 히스토리를보십시오 . MySQL 5.7.10에 관심이 있다면 5.7.11 이전의 최신 개정판을 클릭하여 GitHub 커밋으로 이동할 수 있습니다.
참고 : 커밋 기록이 브라우저에로드되지 않으면 GitHub의 제안에 따라 콘솔에서 커밋 기록을 확인해야 할 수도 있습니다. GitHub에서 커밋을 확인하려면 URL에서 위의 커밋 SHA를 바꾸십시오. 또는 아래의 7 단계로 건너 뜁니다.
-
커밋이 적용된 후 mysql.rb 파일의 소스를 보려면 “보기”버튼을 클릭하십시오.
-
그런 다음 “Raw”버튼을 클릭하여 원시 소스를보십시오.
-
URL을 복사하십시오. 또는
mysql.rb
파일 이름으로 URL을 직접 작성 하여 수식 및 해당 수식의 특정 버전을 식별하십시오 (아래 URL에서 commmit SHA로 식별). -
함께 설치
$ brew install [URL from step 7]
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/c77882756a832ac1d87e7396c114158e5619016c/Formula/mysql.rb
참고 :이 답변은 braumeister.org 웹 사이트 제거를 설명하기 위해 업데이트되었습니다. 같은 원칙이 적용되어, braumeister는 초보자에게 친숙한 공식 버전 탐색 방법을 제공했습니다.