¿Por qué falla `sudo make install` con una "reubicación no reconocida"?

¿Por qué falla `sudo make install` con una "reubicación no reconocida"?

Esta es una publicación de preguntas y respuestas, destinada a personas que se encuentran con el mismo problema.

Este problema sólo ocurre cuando se utiliza una cadena de herramientas separada (gcc, binutils, libtool) que no está en la ruta estándar.

es decir, which gccproporciona una ubicación que no figura en la lista

sudo env | grep -w "PATH="

Esto fue necesario para compilar octave-4.2 en OpenSUSE 13.2 (el gcc estándar era demasiado antiguo).

En un sistema estándar, donde solo hay una cadena de herramientas y esta cadena de herramientas está en la ruta estándar, sudo make installfunciona bien.

Aquí está el error, en sudo make install:

libtool: warning: relinking 'Magick++/lib/libGraphicsMagick++.la'
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld:
Magick++/lib/.libs/Magick___lib_libGraphicsMagick___la-Image.o: unrecognized relocation (0x2a) in section `.text'
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
libtool: error: error: relink 'Magick++/lib/libGraphicsMagick++.la' with the above command before installing it

Respuesta1

Aquí está la razón por la cual:

El punto era que los pasos configurey makefuncionaban porque se PATHanteponía a la ubicación de la cadena de herramientas (por ejemplo gcc, )

Perosudono propaga las variables. Por lo tanto, sudo make installejecutó comandos con la cadena de herramientas incorrecta (la anterior, gccpor ejemplo).

Una solución es simplemente usarsu

su
# make install

información relacionada