etc./StackOverFlow

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

청렴결백한 만능 재주꾼 2021. 11. 24. 06:13
반응형

질문자 :Gravis


homebrew에서 특정 버전의 공식을 어떻게 설치합니까? 예를 들어 최신 9.0 대신 postgresql-8.4.4를 사용합니다.



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


*( homebrew와 함께 이전 소프트웨어 버전을 설치/사용하기 위한 보다 철저한 워크플로를 제공하기 위해 내 답변을 다시 편집했습니다. 이전 버전이 더 좋다면 자유롭게 메모를 추가하세요. )

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

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

/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 taphomebrew 버전 저장소에 대한 메커니즘을 제공합니다.

해당 버전 저장소에는 여러 공식에 대한 이전 버전의 백포트가 포함될 수 있습니다. (대부분 크고 유명한 것들만 있지만 물론 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에는 해당 SHA 해시와 함께 사용 가능한 모든 버전을 내보내는 brew versions 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 Library/Taps/homebrew/homebrew-core/Formula/postgresql.rb '8.4.4' 가 추가되거나 제거된 모든 커밋을 찾습니다. 결과적으로 두 개의 커밋을 얻습니다.

 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 가 우리가 관심을 갖고 있는 커밋입니다. 이 커밋이 꽤 오래되었기 때문에 전체 홈브류 설치를 다운그레이드하려고 시도할 것입니다.

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

git 저장소에 참조를 유지하려면 마지막 명령을 건너뛸 수 있습니다.

참고 사항: 이전 커밋을 확인할 때 홈브류 설치를 일시적으로 다운그레이드합니다. 따라서 homebrew의 일부 명령은 최신 버전과 다를 수 있으므로 주의해야 합니다.

4) 수동으로 수식 작성

너무 어렵지 않으며 자신의 저장소에 업로드할 수 있습니다. 예전에는 Homebrew-Versions 였지만 지금은 중단되었습니다.

A.) 보너스: 고정

postgresql과 같은 특정 버전을 유지하고 자연 brew update; brew upgrade 절차에서 공식을 고정 할 수 있습니다.

 $ brew pin postgresql

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

 $ brew unpin postgresql

Debilski

간단한 워크플로

이제 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

Bijan

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

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


Trevor Burnham

업데이트: 2015년 1월 15일

  • 원하는 소프트웨어 및 버전의 커밋 이력을 찾습니다. 예를 들어 도커 버전 1.4.1에서 1.3.3으로 전환해야 합니다. https://github.com/Homebrew/homebrew-core/commits/master/Formula/docker.rb
  • 이 버튼으로 파일 보기:여기에 이미지 설명 입력
  • 원시 버튼을 클릭합니다.목록 항목
  • 주소 표시줄에서 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

Vishal

@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

Lance Pollard

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

 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

kylewelsby

업데이트: 이 방법은 더 이상 사용되지 않으며 더 이상 작동하지 않습니다.

이 방법은 오류가 발생합니다. GitHub 커밋 URL에서 mysql을 설치하는 것은 지원되지 않습니다! 대신 GitHub에서 안정적인 탭으로 brew extract mysql (사용 오류)

 $ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/c77882756a832ac1d87e7396c114158e5619016c/Formula/mysql.rb Updating Homebrew... ==> Auto-updated Homebrew! Updated 2 taps (homebrew/core and homebrew/cask). ... Traceback (most recent call last): 9: from /usr/local/Homebrew/Library/Homebrew/brew.rb:122:in `<main>' 8: from /usr/local/Homebrew/Library/Homebrew/cmd/install.rb:132:in `install' 7: from /usr/local/Homebrew/Library/Homebrew/cli/parser.rb:302:in `parse' 6: from /usr/local/Homebrew/Library/Homebrew/cli/parser.rb:651:in `formulae' 5: from /usr/local/Homebrew/Library/Homebrew/cli/parser.rb:651:in `map' 4: from /usr/local/Homebrew/Library/Homebrew/cli/parser.rb:655:in `block in formulae' 3: from /usr/local/Homebrew/Library/Homebrew/formulary.rb:351:in `factory' 2: from /usr/local/Homebrew/Library/Homebrew/formulary.rb:138:in `get_formula' 1: from /usr/local/Homebrew/Library/Homebrew/formulary.rb:142:in `klass' /usr/local/Homebrew/Library/Homebrew/formulary.rb:227:in `load_file': Invalid usage: Installation of mysql from a GitHub commit URL is unsupported! `brew extract mysql` to a stable tap on GitHub instead. (UsageError) 12: from /usr/local/Homebrew/Library/Homebrew/brew.rb:155:in `<main>' 11: from /usr/local/Homebrew/Library/Homebrew/brew.rb:157:in `rescue in <main>' 10: from /usr/local/Homebrew/Library/Homebrew/help.rb:64:in `help' 9: from /usr/local/Homebrew/Library/Homebrew/help.rb:83:in `command_help' 8: from /usr/local/Homebrew/Library/Homebrew/help.rb:103:in `parser_help' 7: from /usr/local/Homebrew/Library/Homebrew/cli/parser.rb:302:in `parse' 6: from /usr/local/Homebrew/Library/Homebrew/cli/parser.rb:651:in `formulae' 5: from /usr/local/Homebrew/Library/Homebrew/cli/parser.rb:651:in `map' 4: from /usr/local/Homebrew/Library/Homebrew/cli/parser.rb:655:in `block in formulae' 3: from /usr/local/Homebrew/Library/Homebrew/formulary.rb:351:in `factory' 2: from /usr/local/Homebrew/Library/Homebrew/formulary.rb:138:in `get_formula' 1: from /usr/local/Homebrew/Library/Homebrew/formulary.rb:142:in `klass' /usr/local/Homebrew/Library/Homebrew/formulary.rb:227:in `load_file': Invalid usage: Installation of mysql from a GitHub commit URL is unsupported! `brew extract mysql` to a stable tap on GitHub instead. (UsageError)

권장 명령으로 설치를 시도했지만 MySQL 5.7.10의 이 특정 인스턴스에서는 작동하지 않습니다. 더 최근의 공식을 사용하면 운이 좋을 수도 있습니다.

 $ brew extract --version=5.7.10 mysql homebrew/cask ==> Searching repository history ==> Writing formula for mysql from revision 0fa511b to: /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/Formula/mysql@5.7.10.rb $ $ brew install /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/Formula/mysql@5.7.10.rb Updating Homebrew... ==> Auto-updated Homebrew! Updated 1 tap (homebrew/core). ==> Updated Formulae Updated 1 formula. Error: undefined method `core_tap?' for nil:NilClass Error: Failed to load cask: /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/Formula/mysql@5.7.10.rb Cask 'mysql@5.7.10' is unreadable: wrong constant name #<Class:0x00007f9b9498cad8> Warning: Treating /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/Formula/mysql@5.7.10.rb as a formula. ==> Installing mysql@5.7.10 from homebrew/cask ==> Downloading https://homebrew.bintray.com/bottles/cmake-3.19.4.big_sur.bottle.tar.gz ==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/278f2ad1caf664019ff7b4a7fc5493999c06adf503637447af13a617d45cf484?response-content-disposition=attachment%3Bfilenam ######################################################################## 100.0% ==> Downloading https://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.bz2 ==> Downloading from https://phoenixnap.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.bz2 ######################################################################## 100.0% ==> Downloading https://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.10.tar.gz curl: (22) The requested URL returned error: 404 Not Found Error: Failed to download resource "mysql@5.7.10" Download failed: https://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.10.tar.gz

당신이 원하는 결과를 얻기 위해 시도 (루비로 작성) 위의 경로에 수식을 수정할 수 있습니다 (예를 들어, 최근 맥 OS 버전의 MySQL 5.7.10의 설치).


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

  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. History 버튼을 클릭하여 개정 기록 을 확인하세요 . MySQL 5.7.10에 관심이 있는 경우 GitHub 커밋으로 이동하는 5.7.11 이전의 최신 버전을 클릭할 수 있습니다.

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

참고: 커밋 기록이 브라우저에 로드되지 않으면 GitHub의 제안에 따라 콘솔에서 커밋 기록을 확인해야 할 수 있습니다. GitHub에서 해당 커밋을 보고 싶다면 URL에서 위의 커밋 SHA를 교체하세요. 또는 아래의 7단계로 건너뜁니다.

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

  2. 그런 다음 "원시" 버튼을 클릭하여 원시 소스를 봅니다.

  3. URL을 복사합니다. mysql.rb 파일 이름으로 URL을 직접 빌드하여 수식과 해당 수식의 특정 버전(아래 URL에서 커밋 SHA로 식별)을 식별합니다.

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

  1. $ brew install [URL from step 7]

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

sealocal

다른 답변의 대부분은 지금까지 사용되지 않습니다. 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. 이전에 찾은 URL의 master 를 커밋 해시로 대체하여 원하는 버전을 설치합니다. 예:

     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 brew pin bash 를 먼저 실행하지 않는 한 bash 5가 맨 위에 설치됩니다. 고정하지 않고 이것을 더 매끄럽게 만들려면 먼저 brew install bash 사용하여 최신 버전을 설치한 다음 brew unlink bash 위의 스크립트에 따라 원하는 이전 버전을 설치한 다음 brew switch bash 4.4.23 을 사용하여 심볼릭 링크를 설정해야 합니다. 이전 버전으로. 이제 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 단점은 특정 버전의 Bash나 다른 공식을 사용하기 위해 brew unlink bash 를 양조한 다음 brew link bash@4.4.23 를 양조해야 한다는 것입니다.


Konrad Rudolph

공식 방법( 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 특정 배쉬 버전 (또는 다른 공식을 사용하기 위해 최신 및 이전 버전이 설치되어 있어야 함).

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 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에 넣거나 기본 셸로 설정합니다.


dragon788

brew install maven Maven 3.0.3을 설치했기 때문에 방금 Homebrew를 사용하여 Maven 2.2.1로 돌아갔습니다.

먼저 maven 디렉토리를 그대로 두어야합니다.

$ brew 연결 해제 maven

추출 탭 명령 사용

$ brew 탭 홈브류/버전
'/usr/local/Library/Taps/homebrew-versions'에 복제 중...
원격: 개체 계산: 590, 완료.
원격: 개체 압축: 100%(265/265), 완료.
원격: 총 590(델타 362), 재사용 549(델타 325)
수신 개체: 100%(590/590), 117.49KiB | 79KiB/s, 완료.
델타 해결: 100%(362/362), 완료.
탭 50 공식

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

$ 양조 설치 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 --버전
아파치 메이븐 2.2.1(r801777; 2009-08-06 12:16:01-0700)
자바 버전: 1.6.0_37
자바 홈: /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 프로젝트가 저장소를 재구성했습니다. 이 변경 사항을 설명하기 위해 이 답변을 업데이트했습니다.


Cameron Goodale

실수로 Postgres를 업그레이드 했습니까?

내 경우:

  • postgresql 이 실수로 11에서 12로 업그레이드되었습니다(인수 없이 brew upgrade
  • Postgres 11을 유지하고 싶습니다.

해결책:

  1. DB 중지:
 brew services stop postgresql
  1. Postgres 11 설치:
 brew install postgresql@11
  1. 활성화:
 brew link postgresql@11 --force
  1. (선택 사항) DB 데이터 디렉터리의 이름을 postgres 에서 postgres@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 참고).


Max Malysh

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

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

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

:)


MattiSG

해결책

 brew extract --version=8.4p1 openssh homebrew/cask brew install openssh@8.4p1

brew upgrade 실행한 후 최신 openssl@8.5p1 에 버그가 있으므로 위의 방법을 통해 이전 버전으로 성공적으로 백업했습니다.


JsonBruce

@lance-pollard가 이미 작업 답변으로 게시한 내용에 추가된 이후 업데이트된 답변입니다.

Formula의 특정 버전을 설치하는 방법(이 예에서 사용된 수식은 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. 수식의 커밋 버전으로 원시 git URL 가져오기: github.com의 수식 링크가 https://github.com/Homebrew/homebrew-core/blob/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb인 경우 원시 URL은 수: 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

Miguel Reyes

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

 $ brew search mongodb mongodb mongodb24 mongodb26

그런 다음 평소와 같이 brew install mongodb26

이미 최신 버전을 설치한 경우 최신 버전의 연결을 해제하고 원하는 버전을 연결해야 합니다. brew unlink mongodb && brew link mongodb26 .


Alex Sharp

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

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

  1. 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 
    날짜: 2015년 11월 5일 목요일 16:14:18 +0000

        docker-machine: 0.5.0 병을 업데이트합니다.

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

        도커 머신 0.5.0

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

        #45403을 닫습니다.

        사인오프: Dominyk Tiller 

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

        docker-machine: 0.4.1 병을 업데이트합니다.

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

        docker-machine: 0.4.1 병을 업데이트합니다.

    ...더

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

  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 을 사용하여 다시 연결해야 할 수도 있습니다.

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

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

그런 다음 brew uninstall docker-machinebrew install docker-machine 을 사용하여 최신 버전을 얻고 앞으로 계속 유지할 수 있습니다.


rchawdry

홈브류가 최근에 변경되었습니다. 작동하던 일이 더 이상 작동하지 않습니다. 제가 찾은 가장 쉬운 방법(2021년 1월)은 다음과 같습니다.

  • 내 소프트웨어에 대한 .rb 파일을 찾습니다 (먼저 Formulas 로 이동하여 필요한 파일을 찾은 다음 "History"를 클릭합니다. CMake의 경우 https://github.com/Homebrew/homebrew-core/commits/master/에 있습니다. 공식/cmake.rb )
    • 개정판 중에서 원하는 버전(예: 3.18.4 .rb 파일 diff( ... )의 오른쪽 상단 모서리에 있는 세 개의 점을 클릭한 다음 Raw 를 클릭합니다. URL을 복사합니다.
  • 이전 버전 brew unlink cmake
  • git URL에서 직접 설치하면 더 이상 작동하지 않습니다( brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/2bf16397f163187ae5ac8be41ca7af25b5b2e2cc/Formula/cmake.rb 실패)
    • 대신 로컬 파일에서 다운로드하여 설치하십시오. curl -O https://raw.githubusercontent.com/Homebrew/homebrew-core/2bf16397f163187ae5ac8be41ca7af25b5b2e2cc/Formula/cmake.rb && brew install ./cmake.rb

짜잔! .rb 파일을 지금 삭제할 수 있습니다.


the swine

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

용법:

 brewv.sh formula_name desired_version

demosten

편집: 2021년, 이 답변은 github 설치가 더 이상 사용되지 않기 때문에 더 이상 작동하지 않습니다. (업데이트를 위해 Tim Smith에게 감사합니다).

이전 양조 패키지 버전 설치(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


ffghfgh

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

 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)

Maxim Kholyavkin

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

tenfishsticks

현재 특정 공식 버전을 설치하는 이전 방법은 더 이상 사용되지 않습니다. brew edit [formula] 를 사용해야 하는 것 같습니다. 예를 들어, 62.1 버전의 icu4c (예: postgresql 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 버전을 다운로드합니다.


Emil Rehhnberg

brew search <formula> 버전을 찾을 수 없으면 공식의 커밋 로그를 살펴보고 원하는 버전을 찾을 수도 있습니다.

다음은 brew를 통해 이전 버전의 nginx를 설치하는 예입니다.

거기에서 sha 및 raw git url을 사용하여 1.6.3 을 설치할 수 있습니다.

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


lfender6445

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

이제 이 단계에서 다음과 같이 /etc/sysctl.conf 업데이트를 해결하기 위해 postgresql could not create shared memory segment

 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

도움이 되기를 바랍니다 :)


mmrs151

방금 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

그게 다야 누구에게나 유용할 수 있습니다.


Thaars

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

버전이 abc pkg 를 찾으려면 다음을 실행하십시오.

 $ brew-install-specific pkg@abc

이것은 GitHub URL과 함께 주어진 버전을 언급하는 pkg homebrew 수식에 대한 커밋을 나열합니다.

 Matching versions: 1. pkg: update abc bottle. https://github.com/Homebrew/homebrew-core/commit/<COMMIT-SHA> 2. pkg: release abc-beta https://github.com/Homebrew/homebrew-core/commit/<COMMIT-SHA> 3. pkg abc 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

주어진 명령을 복사하여 실행하여 설치하십시오.


divs1210

brew versionsbrew install https://raw.githubusercontent.com/Homebrew/homebrew-core/<COMMIT-HASH>/Formula/<Formula>.rb 는 현재 지원되지 않습니다.

다음과 같이 시도할 수 있습니다.

 $ brew extract --version 5.6.2 gradle vitahlin/core $ brew install gradle@5.6.2

Vitah

KOPS(버전 관리를 지원하지 않음)를 다운그레이드하는 방법은 다음과 같습니다.

 # brew has a git repo on your localhost cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core git remote -v origin https://github.com/Homebrew/homebrew-core (fetch) origin https://github.com/Homebrew/homebrew-core (push) # find the version of kops.rb you need git log Formula/kops.rb # checkout old commit # kops: update 1.18.1 bottle. git checkout 2f0ede7f27dfc074d5b5493894f3468f27cc73f0 -- Formula/kops.rb brew unlink kops brew install kops # now we have old version installed ls -1 /usr/local/Cellar/kops/ 1.18.1 1.18.2 which kops /usr/local/bin/kops ls -l /usr/local/bin/kops /usr/local/bin/kops -> ../Cellar/kops/1.18.1/bin/kops kops version Version 1.18.1 # revert to the newest version brew uninstall kops git checkout -f brew link kops kops version Version 1.18.2

Alexey Dmitriev

여기에 대한 내 간단한 대답은 이에 대한 내장 솔루션이 없다는 사실에 정말 짜증이 나서 내 자신의 게으른 "스크립트"를 만들었습니다. 자유롭게 기여하세요

 # Please define variables packageName=<packageName> packageVersion=<packageVersion> # Create a new tab brew tap-new local/$packageName # Extract into local tap brew extract --version=$packageVersion $packageName local/$packageName # Verify packages is present brew search $packageName@ # Run brew install@version as usual brew install local/$packageName/$packageName@$packageVersion

https://gist.github.com/ArgonQQ/cff4834dab6b254cc2140bb1454b47ef


ArgonQQ

여기에 있는 다른 답변도 훌륭하지만 이전 버전의 패키지를 설치하고 패키지 이름이 수정되었는지 확인해야 하는 경우 다른 접근 방식이 필요합니다. brew --prefix package_name 을 사용하여 컴파일에 사용할 디렉토리를 결정하는 스크립트(제 경우에는 PHP 빌드 스크립트)를 사용할 때 중요합니다.

brew extract 하는 경우 패키지 이름 끝에 버전이 추가되어 brew --prefix 조회가 중단됩니다.

원래 패키지 이름을 유지하면서 이전 패키지 버전을 설치하는 방법은 다음과 같습니다.

 # uninstall the newer version of the package that you accidentally installed brew uninstall --ignore-dependencies icu4c # `extract` the version you'd like to install into a custom tap brew tap-new $USER/local-tap brew extract --version=68.2 icu4c $USER/local-tap # jump into the new tap you created cd $(brew --repository $USER/local-tap)/Formula # rename the formula mv icu4c@68.2.rb icu4c.rb # change the name of the formula by removing "AT682" from the `class` definition # the exact text you'll need to remove will be different # depending on the version you extracted nano icu4c.rb # then, install this specific formula directly brew install $(brew --repository $USER/local-tap)/Formula/icu4c.rb

나는 여기에 대해 더 많이 썼습니다.


iloveitaly

출처 : http:www.stackoverflow.com/questions/3987683/homebrew-install-specific-version-of-formula

반응형