8

У меня недавно была проблема, когда все мои связанные двоичные файлы были удалены из /usr/local/bin/ . К счастью, большинство из них были просто динамическими ссылками на двоичные файлы, установленные с Homebrew, поэтому после переустановки Homebrew мне нужно вернуть их обратно. Есть ли способ принудительно переустановить все установленные пакеты и двоичные файлы с помощью Homebrew? Может быть, передать вывод brew list Brew в brew reinstall?

4 ответа4

24

Это так просто:

$ brew list | xargs brew reinstall

Вам не нужно ничего удалять, потому что это может привести к потере настроек и настроек.

1

Я столкнулся с необходимостью после обновления до OSX High Sierra. У большинства пакетов для варки не было дилибов. Закончилось написание быстрого и грязного скрипта, который аккуратно удаляет и заменяет по одному, игнорируя зависимости, поэтому вы не выполняете принудительную чистку. Вам нужно исправить каждую точку остановки, но она поднимается с того места, где остановилась, поэтому это не слишком больно.

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
0

Вы можете сначала удалить все пакеты, а затем снова установить все ....

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

Что-то вроде

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

должен сделать трюк (если вы не установили с кранов, то это может потребовать дополнительной работы).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .