adicionou nova biblioteca, uma antiga por aí

6

No Ubuntu 12.04, eu baixei o código fonte de uma biblioteca geoespacial, gdal-1.11.0, em ~ / src, configurei e compilei com sucesso, pareceu. Novos arquivos, como libgdal.a , foram colocados em / usr / local / lib.

No entanto, quando executo um programa que depende disso,

$ ogrinfo --formats

Eu obtenho

ERROR 1: ogrinfo was compiled against GDAL 1.11 but current library version is 1.10

Parece que não removi a versão mais antiga do GDAL. Como devo fazer isso?

Algumas informações sobre o meu sistema:

$ uname -a
Linux ubuntu 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
    
por user1416227 16.07.2014 / 08:23

2 respostas

3

It seems I haven't removed the older version of GDAL. How should I do that?

A tentativa de make uninstall é uma opção razoável, se você tiver mantido as fontes, o que é uma boa prática se você estiver fazendo instalações locais.

Uma alternativa simples é remover todos os arquivos relacionados a essa biblioteca, antigos e novos, e reinstalar o novo.

No entanto, tenho que me perguntar por que você está instalando a partir do código-fonte quando o pacote está disponível no Debian e, portanto, no Ubuntu. Se você estiver em uma versão / versão mais antiga do Ubuntu, e não houver nenhum PPA disponível, observe que backporting um novo lançamento / versão do Ubuntu é possível, e na maioria das vezes não é difícil.

As dependências de compilação listadas do GDAL 1.11 no Debian são

Build-Depends: debhelper (>= 9), dh-autoreconf, zlib1g-dev, libnetcdf-dev (>= 1:4.0.0), netcdf-bin, libjasper-dev, libpng-dev, libjpeg-dev, libgif-dev, libwebp-dev, libhdf4-alt-dev [!ppc64], libhdf5-dev (>= 1.8.8), libpcre3-dev, libpq-dev, libxerces-c-dev, unixodbc-dev (>= 2.2.11), doxygen, d-shlibs, libgeos-dev, libmysqlclient-dev, dh-python, python-all-dev (>= 2.6.6-3~), python-numpy, python3-all-dev, python3-numpy, libcurl4-gnutls-dev | libcurl-ssl-dev, libsqlite3-dev, libogdi3.2-dev, chrpath, swig, patch, libexpat1-dev, libproj-dev, libdap-dev, libxml2-dev, libspatialite-dev (>= 2.4.0~rc2-4), libepsilon-dev (>= 0.9.1-1~), libpoppler-private-dev, liblzma-dev, libopenjpeg-dev, libarmadillo-dev, libfreexl-dev (>= 1.0.0), libkml-dev (>= 1.3.0~), liburiparser-dev, default-jdk, ant

que não parece tão ruim. Para ser claro, a ideia aqui é reconstruir as fontes Debian / Ubuntu no seu lançamento. Se você quiser dicas ou mais detalhes, posso elaborar.

Aqui estão as versões do GDAL disponíveis no Debian.

$ apt-cache policy libgdal1-dev
libgdal1-dev:
  Installed: (none)
  Candidate: 1.9.0-3.1
  Version table:
     1.11.0+dfsg1-1~exp2 0
          1 http://debian.lcs.mit.edu/debian/ experimental/main amd64 Packages
     1.10.1+dfsg-6 0
         50 http://debian.lcs.mit.edu/debian/ testing/main amd64 Packages
         50 http://debian.lcs.mit.edu/debian/ unstable/main amd64 Packages
     1.9.0-3.1 0
        500 http://debian.lcs.mit.edu/debian/ wheezy/main amd64 Packages
     1.6.3-4+b1 0
        500 http://debian.lcs.mit.edu/debian/ squeeze/main amd64 Packages
    
por 16.07.2014 / 11:32
4

O arquivo libgdal.a só será usado quando você vincular ogrinfo a ele sem o uso de bibliotecas compartilhadas. Se ogrinfo estivesse vinculado dessa maneira (não usando bibliotecas compartilhadas), você não receberia o erro, pois a biblioteca (versão 1.11) seria parte do executável.

O que você deve tentar é executar

sudo ldconfig

depois de compilar e instalar a nova versão do gdal , que deve informar o sistema (no qual a versão 1.10 já está carregada como biblioteca compartilhada), que uma nova versão está disponível.

    
por 16.07.2014 / 08:40

Tags