J'essaie d'installer quelque chose et cela me lance une erreur: Permission denied
lorsque j'essaie d'exécuter make
dessus.
Je n'aime pas trop les règles universelles d'Unix/Linux et pas trop les droits des utilisateurs. Ma meilleure supposition est que l'utilisateur auquel je suis connecté n'a pas les privilèges pour exécuter les commandes make
, mais j'espère que c'est autre chose qui ne me permet pas d'installer.
Pourquoi ai-je Permission denied
et que dois-je vérifier ou configurer pour tenter d'obtenir l'autorisation?
ÉDITER
Message d'erreur:
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
Sur de nombreux packages source (par exemple pour la plupart des logiciels GNU), le système de construction peut connaître la variable DESTDIR
make, vous pouvez donc souvent faire:
make install DESTDIR=/tmp/myinst/
Sudo cp -va /tmp/myinst/ /
L'avantage de cette approche est que make install
n'a pas besoin de s'exécuter en tant que root, vous ne pouvez donc pas vous retrouver avec des fichiers compilés en tant que root (ou des fichiers appartenant à root dans votre arborescence de construction).
Nous donner tout le message d'erreur serait beaucoup plus utile. Si c'est pour make install, vous essayez probablement d'installer quelque chose dans un répertoire système et vous n'êtes pas root. Si vous avez un accès root, vous pouvez exécuter
Sudo make install
ou connectez-vous en tant que root et effectuez l'ensemble du processus en tant que root.
Exécutez chmod 777 -R scripts/
, ça a bien marché pour moi;)
Le problème est souvent lié à la configuration "sécurisée" des points de montage, tels que/tmp
S'ils sont montés noexec
(vérifiez avec cat /etc/mtab
et ou Sudo mount
), il n'y a pas d'autorisation pour exécuter des binaires ou créer des scripts à partir du dossier (temporaire).
Par exemple. à remonter temporairement:
Sudo mount -o remount,exec /tmp
Ou pour changer définitivement, supprimez noexec
dans /etc/fstab
J'ai eu un message d'erreur très similaire à vous, bien que répertoriant un fichier particulier:
$ 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
Dans mon cas, j'ai oublié d'ajouter une barre oblique de fin pour indiquer la continuation de la ligne comme indiqué:
${LINEDETECTOR_OBJECTS}:\
../HoughLineAccumulator/houghlineaccumulator.hh # <-- missing slash!!
../HoughLineExtractor/houghlineextractor.hh
J'espère que cela aide quelqu'un d'autre qui atterrit ici à partir d'un moteur de recherche.