Homebrew와 Macports가 공존하도록 강요합니까?


10

몇 년 동안 사용해온 MacOSX 시스템이 있으며이 기간 동안 Macports를 통해 상당히 많은 패키지를 설치했습니다.

이제 Homebrew를 사용 해보고 싶지만 여기에서 읽은 내용과 Homebrew 및 Macports의 기본 설치가 쉽게 공존 할 수 없다는 것이 분명합니다.

매일 매일의 MacOSX 작업에는 다양한 Macports 설치 유틸리티를 사용하기 때문에 Macports를 제거 할 수있는 옵션은 아닙니다. 또한, 제 자신의 자체 개발 유틸리티는 이제 Macports와 상호 의존적입니다. 마지막으로, 내가 일상적으로 사용하는 많은 실행 파일과 공유 라이브러리가 이제 / usr / local에 설치되며, 디렉토리 트리를 지우면 시스템을 빠르게 사용할 수 없게됩니다.

그래서 내 질문은 이것입니다 : Macports와 공존 할 수있는 Homebrew를 설치하는 다른 방법을 가진 사람이 있습니까? 구체적으로 Homebrew가 / usr / local 대신 / usr / local / homebrew와 같은 디렉토리 트리를 활용하는 방법을 알아 낸 사람이 있습니까?

문서에 대한 제안이나 조언에 미리 감사드립니다.


시도하고 싶다면 OS X 가상 머신을 설정하지 않겠습니까? OS X 10.7에 대한 Apple의 TOS에 위배되지 않으며 원하는대로 실험 할 수 있습니다. 두 가지를 동시에 사용하는 것이 효과가 있더라도 일이 깨지기 시작하면 놀라지 않을 것입니다.
Daniel Beck

대단히 감사하지만, 그렇게 할 수있는 방법이 있다면 두 패키지 관리자를 동일한 OSX 환경에서 실행하는 것을 선호합니다. Homebrew를 좋아하는 경우 해당 시스템을 통해 점차적으로 패키지를 설치하고 이전 Macports 기반 패키지를 점차적으로 제거하려고하기 때문입니다. 불행히도, Homebrew를 결정하고, 기존 Macports 코드를 모두 한 번에 쓸어 버린 다음 Homebrew를 통해 다른 번지에 쓸어 버릴 수있는 대안이 아닙니다.
HippoMan

답변:


2

Homebrew에 자체 디렉토리를 사용하도록 지시 한 다음 경로에 추가 할 수 있습니다. 같은 목적이 아니지만 설치 안내서에서 발췌 한 내용은 다음과 같습니다.

여러 설치

tarball을 추출 할 때마다 Homebrew 설치를 작성하십시오. 어떤 brew 명령을 호출하든 패키지가 설치됩니다. 예를 들어 / usr / local의 시스템 라이브러리 세트와 ~ / homebrew의 개발을 위해 수정 된 공식을 사용할 수 있습니다.

출처 : https://github.com/mxcl/homebrew/wiki/installation


카롤 로스 감사합니다. 나는 같은 위키 페이지에 다음과 같은 언급을하지 않았다 : "하지만 자신이 / usr / local에 호의를 베풀고 설치하십시오 ... 당신의 위험에 다른 접두사를 고르십시오! " 후에.
HippoMan

/ usr / local / homebrew에 homebrew를 설치하려고했습니다. 그러나 설치하려고하는 많은 패키지가 실패했습니다. / usr / local / homebrew / bin / brew doctor 실행하면 문자 그대로 수십 개의 예기치 않은 dylib, 정적 라이브러리, .pc 파일 및 .la 파일에 대한 참조와 / usr / local 설치가 필요한 특정 패키지에 대한 경고가 표시됩니다. 레거시 소프트웨어 설치를 중단하면 시스템이 전혀 실행되지 않기 때문에 ( "예기치 않은"대부분의 파일이 제공되는 곳) 시스템에서 홈브류를 사용할 수있는 방법이없는 것 같습니다. 오 잘 ... (한숨) ...
HippoMan

@HippoMan : 작동하지 않아서 죄송합니다. 그러나 한 가지 질문 : / usr / local / homebrew가 경로에 올바르게 설정되어 있습니까? 즉 PATH 및 (DY) LD_LIBRARY_PATH
Karolos

@HippoMan : 실패한 패키지는 무엇입니까? 방금 두 개를 설치하려고했지만 아무런 문제가 없었습니다 (/ usr / local / homebrew / bin을 추가하기 위해 / etc / paths를 편집 한 후).
Karolos

예, / usr / local / homebrew 트리 아래에서 bin 및 lib를 가리 키도록 PATH 및 LD_LIBRARY_PATH를 올바르게 설정했습니다. 실패한 패키지 중 하나는 gawk이며 avidemux의 전제 조건입니다. 그러나 어떤 종류의 오류가 발생하면 처음부터 다시 시작하고 한 번 더 시도합니다.
HippoMan

1

그것들을 공존시키는 나의 방법은 기본적으로 MacPorts를 보이지 않게하고 MacPorts 프로그램을 호출 할 때 보이게하는 것입니다. 즉, 다음과 같은 스크립트로 MacPorts 프로그램을 래핑하십시오.

if [ "$#" -le 0 ]; then
  echo "Usage: $0 command [arg1, arg2, ...]" >&2
  exit 1
fi
if [[ -z $MACPORTS_PREFIX ]]; then
  MACPORTS_PREFIX='/opt/local'
fi
export PATH="$MACPORTS_PREFIX/bin:$MACPORTS_PREFIX/sbin:$PATH"
export DYLD_LIBRARY_PATH="$MACPORTS_PREFIX/lib:$DYLD_LIBRARY_PATH"
export CPATH="$MACPORTS_PREFIX/include:$CPATH"
command=$1
shift
exec $command $* 

이 스크립트의 이름을로 지정 macports.sh하면 줄 바꿈 실행 macports.sh macports_bin과 같은 줄 바꿈을 수행 할 수 있습니다 .macports.sh portport

편의를 위해, 당신은 넣을 수 있습니다 macports.sh something명령 자체와 같은 이름을 가진 일부 스크립트로와 같은 홈 디렉토리에 넣어 ~/bin, ~/.local/bin

한 달 전에 블로그 게시물을 작성 했습니다 . 세부 사항을 살펴 보려면 읽을 수 있습니다.

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