Ответ 1
sudo mkdir /usr/local/Frameworks
sudo chown $(whoami):admin /usr/local/Frameworks
brew link python3
Когда я попытался установить python на homebrew, он загрузил его, а затем в конце появилось сообщение об ошибке, которое остановило его завершение. Когда я пытаюсь сделать это снова, он просит меня сделать:
$ brew link python
После ввода появляется то же сообщение об ошибке:
permission denied @ dir_s_mkdir - /usr/local/lib
Я пытался сделать:
$ sudo chown -R $(whoami) /usr/local
И я получаю сообщение об ошибке, которое гласит:
chown: /usr/local: операция не разрешена
sudo mkdir /usr/local/Frameworks
sudo chown $(whoami):admin /usr/local/Frameworks
brew link python3
Я пробовал и имел такой же (я думаю) вывод:
Error: An unexpected error occurred during the 'brew link' step
The formula built, but is not symlinked into /usr/local
Permission denied @ dir_s_mkdir - /usr/local/Frameworks
Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks
Поэтому я создал каталог /usr/local/Frameworks как root, а затем изменил право собственности:
sudo mkdir /usr/local/Frameworks && chown $USER:admin /usr/local/Frameworks
Я попытался снова brew install python
:
Warning: python 2.7.14 is already installed, it just not linked.
You can use 'brew link python' to link this version.
И затем brew link python
:
Linking /usr/local/Cellar/python/2.7.14... 26 symlinks created
Теперь в каталоге /usr/local/Frameworks/Python.framework/Я вижу ссылки, например:
lrwxr-xr-x 1 niquit admin 62 Dec 8 21:41 /usr/local/Frameworks/Python.framework/Headers -> ../../Cellar/python/2.7.14/Frameworks/Python.framework/Headers/
lrwxr-xr-x 1 niquit admin 61 Dec 8 21:41 /usr/local/Frameworks/Python.framework/Python -> ../../Cellar/python/2.7.14/Frameworks/Python.framework/Python*
lrwxr-xr-x 1 niquit admin 64 Dec 8 21:41 /usr/local/Frameworks/Python.framework/Resources -> ../../Cellar/python/2.7.14/Frameworks/Python.framework/Resources/
В вашем случае я предлагаю создать вручную /usr/local/lib:
sudo mkdir /usr/local/lib && chown $USER:admin /usr/local/lib
A сделал тест mv/usr/local/lib{,.orig}
, и я получил:
Error: An unexpected error occurred during the 'brew link' step
The formula built, but is not symlinked into /usr/local
Permission denied @ dir_s_mkdir - /usr/local/lib
Error: Permission denied @ dir_s_mkdir - /usr/local/lib
Как и до того, как я создал вручную каталог sudo mkdir/usr/local/lib && chown $USER:admin/usr/local/lib
и успешно сделал brew link python
:
Linking /usr/local/Cellar/python/2.7.14... 324 symlinks created
Теперь я могу найти некоторые ссылки:
lrwxr-xr-x 1 niquit admin 54 Dec 8 22:01 python-2.7.pc -> ../../Cellar/python/2.7.14/lib/pkgconfig/python-2.7.pc
lrwxr-xr-x 1 niquit admin 50 Dec 8 22:01 python.pc -> ../../Cellar/python/2.7.14/lib/pkgconfig/python.pc
lrwxr-xr-x 1 niquit admin 51 Dec 8 22:01 python2.pc -> ../../Cellar/python/2.7.14/lib/pkgconfig/python2.pc
Я думаю, что Apple после последнего обновления увеличила безопасность, поэтому его невозможно создать в каталоге /usr/without root.
/usr/local
больше нельзя кормить в High Sierra. Вместо этого используйте
sudo chown -R $(whoami) $(brew --prefix)/*
sudo mkdir /usr/local/Frameworks
sudo chown $USER /usr/local/Frameworks
А затем попробуйте переустановить Python. Это работало абсолютно нормально для меня.
Устранение и выполнение чистой установки homebrew устранит проблему.
Запустите это и следуйте его рекомендациям:
brew doctor
В моем случае он хотел, чтобы я бежал:
sudo mkdir -p /usr/local/sbin /usr/local/Frameworks
sudo chown -R $(whoami) /usr/local/sbin /usr/local/Frameworks
В моем случае с MacOS 10.14 свежая установка на новую машину:
brew doctor
И это предполагает:
sudo mkdir -p /usr/local/lib /usr/local/sbin
sudo chown -R $(whoami) /usr/local/lib /usr/local/sbin
Я переустановил пиво и исправил проблему.
для удаления используйте следующую команду.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
и снова установить варево.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew doctor
Эта команда, как предложил Крис выше в комментариях, разрешила почти ВСЕ мои проблемы с домашним пивом, работающие на Mac Mini 2011 5,1 с неофициально работающей MacOS Mojave. Просто введите это и следуйте всем указаниям, которые печатает терминал
Как уже упоминалось, при помощи henrikstroem обратные ссылки могут быть полезны, и, как упоминалось в bnaecker, специальные атрибуты также могут препятствовать процессу.
Вы также можете попробовать запустить команду непосредственно с правами root, чтобы увидеть, будут ли лучшие результаты, выполнив sudo su -
и затем chown -R username/usr/local
Но вы уверены, что это действительно то, что вы хотите? Возможно, было бы более интересно создать группу, которая имеет доступ к ней (например, chown -R originaluser:group/usr/local
, установить права, которые вы хотите, и/или сделать свою пользовательскую часть этой группы.
macOS предоставляет несколько способов управления доступом к файлам, помимо традиционных разрешений для пользователя, группы и других. Это включает списки управления доступом (ACL), флаги файлов, расширенные атрибуты (xattrs) и, в последнее время, защиту целостности системы Apple.
Я ls -lO/usr/
что если вы запустите ls -lO/usr/
, чтобы перечислить флаги, вы увидите uchg
перед /usr/local
, который инструктирует систему сделать файл неизменным любым пользователем. (u
в uchg
означает, что владелец файла может изменить этот флаг. Ни владелец, ни какой-либо другой пользователь не могут изменять сам файл.)
Чтобы решить проблему, сначала нужно удалить флаг, запустив: chflags nouchg/usr/local
. Это должно удалить флаг uchg
, который вы должны снова проверить с помощью ls -lO
. Если установлен другой флаг, например schg
, используйте noschg
или no<flag>
в общем, но вам понадобятся команды sudo
когда флаг начинается с s
.
На этом этапе вам все равно придется chown
каталог, используя sudo chown -R $(whoami)/usr/local
. Теперь вы должны владеть каталогом, а инструменты Homebrew должны работать нормально.
Я просто сделал это, и все получилось нормально:
sudo touch /usr/local/Frameworks
brew link python