Tendo diferentes versões da mesma biblioteca em diferentes locais e através de diferentes meios (apt vs compiling from source)

0

Eu precisava instalar o opencv versão 3.1 para o python 3. Havia um pacote chamado python-opencv , mas é a versão 2.4 e para o python 2. Então, eu compilei da fonte e instalei por checkinstall . Depois disso, percebi que eu já tinha bibliotecas começando com libopencv , que são a versão 2.4. Eu acho que eles foram instalados como as dependências de gstreamer1.0-plugins-bad .E quando verificado minha instalação opencv a partir do código fonte, vi que ele também instalou alguns pacotes libopencv como:

/usr/local/lib/libopencv_highgui.so
/usr/local/lib/libopencv_highgui.so.3.1
/usr/local/lib/libopencv_highgui.so.3.1.0
/usr/local/lib/libopencv_imgcodecs.so
/usr/local/lib/libopencv_imgcodecs.so.3.1
/usr/local/lib/libopencv_imgcodecs.so.3.1.0

As versões 2.4 foram instaladas através do apt e, quando eu verifiquei a localização, era /usr/lib not /usr/local/lib/ . Minha pergunta é: ter versões diferentes da mesma biblioteca instaladas em locais diferentes causa um problema?

    
por motoko 02.12.2016 / 14:34

1 resposta

0

Pode. Depende de como o seu sistema está configurado. Se o seu sistema encontrar as bibliotecas python mais antigas primeiro em sua variável PATH, elas serão usadas.

Você pode usar comandos como update-alternatives para especificar quais versões de pacotes você gostaria de ser padrão em um sistema. Por exemplo, você pode usar update-alternatives para usar uma instalação do java 7 localizada em / opt em oposição ao openjdk7 instalado por padrão.

Você também pode colocar scripts em /etc/profile.d/*.conf para carregar antes que qualquer terminal seja executado para especificar extensões para sua variável PATH e também para definir outras variáveis de ambiente.

Isso, ou definir variáveis de ambiente, pode ser usado para especificar quais bibliotecas você gostaria de usar para o seu programa.

Espero que isso ajude!
Kyle

    
por Kyle H 02.12.2016 / 15:13