Diferencia entre "make install" y "sudo make install"

15

A veces encuentro problemas con el uso make installque me da un permission deniederror al escribir en algunas carpetas. Tan instintivamente lo uso sudo make install. ¿Esto introducirá problemas adicionales?

Estoy usando Debian Etch.

lokheart
fuente

Respuestas:

16

Evite realizar instalaciones locales en los directorios del sistema. Los directorios del sistema, por ejemplo /usr, están reservados para que los use el sistema de administración de paquetes. Por definición, si lo está haciendo, make installsignifica que está realizando una instalación local, y si necesita hacerlo, sudo make installsignifica que no tiene permiso para donde quiera que esté escribiendo.

Por lo tanto, si obtiene errores de permisos con make install, verifique y vea si está intentando instalar en los directorios del sistema, e instale en su lugar /usr/localo similar. /usr/localestá reservado para instalaciones locales. Es posible que deba darse permiso para escribir /usr/local, pero esto generalmente se hace fácilmente. En Debian, esto se puede hacer agregándose al staffgrupo. Mejor aún, encuentre o cree un paquete binario e instálelo en su lugar. De esa manera, puede realizar un seguimiento de los paquetes instalados y obtener los otros beneficios de la administración de paquetes.

Tenga en cuenta que, por el contrario, el sistema de administración de paquetes no se instala /usr/localsegún el FHS. Consulte la Sección 9.1 del Manual de políticas de Debian: jerarquía del sistema de archivos para obtener una descripción general.

Faheem Mitha
fuente
3

Aquí hay un resumen básico de los comandos es la pregunta:

  • sudo- ejecuta un comando como root
  • make- ejecuta un script para construir desde la fuente

Dado que el comando sudo ejecuta el comando, lo pasa como root, significa que el comando make tiene privilegios de superusuario. Esto significa que si el archivo MAKE es malicioso, o cualquiera de los scripts que puede llamar es malicioso, podría comprometer su sistema.

En resumen, si no confía en el software, no lo instale. Si confías en el software, ejecutarlo como root no debería dañar nada.

Nota:

sudo make installes lo mismo que su; make installen la mayoría de los casos.

beatgammit
fuente
3
Tenías razón para terminar con "en la mayoría de los casos". Aquí hay un caso de esquina.
Ederag
3

Como se ha respondido anteriormente, le sudo make installpermite instalar los archivos en directorios que de otro modo serían de solo lectura para usted como usuario.

El problema que puedo prever es que en una fecha posterior es posible que desee desinstalar o actualizar el programa. Si todavía tiene el árbol del directorio del código fuente make uninstall, a desinstalará el programa por usted, pero si, como muchos otros usuarios típicos, ha eliminado el árbol del directorio del código fuente, no tendrá suerte. Y dado que no ha instalado el programa utilizando un sistema de administración de paquetes, es posible que tampoco pueda desinstalar el programa de esa manera.

La mejor manera de instalar dichos programas puede ser instalarlos en su directorio de inicio. Pase la opción --prefix=/home/<user>/<some>/<directory>a ./configure. Esto le permitirá usar en make installlugar de sudo make installya que /home/<user>/<some>/<directory>puede escribirlo. También la desinstalación es muy fácil.rm -rf /home/<user>/<some>/<directory>

latexnewbie
fuente