
Soy nuevo en los sistemas basados en Ubuntu/Linux. Necesito compilar libpng 1.6.14 para analizar uno de sus binarios. Estoy corriendo:
tar -xvf libpng-1.6.14.tar.xz
cd libpng-1.6.14
sudo bash configure --prefix=/usr/local/libpng //is running fine without errors
sudo make install
Esto es lo que obtengo:
Encontré un problema similaraquí en Stack Overflow
Intenté manipular el archivo "libtool" pero sin éxito. ¿Alguna sugerencia?
Respuesta1
Bien, entonces el problema parece deberse a que lo proporcionado ./libtool
es un script bash,
$ file ./libtool
./libtool: Bourne-Again shell script, ASCII text executable
pero make
por defecto se ejecuta con /bin/sh
, que en Ubuntu está vinculado simbólicamente al dash
shell de forma predeterminada:
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Apr 4 10:27 /bin/sh -> dash
y dash
no admite la concatenación de cadenas que no sean POSIX +=
:
$ dash -c 'foo+=bar'
dash: 1: foo+=bar: not found
De hecho, este es el mismo tema discutido en el enlace que proporcionó, en particularesta respuesta
Hay muchas maneras de abordar esto: en mi humilde opinión, la más limpia es decirle al script de configuración que anule la SHELL
variable predeterminada del Makefile:
./configure SHELL=/bin/bash --prefix=/usr/local/libpng
make
sudo make install
(Le sugiero que comience de nuevo con una instalación limpia, es decir, elimine el directorio libpng-1.6.14 y descomprima el archivo nuevamente).