2012-02-02 18 views
13

Estoy tratando de instalar algo y me está arrojando un error: Permission denied cuando intento ejecutar make en él.¿Por qué obtengo permiso denegado cuando trato de usar "make" para instalar algo?

No soy muy aficionado a las reglas universales de unix/linux y tampoco me gustan los derechos de usuario. Mi mejor opción es que el usuario en el que estoy conectado no tenga los privilegios para ejecutar los comandos make, pero espero que sea otra cosa que no me permita instalarlo.

¿Por qué obtengo Permission denied y qué debo comprobar o configurar para poder otorgar el permiso?

de texto Mensaje de

error:

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 
+0

ejecuta como sudo? –

+0

intenté, pero obtuve el mismo error que en el primer comentario a la respuesta de Jarryd – CheeseConQueso

Respuesta

11

En muchos paquetes fuente (por ejemplo, para la mayoría del software GNU), el sistema de construcción puede saber acerca de la DESTDIRhacen variable, por lo que a menudo puede hacer:

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

La ventaja de este enfoque es que make install no es necesario que se ejecute como root, por lo que no puede terminar con los archivos compilados como raíz (o los archivos propiedad de la raíz en el árbol de compilación).

7

Dándonos todo el mensaje de error sería mucho más útil. Si es para make install, probablemente estés intentando instalar algo en un directorio de sistema y no eres root. Si usted tiene acceso a la raíz continuación, puede ejecutar

sudo make install 

o inicie una sesión como raíz y hacer todo el proceso como root.

+0

gracias, actualicé mi pregunta y también intenté 'sudo' pero obtuve el mensaje de error' ccq no puede ejecutar sudo en cpanel03' – CheeseConQueso

+1

supongo que tengo la respuesta a mi pregunta ahora – CheeseConQueso

+0

Así que está diciendo que no está permitido ejecutar gcc. Parece que estás en una instalación de panel de control, es posible que incluso no puedas ejecutar gcc. – Jarryd

3

que tenía un mensaje de error muy similar ya que, a pesar de la inclusión de un archivo en particular:

$ 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 

En mi caso, se me olvidó añadir una barra al final para indicar la continuación de la línea como se muestra:

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

Espero que ayude a alguien más que aterrice aquí desde un motor de búsqueda.

2

El problema es con frecuencia con la configuración de 'seguro' de los puntos de montaje, como/tmp

Si se montan noexec (consulte con cat /etc/mtab y o sudo mount), entonces no hay permiso para ejecutar cualquier binario o scripts de creación de dentro de la carpeta (temporal).

E.g. para volver a montar temporalmente:

sudo mounte -o remount,exec /tmp 

O para cambiar de forma permanente, retire noexec en /etc/fstab

7

Ejecutar chmod 777 -R scripts/, funcionó bien para mí;)

Cuestiones relacionadas