何かをインストールしようとしていますが、エラーがスローされます: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
多くのソースパッケージ(たとえば、ほとんどのGNUソフトウェア)の場合、ビルドシステムはDESTDIR
make変数を知っている可能性があります。
make install DESTDIR=/tmp/myinst/
Sudo cp -va /tmp/myinst/ /
このアプローチの利点は、make install
はルートとして実行する必要がないため、ルートとしてコンパイルされたファイル(またはビルドツリーのルート所有ファイル)で終わることはありません。
エラーメッセージ全体を提供する方がはるかに便利です。 make installの場合は、おそらくシステムディレクトリに何かをインストールしようとしていて、rootではありません。ルートアクセスがある場合は、実行できます
Sudo make install
または、ルートとしてログインし、プロセス全体をルートとして実行します。
実行chmod 777 -R scripts/
、それは私のためにうまくいった;)
問題は、/ tmpなどのマウントポイントの「安全な」セットアップによくあります。
noexec
(cat /etc/mtab
およびSudo mount
で確認)がマウントされている場合、(一時)フォルダー内からバイナリを実行したり、スクリプトをビルドしたりする権限はありません。
例えば。一時的に再マウントするには:
Sudo mount -o remount,exec /tmp
または、永続的に変更するには、/etc/fstab
のnoexec
を削除します
特定のファイルをリストしていますが、私はあなたと非常に似たエラーメッセージがありました:
$ 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
検索エンジンからここに着く誰かを助けることを願っています。