Introdução
Para encurtar a história, em alguns projetos estou usando algumas câmeras estéreo. Infelizmente, o fabricante fornece pacotes (rpm e deb ) para drivers de espaço do usuário que não são exatamente formatados (faltando dependências, outras informações de controle, etc.) Para piorar, ele deveria ser executado em uma versão de distribuição Linux específica (Ubuntu 12.04 / Ubuntu 14.04), mas é empacotado com bibliotecas desatualizadas, por exemplo:
libturbojpeg.so
libusb-1.0.so.0.1.0
Mais uma coisa, o driver original é instalado em /opt/manufacturer/proprietary_driver/{bin, lib, etc}
.
Portanto, para uma boa distribuição, construção e execução dos meus projetos, decidi remontar a bagunça oficial deste fabricante. A solução Blunt estava deixando todas as bibliotecas como estão, preenchendo as informações de controle necessárias e adicionando algo em /etc/ld.so.conf.d/proprietary_driver.so.conf
da seguinte forma:
/opt/manufacturer/proprietary_driver/lib
Problema
Tudo parece funcionar, mas todas as vezes fazendo apt-get upgrade
Eu recebo isso:
/sbin/ldconfig.real: /opt/manufacturer/proprietary_driver/lib/libusb-1.0.so.0 is not a symbolic link
Além disso, enquanto lia o guia de mantenedores do Debian , percebi que colocar coisas em /opt
não são compatíveis. Sem mencionar poluir LD_LIBRARY_PATH
com bibliotecas necessárias apenas por algum driver específico.
Por assim dizer, devo estar fazendo algo errado.
Pergunta
Existe alguma outra maneira recomendada e / ou melhor de lidar com pacotes Debian binários proprietários que incluem versões antigas de várias bibliotecas do sistema? Eu ficaria muito feliz se a solução sugerida pudesse ser usada para fazer o upstream do pacote em questão pelo menos no Debian e no Ubuntu.