Роки тому ви могли втекти з запуском brewяк root, просто подавши brewкорінь, але вони вилучили цю функцію. Тож у Homebrew 1.1.6 я використовував редагування, /usr/local/Homebrew/Library/Homebrew/brew.shщоб видалити кореневу перевірку (та, яка сказала, що це "надзвичайно небезпечно"), щоб я міг запустити brewяк root.
Більш нова версія Homebrew все ще працює з цим, але продовжує повертати brew.shфайл кожен раз після запуску brew, навіть якщо я chmod 500його. Я можу написати сценарій, щоб змінити його, а потім запустити brewавтоматично, але я не впевнений, чи завжди це спрацює і не хочу ризикувати. Хтось знайшов інший метод для запуску Homebrew як root?
sudoзапускає його як root, і це дає мені таку саму "надзвичайно небезпечну" помилку. Я хочу запустити як root, тому що в іншому випадку виникають проблеми з установкою певних пакетів, особливо якщо щось було встановлено не через Homebrew (наприклад, через pip). Я багато разів спускався по цьому маршруту. Плюс це не працює належним чином для декількох користувачів без дивних способів вирішення, якщо я не встановлю все як root.
rootсамо ризиковано. Навіть будуючи пакет без менеджера пакунків, ви створили б його як непривілейований користувач (ви самі), а потім встановите пакет, як і rootу випадку sudo. Менеджери пакунків, такі як Fink та MacPorts, створюють разом із власними непривілейованими користувачами, а потім встановлюють як root. У домашнього мовлення такого механізму немає.
brew.shфайл повертається після зміни його, а потім виконання brewкоманди. Тож я можу бігати sudo brew whateverі brew whateverв тандемі просто чудово. Мій brew --versionвихід наступним чином: Homebrew 1.2.1-98-g803f9cbf7b-dirty Homebrew/homebrew-core (git revision d3d6; last commit 2017-05-28) FYI, я змінив мій brew.shфайл закоментуйте всі рядки в check-run-command-as-rootфункції і помістив один returnоператор у верхній частині функції замість.
brewкорінь? Крім того,sudoнедостатньо для ваших цілей?