Який найкращий / найбезпечніший спосіб перевстановити Homebrew?


79

Я отримую проблеми з дозволами в Homebrew: Після того, як я встановив Node і спробував встановити npm за допомогою команди curl Homebrew каже вам використовувати, це не вдасться через помилки EACCESS. Я перевірив папку вузлів, і дозволи були: a) невідомі користувачеві (мені довелося його заблокувати) і b) Не мав дозволів на запис (мені довелося chmod 755 це).

Я виправив проблему з NPM, але мені довелося запустити скрипт встановлення як sudo (що погано!).

Я припускаю, що я мав встановити Homebrew як root або щось подібне. Я сподіваюся, що перевстановлення це виправить, але я не можу знайти джерело про те, як перевстановити Homebrew.

Коли я запускаю інсталятор у терміналі, я отримую:

/usr/local/.git already exists!

Я зробив ту ж помилку, запустивши заварку з коренем, вдалося вирішити проблему, виконавши sudo chown -R johndoe /usr/local/Libraryтаsudo chgrp -R admin /usr/local/Library
gerrytan

Я зіпсував свій скрипт / usr / local / bin / brew bash, буквально втратив код, який належав до цього сценарію, і повторний запуск сценарію встановлення виправив його.
Devin G Rhode

Відповіді:


40

Спробуйте запустити команду brew doctor і повідомте нам, який результат ви отримаєте


редагувати: А щоб відповісти на запитання щодо заголовка, це з їх поширених запитань :

Homebrew не пише файли поза префіксом. Отже, як правило, ви можете просто rm -rfвстановити папку.

Тож наступне, після чистої перевстановлення (дотримуючись останніх рекомендованих кроків), має бути найкращим вибором.


Єдина проблема - мій Xcode застарілий. Але після того, як я запустив `` brew install node '', дозволи в папці node_modules вже не працювали. Я додаю це до свого запитання, тому що, можливо, я шукаю неправильну відповідь.
AndrewKS

Хм, так, що потенційно може викликати власні проблеми. Чи є причина не оновлювати Xcode (і інструменти командного рядка для Xcode)?
kayge

Це дуже маленький стрибок - приблизно з 3.2.4 до 3.2.6, і я не мав часу та пропускної здатності, щоб завантажити цілий 4 Гб файл (буде зроблено протягом ночі сьогодні ввечері)
AndrewKS

Питання щодо вашої відповіді - а як щодо бочок? Схоже, якщо я просто rm -rf кеги, там буде купа непрацюючих символічних посилань. Напр. 'який вузол' повертає '/ usr / local / bin / node', що є символічним посиланням на команду вузла в Підвалі Homebrew.
AndrewKS

1
Зверніть увагу, що "папка, в якій ви її встановили", як правило /usr/local, є , і користувач цілком міг встановити там інші речі, крім Homebrew, оскільки це стандартне місце для встановлення власних утиліт Unix. Я спеціально встановлюю Homebrew у власний /usr/homebrewкаталог, щоб його було легко видалити та відновити, але brew doctorпопереджаю, що нестандартне місце встановлення може спричинити проблеми. Все йде нормально.
Нельсон,

108

Оновлення 10/11/2020, щоб відобразити останні зміни у варінні.

Brew вже надає команду на самовидалення:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"

Якщо вам не вдалося запустити цю команду через дозвіл (наприклад, запустити як другого користувача), запустіть знову за допомогою sudo

Потім ви можете встановити знову:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

jenkins $ ruby ​​-e "$ (curl -fsSL raw.githubusercontent.com/Homebrew/install/master/install )" Цей сценарій вимагає, щоб користувач був адміністратором. jenkins $ sudo ruby ​​-e "$ (curl -fsSL raw.githubusercontent.com/Homebrew/install/master/install )" Пароль: Не запускайте це як root!
Sazzad Hissain Khan

Istalling дав помилку "Цей сценарій вимагає, щоб користувач був адміністратором". Хоча користувач вже є адміністратором. Будь ласка, допоможіть.
Sazzad Hissain Khan

Це має бути відповідь!
trusktr

4
Варто зазначити: запуск скрипта видалення повністю обнулить все, що ви коли-небудь використовували для встановлення Homebrew.
Адріан

1
Наведена вище команда встановлення застаріла. Спробуйте/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Anggrayudi H

49

Процес полягає в очищенні, а потім перевстановленні за допомогою наступних команд:

rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )"

Примітки:


3
Цього мені було майже достатньо. Мені також довелося бігати: brew doctor І слідувати його порадам, які включали біг brew prune . Крок чорносливу в моєму випадку був найважливішим. Очевидно, очищення пива не видалило всі мертві символічні посилання з / usr / local / bin, і brew install inkscapeв результаті це дійсно заплуталося.
швидко

1
URL-адресу встановлення змінено на: raw.githubusercontent.com/Homebrew/install/master/install
Себастьян Н.

помилка, This script requires the user to be an Administrator.хоча користувач вже є адміністратором. Чи можете ви допомогти?
Sazzad Hissain Khan

Це дивно. У мене встановлено HomeBrew, і команда brew працює, але у мене немає папки Cellar.
Nijat2018,

1
посилання для встановлення також тепер використовує bash:bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
kip2

10

Для Mac OS X Mojave та новіших версій

Щоб видалити Homebrew, виконайте таку команду:

sudo ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

Щоб встановити Homebrew, виконайте таку команду:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

І якщо ви зіткнетеся з проблемою відмови у дозволі, спробуйте запустити цю команду, а потім команду встановити ще раз:

sudo chown -R $(whoami):admin /usr/local/* && sudo chmod -R g+rwx /usr/local/*

1
згідно з посиланням для встановлення на raw.githubusercontent.com/Homebrew/install/master/install , тепер вони використовують bash замість ruby -e, тому команда встановлення тепер:bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
kip2

Все одно довелося видалити / usr / local / Homebrew, щоб повністю видалити.
Justin Geeslin

9

Спосіб переінсталювати Homebrew - повністю видалити його та розпочати спочатку. Homebrew FAQ має посилання на сценарій оболонки для видалення самогону.

Якщо єдине, що ви встановили, /usr/localце сам доморощений, ви можете просто rm -rf /usr/local/* /usr/local/.gitочистити його. Але /usr/local/це стандартний каталог Unix для всіх додаткових двійкових файлів, а не лише для Homebrew, тому у вас можуть бути встановлені інші речі. У такому випадку uninstall_homebrew.shкраща ставка. Обережно видаляти лише файли homebrew, а решту залишати в спокої.


Я рекомендую прочитати посилання на поширені запитання про Homebrew, наведене вище, має добре написану документацію про те, як найкраще та безпечніше перевстановити.
Atari

Посилання на сторінку поширених запитань порушено, це мало б мати більше шансів вижити: docs.brew.sh/FAQ
Олександр Фортін

1

Для мене цей працював без доступу sudo.

ruby -e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )"

Щоб отримати докладнішу інформацію, перейдіть за посиланням https://gist.github.com/mxcl/323731

введіть тут опис зображення


Ні, мені потрібно бути адміністратором, щоб запустити це (на момент коментаря)
Джей,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.