![強迫 Homebrew 和 Macports 共存?](https://rvso.com/image/1303084/%E5%BC%B7%E8%BF%AB%20Homebrew%20%E5%92%8C%20Macports%20%E5%85%B1%E5%AD%98%EF%BC%9F.png)
我有一個 MacOSX 系統,我已經使用了很多年了,在這段時間裡,我透過 Macports 安裝了相當多的軟體包。
我現在想嘗試 Homebrew,但從我在這裡和其他地方讀到的內容可以清楚地看出,Homebrew 和 Macports 的預設安裝不能輕易共存。
對我來說,卸載 Macports 不是一個可行的選擇,因為我的日常 MacOSX 工作涉及使用各種 Macports 安裝的實用程式。此外,我自己的許多本土實用程式現在與 Macports 相互依賴。最後,我經常使用的許多可執行檔和共用程式庫現在都安裝在 /usr/local 下,如果我清除該目錄樹,我的系統很快就會變得無法使用。
所以我的問題是:有沒有人想出一個可以與 Macports 共存的替代方法來安裝 Homebrew?具體來說,有沒有人弄清楚如何讓 Homebrew 使用目錄樹,例如 /usr/local/homebrew 而不是 /usr/local?
預先感謝您提供任何建議或指向文件的指示。
答案1
您可以告訴 Homebrew 使用它自己的目錄,然後將其添加到路徑中。儘管目的不同,但安裝指南的摘錄告訴我們:
多次安裝
無論您在哪裡提取 tarball,都創建一個 Homebrew 安裝。無論調用哪個brew 命令,軟體包都將安裝在其中。您可以根據需要使用它,例如 /usr/local 中的系統庫集和 ~/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
will runwrapped port
。
為了方便起見,您可以放入macports.sh something
一些與命令本身同名的腳本並將其放在您的 HOME 目錄中,例如~/bin
、~/.local/bin
等。
我寫過一篇博文關於這件事一個月前。如果您需要查看詳細信息,可以閱讀它。