Mac에서 Homebrew를 사용하여 디렉터리당 특정 버전의 패키지 사용

Mac에서 Homebrew를 사용하여 디렉터리당 특정 버전의 패키지 사용

나는 종종 다음과 같이 설치된 패키지의 특정 버전으로 전환하는 것을 발견합니다.집에서 만든 맥주프로젝트를 전환할 때.

$ cd ~/Desktop/projects/project1
$ brew switch phantomjs 2.0.0
Cleaning /usr/local/Cellar/phantomjs/1.9.7_1
Cleaning /usr/local/Cellar/phantomjs/1.9.8
Cleaning /usr/local/Cellar/phantomjs/2.0.0
2 links created for /usr/local/Cellar/phantomjs/2.0.0

그런 다음 프로젝트를 변경할 때:

$ cd ~/Desktop/projects/project2
$ brew switch phantomjs 1.9.8
Cleaning /usr/local/Cellar/phantomjs/1.9.7_1
Cleaning /usr/local/Cellar/phantomjs/1.9.8
Cleaning /usr/local/Cellar/phantomjs/2.0.0
2 links created for /usr/local/Cellar/phantomjs/1.9.8

brew특정 프로젝트 내에서 특정 버전으로 강제로 자동 전환할 수 있도록 이를 자동화하는 것이 가능합니까 ?

.homebrew대상 디렉토리 내부와 같은 파일을 생성하고 거기에서 필요한 패키지와 버전을 지정할 수 있다면 좋을 것입니다 .

답변1

귀하의 질문에 직접 답변하려면 다음을 살펴보십시오.온디르. 개인적으로 사용해본 적은 없지만 귀하의 사용 사례에 적합한 것 같습니다.

ondir은 특정 디렉토리와 관련된 작업을 자동화하는 작은 프로그램입니다. 디렉토리에 들어가고 나갈 때 디렉토리에서 스크립트를 실행하여 작동합니다.

잠시 반추하자면...

셸을 통해 디렉터리를 입력/종료할 때 패키지 버전을 교체하는 것은 여러 가지 이유로 위험합니다. (우선, 각각 자신의 디렉터리에 있는 두 개의 터미널 세션을 생각해 보세요.)

당신이 요구하는 것(디렉터리별 홈브류 구성)은 언어를 "가상화"하는 것 이상이므로 사실상 가상 머신이나 컨테이너입니다(예: Ruby viarbenv, Python을 통해virtualenv`) 대신 모든 시스템 패키지에 사용됩니다. 다음을 설정하는 것을 고려해야 합니다.방랑자프로젝트를 Mac에서 적절하게 격리하고 종속성을 더 잘 관리할 수 있는 상자입니다.

어쨌든, 당면한 문제로 돌아가서 ...

PhantomJS는 유용한 도구로 사용할 수 있는 독립형 도구입니다.정적으로 연결된 바이너리. 우리는 이것을 유리하게 활용할 수 있습니다. 를 통해 PhantomJS 버전을 교체하는 대신 brew switch정적으로 링크된 각 버전을 다운로드하고 바이너리를 에 삽입한 다음 ~/bin적절하게 이름을 지정하고(예: phantomjs-1.9.8) 원하는 버전을 호출하도록 스크립트를 조정하세요. 스크립트를 조정할 수 없는 경우 다른 구성표(프로젝트별 심볼릭 링크 등)를 고안해야 합니다.

또는에서 제안한대로GitHub에 대한 귀하의 쿼리, 드라이브에 상관없이 래핑 스크립트를 PATH통해 를 조정할 수도 있습니다 .ondirphantomjs

(예,어느 날 밤에 두 번째개인적으로 사용하지 않은 도구를 누군가에게 지적했습니다.)

관련 정보