diferença entre compilado e instalado via rpm (zypper)

4

Em um openSUSE 11.1 eu baixo, compilo e instalo ImageMagick via:

wget ftp://.../pub/graphics/ImageMagick/ImageMagick-6.7.7-0.zip
unzip ImageMagick-6.7.7-0.zip
cd ImageMagick-6.7.7-0
./configure --prefix=/usr/local/ImageMagick
make
make install

Tudo funciona bem até descobrir que o JPG não é compatível:

identify -list format | grep -i jpg

[nothing related to JPG returned]

Para reconfigurar e recompilar usando:

./configure --prefix=/usr/local/ImageMagick --with-jpeg=yes --with-jp2=yes
make
make install

Mas isso não muda nada.

Acabei de desinstalar:

make uninstall

e instalando via zypper :

zypper install ImageMagick

Esta versão instalada 6.4.3 e agora suporta JPG:

identify -list format | grep -i jpg
JPG* JPEG      rw-   Joint Photographic Experts Group JFIF format

Alguma ideia do que está acontecendo aqui? Qual é o motivo pelo qual essa capacidade de ImageMagick não estava lá quando compilada da fonte, mas estava lá quando instalada a partir do rpm?

Note que eu não necessariamente me preocupo muito com o ImageMagick (já que ele funciona agora), mas geralmente sobre seu tipo de comportamento, porque de uma forma ou de outra eu vi isso acontecer em outras ocasiões também.

    
por cherouvim 19.12.2012 / 09:58

2 respostas

1

Existem pelo menos duas causas prováveis de diferença entre os dois métodos:

  • O zypper cuida das dependências. Assim, se o ImageMagick depender de uma biblioteca vinculada dinamicamente que você não possui, ele será recuperado para que o ImageMagick possa fornecer o recurso relacionado a essa biblioteca. Nesse caso, o executável resultante de sua própria compilação deve funcionar agora que o ImageMagick e suas dependências estão instalados.

  • O zypper (AFAIK) não compila o pacote, apenas instala um binário pré-compilado. Existem dependências que são necessárias apenas em tempo de compilação para poder compilar recursos específicos, geralmente cabeçalhos de bibliotecas (pacotes -dev ou -devel). Se você não tiver, configure pode omitir para habilitar o recurso para compilação com mais ou menos verbosidade. Para instalá-los, o comando correto parece ser:
    # zypper in -d imagemagick

por 19.12.2012 / 11:53
0

Parece que você se esqueceu de make clean / make mrproper após o segundo configure com outras opções.

    
por 19.12.2012 / 14:47