題 如何重新安裝與Homebrew一起安裝的所有軟件包?


我最近有一個問題,我的所有鏈接二進製文件都被刪除了 /usr/local/bin/。幸運的是,其中大多數只是與Homebrew一起安裝的二進製文件的動態鏈接,因此在重新安裝Homebrew後我需要將它們取回。有沒有辦法用Homebrew強制重新安裝所有已安裝的軟件包和二進製文件?也許管道輸出 brew list 成 brew reinstall


7
2017-10-22 14:41


起源




答案:


就這麼簡單:

$ brew list | xargs brew reinstall

您無需卸載任何內容,因為這樣做可能會丟失您的設置和配置。


20
2017-11-02 03:48



我不得不刪除一些問題公式,但這樣做了。謝謝! - JAL


升級到OSX High Sierra之後我遇到了這個需求。大多數釀造包裝都是失敗的dylibs。 結束編寫一個快速而臟的腳本,一次乾淨地刪除和替換一個,忽略依賴關係,這樣就不會強制批量清除。 你需要修理每個停止點,但它會從它停止的地方開始,所以它不會太痛苦。

YMMV一如既往

#!/bin/bash -e
if [ "$1" == "-h" ] ; then
    cat <<EOT
    Remove & reinstall all brew owned packages
    Fail on error to allow manual fixing
    Accept package name as arg1 to spec pick up point.
        $0 [<pickup point>]
    eg:
        $0
    or
        $0 ctags
            where <ctags> is the package to start from
EOT
    exit 1
fi

for l in $(brew list) ; do
    if [ "$1" ] ; then
        if [[ $l < $1 ]] ; then
            echo "skipping $l"
            continue
        fi
    fi
    echo "Remove $l"
    brew uninstall --ignore-dependencies $l 
    echo "Re-add $l"
    brew install $l
done

1
2017-11-15 00:16





您可以先刪除所有包,然後重新安裝....

$ brew tap beeftornado/rmtree && brew install brew-rmtree
$ brew rmtree <package>

0
2017-10-22 15:18



我可以,但後來我必須手動輸入每個包名 brew list。我需要一個自動拉出的自動化解決方案 brew list 並重新安裝所有包。 - JAL


就像是

cd /tmp
brew list -1 >brew-list
# do whatever is necessary to remove packages
while read package; do
    brew install $package
done <brew-list

應該做的伎倆(除非你從水龍頭安裝,然後它可能需要更多的工作)。


0
2017-10-22 15:29