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)

Другие вопросы по тегам