Почему мне отказывают в разрешении, когда я пытаюсь использовать «make» для установки чего-либо? - PullRequest
18 голосов
/ 02 февраля 2012

Я пытаюсь что-то установить и выдает ошибку: Permission denied, когда я пытаюсь запустить make на нем.

Я не слишком люблю универсальные правила unix /linux и тоже не слишком любит права пользователей.Мое предположение заключается в том, что пользователь, вошедший в систему под учетной записью, не имеет прав на запуск команд make, но, надеюсь, это что-то еще, что не позволяет мне установить.и что я должен проверить или настроить, чтобы попытаться получить разрешение?

РЕДАКТИРОВАТЬ

Сообщение об ошибке:

gcc -I. -O3 -o pp-inspector  pp-inspector.c
make: execvp: gcc: Permission denied
make: [pp-inspector] Error 127 (ignored)
gcc -I. -O3 -c tis-vnc.c -DLIBOPENSSL -DLIBOPENSSLNEW -DLIBIDN -DHAVE_PR29_H -DLIBMYSQLCLIENT -DLIBPOSTGRES -DHAVE_MATH_H -I/usr/include/mysql
make: execvp: gcc: Permission denied
make: *** [tis-vnc.o] Error 127

Ответы [ 5 ]

14 голосов
/ 02 февраля 2012

Во многих исходных пакетах (например, для большинства программ GNU) система сборки может знать о переменной DESTDIR make , поэтому вы часто можете делать:

 make install DESTDIR=/tmp/myinst/
 sudo cp -va /tmp/myinst/ /

Преимущество этого подхода в том, что make install не нужно запускать с правами root, поэтому вы не можете получить файлы, скомпилированные как root (или файлы, принадлежащие пользователю root, в вашем дереве сборки).

8 голосов
/ 02 февраля 2012

Дать нам полное сообщение об ошибке было бы гораздо полезнее. Если это для make install, то вы, вероятно, пытаетесь установить что-то в системный каталог и не являетесь пользователем root. Если у вас есть root-доступ, вы можете запустить

sudo make install

или войдите в систему как root и выполните весь процесс как root.

6 голосов
/ 05 августа 2014

Выполнить chmod 777 -R scripts/, у меня все работало нормально;)

5 голосов
/ 02 января 2014

Проблема часто связана с «безопасной» настройкой точек монтирования, таких как / tmp

Если они смонтированы noexec (проверьте с помощью cat /etc/mtab и или sudo mount), тогда нет разрешения навыполнять любые двоичные файлы или сценарии сборки из (временной) папки.

Например, для временного перемонтирования:

 sudo mount -o remount,exec /tmp

Или для постоянного изменения удалить noexec в /etc/fstab

3 голосов
/ 18 марта 2013

У меня было очень похожее сообщение об ошибке, хотя вы указали конкретный файл:

$ make
make: execvp: ../HoughLineExtractor/houghlineextractor.hh: Permission denied
make: *** [../HoughLineAccumulator/houghlineaccumulator.o] Error 127

$ sudo make
make: execvp: ../HoughLineExtractor/houghlineextractor.hh: Permission denied
make: *** [../HoughLineAccumulator/houghlineaccumulator.o] Error 127

В моем случае я забыл добавить косую черту, чтобы указать продолжение строки, как показано:

${LINEDETECTOR_OBJECTS}:\
    ../HoughLineAccumulator/houghlineaccumulator.hh  # <-- missing slash!!
    ../HoughLineExtractor/houghlineextractor.hh

Надеюсь, что это поможет кому-то еще, кто приземлится здесь из поисковой системы.

...