![Homebrew와 Macports를 강제로 공존시키시겠습니까?](https://rvso.com/image/1303084/Homebrew%EC%99%80%20Macports%EB%A5%BC%20%EA%B0%95%EC%A0%9C%EB%A1%9C%20%EA%B3%B5%EC%A1%B4%EC%8B%9C%ED%82%A4%EC%8B%9C%EA%B2%A0%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
나는 수년 동안 사용해 온 MacOSX 시스템을 가지고 있으며, 이 기간 동안 Macports를 통해 꽤 많은 패키지를 설치했습니다.
이제 Homebrew를 사용해 보고 싶지만 여기와 다른 곳에서 읽은 내용을 보면 Homebrew와 Macports의 기본 설치가 쉽게 공존할 수 없다는 것이 분명합니다.
일상적인 MacOSX 작업의 상당 부분이 Macports에 설치된 다양한 유틸리티를 사용하는 것과 관련되어 있기 때문에 Macports를 제거하는 것은 실행 가능한 옵션이 아닙니다. 게다가, 제가 직접 개발한 많은 유틸리티는 이제 Macports와 상호 의존적입니다. 그리고 마지막으로, 제가 일상적으로 사용하는 많은 실행 파일과 공유 라이브러리가 이제 /usr/local에 설치되어 있으며 해당 디렉토리 트리를 지우면 시스템을 빨리 사용할 수 없게 됩니다.
제 질문은 이것입니다. Macports와 공존할 수 있는 Homebrew를 설치하는 대체 방법을 생각해낸 사람이 있습니까? 특히 Homebrew가 /usr/local 대신 /usr/local/homebrew와 같은 디렉토리 트리를 활용하도록 만드는 방법을 알아낸 사람이 있습니까?
문서에 대한 제안이나 조언에 미리 감사드립니다.
답변1
Homebrew에게 자체 디렉터리를 사용하도록 지시한 다음 해당 디렉터리를 경로에 추가할 수 있습니다. 동일한 목적은 아니지만 설치 가이드에서 발췌한 내용은 다음과 같습니다.
다중 설치
tarball을 추출할 때마다 Homebrew 설치를 만듭니다. 어떤 Brew 명령이 호출되든 패키지가 설치되는 위치입니다. 예를 들어 /usr/local에 있는 시스템 libs 세트와 ~/homebrew에 있는 개발을 위해 조정된 공식과 같이 이것을 적절하다고 생각하는 대로 사용할 수 있습니다.
답변2
강제로 공존시키는 방법은 기본적으로 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 port
port
macports.sh something
편의를 위해 명령 자체와 동일한 이름을 가진 일부 스크립트를 , 등과 같은 HOME 디렉터리에 넣을 ~/bin
수 있습니다 ~/.local/bin
.
나는 썼다블로그 게시물한 달 전쯤이에요. 자세한 내용이 필요하면 읽어보셔도 됩니다.