Невозможно создать символическую ссылку внутри /usr/bin, даже если sudo
Когда я пытаюсь символизировать бинарный файл в моей /usr/bin папке, я получаю операцию с недопустимой ошибкой:
sudo ln -s /usr/bin/python2.7 /usr/bin/python2
ln: /usr/bin/python2: Operation not permitted
Даже в случае sudo, я получаю эту ошибку.
Ответы
Ответ 1
El Capitan new Функция защиты целостности системы предотвращает изменения нескольких основных частей OS X, включая большинство /usr, даже root. Локальные настройки, например, то, что вы делаете, вместо этого принадлежат /usr/local./usr/local/bin по умолчанию не существует, но вы можете создать его и поместить в него пользовательские двоичные файлы (и символические ссылки):
sudo mkdir -p /usr/local/bin
sudo ln -s /usr/bin/python2.7 /usr/local/bin/python2
(Обратите внимание, что в то время как /usr/local/bin по умолчанию не существует, он находится в PATH по умолчанию, поэтому, как только вы его создадите, он будет искать команды.)
Также можно отключить защиту целостности системы, но обычно лучше оставить ее и настроить в более подходящих местах. См. этот вопрос apple.SE для более подробной информации.
Ответ 2
Я создал символическую ссылку для Sublime Text 3 в Mac OS High Sierra как
sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/
Я также пытался создать символическую ссылку в "/usr/bin" и получал операцию "Не разрешено".
Затем я создал символическую ссылку в "/usr/local/bin", и не было ошибки. Символическая ссылка работает нормально. Просто убедитесь, что "/usr/local/bin" находится в пути.
Таким образом, доступ к "/usr/bin" ограничен.
Ответ 3
Перезапустить систему → долгое нажатие cmd + R.
выберите терминал из меню утилит
введите следующую команду csrutil disable
закрыть терминал и перезапустить систему.