
Eu sou novo em sistemas baseados em Ubuntu/Linux. Preciso compilar a libpng 1.6.14 para analisar um de seus binários. Eu estou correndo:
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
Isto é o que eu recebo:
Encontrei um problema semelhanteaqui no Stack Overflow
Tentei manipular o arquivo "libtool" mas sem sucesso. Alguma sugestão?
Responder1
OK, então o problema parece ser porque o fornecido ./libtool
é um script bash,
$ file ./libtool
./libtool: Bourne-Again shell script, ASCII text executable
mas make
o padrão é executá-lo com /bin/sh
, que no Ubuntu é vinculado simbolicamente ao dash
shell por padrão:
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Apr 4 10:27 /bin/sh -> dash
e dash
não oferece suporte à concatenação de strings não POSIX +=
:
$ dash -c 'foo+=bar'
dash: 1: foo+=bar: not found
Este é realmente o mesmo problema discutido no link que você forneceu, em particularesta resposta
Há muitas maneiras de resolver isso - IMHO, a mais limpa é dizer ao script de configuração para substituir a SHELL
variável padrão do Makefile:
./configure SHELL=/bin/bash --prefix=/usr/local/libpng
make
sudo make install
(Eu sugiro que você comece com uma instalação limpa, ou seja, exclua o diretório libpng-1.6.14 e descompacte o arquivo novamente.)