web-dev-qa-db-fra.com

Pourquoi la permission est-elle refusée lorsque j'essaye d'utiliser "make" pour installer quelque chose?

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
20
CheeseConQueso

Sur de nombreux packages source (par exemple pour la plupart des logiciels GNU), le système de construction peut connaître la variable DESTDIRmake, 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).

14

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.

8
Jarryd

Exécutez chmod 777 -R scripts/, ça a bien marché pour moi;)

7
D3473R

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

5
sehe

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.

3
Drew Noakes