Подтвердить что ты не робот

Почему я получаю разрешение, когда я пытаюсь использовать "make" для установки чего-то?

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

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

Почему я получаю Permission denied и что мне нужно проверить или настроить, чтобы попытаться получить разрешение?

ИЗМЕНИТЬ

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

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
4b9b3361

Ответ 1

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

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

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

Ответ 2

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

sudo make install

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

Ответ 3

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

Ответ 4

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

$ 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

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

Ответ 5

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

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

например. временно перемонтироваться:

 sudo mounte -o remount,exec /tmp

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