Cygwin (в Windows) - Отказано в доступе - Невозможно скомпилировать
Я пытаюсь собрать и установить libYAML в соответствии с инструкциями на их сайте> http://pyyaml.org/wiki/LibYAML
- ./configure > успешно
- сделать > успешным
- сделать установку > не удалось
Я получаю следующую ошибку "не могу создать каталог" /usr/local/include': "Отказано в доступе". Увидеть ниже:
PS Я работаю как администратор.
JetBlue@JetBlue-Laptop ~/yaml-0.1.4
$ make install
Making install in include
make[1]: Entering directory `/home/JetBlue/yaml-0.1.4/include'
make[2]: Entering directory `/home/JetBlue/yaml-0.1.4/include'
make[2]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/include" || /usr/bin/mkdir -p "/usr/local/include"
/usr/bin/mkdir: cannot create directory `/usr/local/include': Permission denied
Makefile:235: recipe for target `install-nobase_includeHEADERS' failed
make[2]: *** [install-nobase_includeHEADERS] Error 1
make[2]: Leaving directory `/home/JetBlue/yaml-0.1.4/include'
Makefile:356: recipe for target `install-am' failed
make[1]: *** [install-am] Error 2
make[1]: Leaving directory `/home/JetBlue/yaml-0.1.4/include'
Makefile:343: recipe for target `install-recursive' failed
make: *** [install-recursive] Error 1
Как разрешить эту ошибку "отказано в разрешении"?
Спасибо за ваше время.
Обновление -> Решение
Похоже, что для того, чтобы обойти эту ошибку "отказано в разрешении", вам нужно быть не только администратором, но и администратором, который изначально установил Cygwin. (Они единственные, кто может свободно редактировать файлы в каталоге / usr / local / Cygwin).
Отсюда и моя проблема. Хотя я был администратором, у меня все еще не было прав на редактирование каталога.
Итак... Сейчас я просто использую этот аккаунт для разработки -_- (сейчас слишком много работы, чтобы начать играть с sudos и т. Д.)
PS Я не уверен, говорил ли это Яаков...
2 ответа
Проверьте ваши разрешения в /usr/local или перекомпилируйте с другим --prefix, у которого есть права на запись.
Но вы должны знать, что эта библиотека уже доступна в дистрибутиве Cygwin; установите libyaml-devel и его зависимости, чтобы использовать его.
Если вы установили CygWin с опцией "для всех пользователей", то /usr/local будет системной папкой. Поэтому обычные пользователи не могут просто написать в него (через make install
).
Решение:
иметь обычную оболочку Cygwin. Там вы делаете
./configure
делать
PWD
Запустите другую оболочку cygwin с правами администратора (нажмите на иконку). Там вы cd
в папку, которую вы назвали make (см. вывод его pwd
команда).
сделать установку
это будет иметь права администратора для записи в /usr/local.
Конечно, вы также можете перенаправить цель установки в место обычного пользователя с
./configure --prefix = users_own_cygwin_installation_destination_folder
(Но последнее для новичков Cygwin почти всегда плохая идея - вы должны делать это только в том случае, если знаете, что делаете, особенно перенастройте настройки среды / PATH)