일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 소프트웨어공학
- 코딩
- 프로그래밍언어
- 자료구조
- 컴퓨터공학
- 웹개발
- 머신러닝
- 인공지능
- 딥러닝
- 데이터구조
- 버전관리
- 빅데이터
- 프로그래밍
- 컴퓨터과학
- 소프트웨어
- 데이터과학
- 알고리즘
- 데이터분석
- 데이터베이스
- Yes
- 네트워크
- 자바스크립트
- 보안
- I'm Sorry
- 컴퓨터비전
- 네트워크보안
- 클라우드컴퓨팅
- 파이썬
- 2
- 사이버보안
- Today
- Total
스택큐힙리스트
홈브류 특정 버전의 공식 설치하기? 본문
홈브루에서 특정 버전의 공식을 설치하는 방법은 어떻게 되나요? 예를 들어, 최신 버전 9.0이 아니라 postgresql-8.4.4를 설치하려면 어떻게 해야 할까요?
답변 1
요약: brew install postgresql@8.4.4. 자세한 내용은 answer below를 참조하세요.
*(저는 홈브루를 사용하여 오래된 소프트웨어 버전을 설치/사용하는 더 꼼꼼한 작업흐름을 제시하기 위해 답변을 다시 편집했습니다. 이전 버전이 더 좋았다면 참고사항을 추가해 주세요.)*
가장 단순한 경우부터 시작해 봅시다.
1) 버전이 이미 설치되어 있는지 확인하십시오 (하지만 활성화되지는 않음)
홈브류가 새로운 공식을 설치하면 /usr/local/Cellar/postgresql/9.3.1와 같은 버전화된 디렉토리에 설치합니다. 그런 다음 이 폴더의 심볼릭 링크만 전역으로 설치됩니다. 원칙적으로 이렇게 하면 설치된 두 버전 간 전환하는 것이 매우 쉬워집니다. (*)
만약 당신이 오래 전부터 홈브류를 사용하고 이전 버전을 제거하지 않았다면 (예를 들어 brew cleanup) 당신의 프로그램에 이전 버전이 아직 존재할 가능성이 있습니다. 이전 버전을 단순히 활성화하고 싶다면 brew switch 가 가장 쉬운 방법입니다.
brew info postgresql (또는 brew switch postgresql
$ 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 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) 버전이 tap으로 사용 가능한지 확인하세요.
특히 대규모 소프트웨어 프로젝트의 경우 특정 소프트웨어의 여러 (잠재적으로 API 호환되지 않는) 주요 버전에 대한 높은 수요가 매우 가능합니다. 2012년 3월 기준으로, Homebrew 0.9은 이를 위한 매커니즘을 제공합니다: brew tap 및 homebrew versions 리포지토리.
그 버전 저장소에는 여러 공식에 대한 이전 버전의 백포트(backports)가 포함될 수 있습니다. (대부분은 크고 유명한 공식에 한정되지만 물론 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) 과거의 몇 가지 공식을 시도해보세요.
다음 접근 방법은 대부분 완성도를 위해 나열되었습니다. 둘 다 언데드(formula가 brew 저장소에서 다운로드되지 않는) 상태였던 일부 공식을 부활시키려고 시도합니다. 변경된 종속성, 공식 명세의 API 변경 또는 다운로드 URL의 변경으로 인해 작업이 제대로 되거나 되지 않을 수 있습니다.
전체 공식 디렉토리는 git 저장소이므로 일반적인 git 명령을 사용하여 특정 버전을 설치할 수 있습니다. 그러나 이전 버전이 사용 가능한 commit으로 이동하는 방법을 찾아야 합니다.
a) 역사적 시대
2011년 8월부터 2014년 10월까지 homebrew는 brew versions 명령을 가지고 있었으며, 해당 명령을 사용하면 각각의 SHA 해시와 함께 사용 가능한 버전을 모두 출력했습니다. 2014년 10월부터는 먼저 brew tap homebrew/boneyard를 수행한 다음에야 사용할 수 있습니다. tap의 이름에서 알 수 있듯이 이는 마지막 수단으로 사용해야 합니다.
Hello - 안녕하세요
$ 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가 우리가 관심 있는 커밋입니다. 이 커밋이 꽤 오래되었으므로 전체 홈브루 설치를 다운그레이드해보겠습니다 (그러면 공식 API가 거의 보장됩니다).
$ git checkout -b postgresql-8.4.4 fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422
$ brew install postgresql
$ git checkout master
$ git branch -d postgresql-8.4.4
당신은 깃 레포지토리에서 참조를 유지하기 위해 마지막 명령을 건너뛸 수 있습니다.
한 가지 주의할 점은 이전 커밋을 확인할 때, Homebrew 설치 버전을 일시적으로 낮추게 됩니다. 따라서 Homebrew의 일부 명령어가 최신 버전과 다를 수 있으므로 주의해야 합니다.
4) 수식을 수동으로 작성하십시오.
It’s not too hard 그리고 당신은 그것을 자신의 저장소에 업로드할 수 있습니다. 예전에는 Homebrew-Versions 이었지만 이제는 중단되었습니다.
A.) 보너스: 핀달기
postgresql 같은 특정 버전을 유지하고, 자연스러운 brew update; brew upgrade 절차를 수행할 때 업데이트되지 않도록하려면, 공식을 고정할 수 있습니다.
$ brew pin postgresql
고정 수식은 /usr/local/Library/PinnedKegs/에 나열되어 있으며 최신 변경 사항과 업데이트를 가져오려면 다시 고정을 해제할 수 있습니다.
$ brew unpin postgresql
답변 2
홈브류에서 특정 버전의 공식을 설치하는 방법
홈브류는 간단하고 편리한 패키지 관리자로 여러 사용자들이 Mac OS용 소프트웨어 패키지를 설치할 수 있도록 도와준다. 하지만, 때로는 특정 버전의 공식을 원할 때가 있다. 이 글에서는 홈브류를 사용하여 특정 버전의 공식을 설치하는 방법을 간단히 알아보자.
먼저, 사용하려는 공식의 버전을 확인해야 한다. 홈브류는 버전 관리 시스템을 사용하기 때문에 이전 버전도 보유하고 있다. 다음으로, 터미널을 열고 아래 명령어를 실행한다.
```
$ brew search [공식명]
```
이 명령어는 특정 공식의 모든 버전을 검색한다. 이제 설치하려는 버전의 공식을 찾아야 한다. 버전 번호를 지정하여 찾을 수 있다. 예를 들어, 공식명이 'node'이고 버전이 '8'인 경우 아래와 같이 명령어를 입력한다.
```
$ brew search node@8
```
이 명령어를 입력하면 'node@8' 공식의 모든 버전을 검색한다. 이제 필요한 버전을 찾아보자. 버전을 찾으면 아래와 같은 명령어로 해당 버전의 공식을 설치할 수 있다.
```
$ brew install [공식명]@[버전번호]
```
위 예시를 사용하여 node 8.16.2 버전을 설치하려면 다음과 같이 입력한다.
```
$ brew install node@8.16.2
```
설치가 완료되면, 해당 버전의 공식을 사용할 수 있다. 이제 다양한 홈브류 공식들을 원하는 버전으로 설치해보자.