Cabeçalho do SQLite e incompatibilidade de versão de origem

5

Eu tinha os repositórios do Ubuntu do SQLite3 com v3.7.17 . Mas ele não tem o comando .save como versões mais recentes.

Para atualizar eu fiz:

  1. sudo apt-get purge sqlite3
  2. Faça o download SQLite 3.8.4.3
  3. Instale-o com ./configure && make && sudo make install

Mas agora, quando tento executar sqlite3 da linha de comando, obtenho:

SQLite header and source version mismatch
2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
2014-04-03 16:53:12 a611fa96c4a848614efe899130359c9f6fb889c3

Pesquisando, encontrei duas soluções que tentei sem sucesso:

  • Esta resposta não funcionou porque não tenho sqlite on /usr/bin
  • Esta solução também não funcionou, mas fiz backup para reverter essas mudanças inúteis.

Alguma ideia de como resolver este erro?

    
por Lucio 04.04.2014 / 18:29

2 respostas

11

Depois de criar a partir da origem, a sua versão v3.8.4.3 está agora instalada em /usr/local/lib .

Você precisa substituir /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6 (ou /usr/lib/i386-linux-gnu/libsqlite3.so.0.8.6 do arco i386) pelo /usr/local/lib :

sudo cp /usr/local/lib/libsqlite3.so.0.8.6 /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6
    
por Sylvain Pineau 04.04.2014 / 18:47
2

Acabei de baixar e compilá-lo no Debian e tive o mesmo problema. Eu resolvi isso vinculando estaticamente sqlite3:

./configure --disable-dynamic-extensions --enable-static --disable-shared
make
make install

Você provavelmente só precisará de --enable-static , mas eu adicionei especificamente --disable-shared para ter certeza.

Atenciosamente

    
por Dave R 17.04.2014 / 21:40