Existe alguma chance de que a consequência da minha ação volte para me assombrar?
Talvez. Leia em:
-
As novas bibliotecas configuradas ("enable ... :) substituíram as novas bibliotecas mal configuradas que você instalou ... sem danos.
-
As novas bibliotecas estão instaladas em
/usr/local
porque é o padrão para muitas distribuições Linux, mas não Ubuntu; O Ubuntu coloca-os sob/usr
. O primeiro é OK para binários (/usr/local/bin
), que o Ubuntu tem em seu caminho padrão, e aqueles terão precedência sobre quaisquer binários instalados em/usr/bin
, mas isso não é verdadeiro para bibliotecas, porque/usr/local/lib
não é no caminho padrão. -
Todos os programas que usam essa biblioteca continuarão usando os cabeçalhos / versões mais antigos em
/usr/lib
, a menos que você diga especificamente a esses programas que usem os novos, por exemplo, prefixando-os comLD_LIBRARY_PATH=...
ou explicitamente adicionando/usr/local/lib
ao seu caminho. Para compilar coisas que dependem dessa biblioteca, você precisará especificar explicitamente o caminho/usr/local/lib
para incluir os novos cabeçalhos. -
Para corrigir isso:
- É uma boa ideia remover a versão instalada da repo da biblioteca, a menos que ela tenha muitas dependências e, nesse caso, deixe-a (ou você terá que recompilar o lote).
- Instale checkinstall , que você pode usar em vez da etapa
make install
final para dar a você um arquivo deb que é fácil de instalar e desinstalar. - Defina o prefixo de instalação correto por meio da diretiva
-DCMAKE_INSTALL_PREFIX=/usr
antes de compilar.
Isso deve ser feito!