Por que meu pacote não é atualizado mesmo se especificado no arquivo 'control' do pacote Debian?

1

Meu projeto é baseado no Ubuntu 14.04 em C ++ usando g ++.

Anteriormente, meu projeto usava g ++ 4.8 para desenvolvimento. Nosso software depende do libstdc ++ 6 para executar.

Fornecemos pacotes Debian para instalar o nosso software. Nosso pacote Debian só instala as bibliotecas de tempo de execução necessárias para executar nosso software. Não queremos instalar ferramentas de desenvolvimento para nossos clientes. Mas como o libstdc ++ 6 já está instalado junto com o Ubuntu 14.04 por padrão, nós não o especificamos no arquivo 'control' do pacote Debian.

Recentemente, mudamos para g ++ 4.9 . Para instalar o g ++ 4.9, precisamos adicionar o seu PPA antes de executar o 'apt-get install' para instalar o nosso software. Tendo percebido que eu também preciso usar o libstdc ++ 6 que trabalha com o g ++ 4.9, eu coloco 'libstdc ++ 6' na seção 'Depends' do arquivo 'control'. Algo parecido com isto:

Depends: libstdc++6 (Other packages are omitted)

Ao fazer o 'sudo apt-get install nosso pacote', percebi que o libstdc ++ 6 é NÃO atualizado para o que eu quero. Portanto, eu obteria as mensagens de erro em tempo de execução como:

/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version 'CXXABI_1.3.8' not found

/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version 'GLIBCXX_3.4.20' not found

Eu me certifiquei de que:

  • Eu adicionei o g + + 4,9 PPA ao sistema (ppa: ubuntu-toolchain-r / test);
  • Eu tinha executado o 'apt-get update' depois de adicioná-lo.

Por outro lado, se eu executasse sudo apt-get install libstdc++6 manualmente, o libstdc ++ 6 seria atualizado para o correto.

Minha teoria é que a seção 'Depends' do arquivo 'control' funciona mais como verificar a existência mas não a versão, e como o Ubuntu 14.04 instalou o libstdc ++ 6, o pacote Debian não instalou / atualizou porque ele pode ser encontrado no sistema já. No entanto, o 'apt-get install' verificou a versão mais recente e instalou-a em caso de falta ou atualização, se existente.

Alguma ideia?

    
por yaobin 13.07.2017 / 15:50

0 respostas