Erro de instalação do sqlite3-ruby no Ubuntu

257

Eu tenho o seguinte erro durante a instalação do sqlite3-ruby:

Construindo extensões nativas. Isto pode tomar algum tempo...
ERRO: Erro ao instalar o sqlite3-ruby:
    ERRO: falha ao criar a extensão nativa da gema.

/usr/bin/ruby1.8 extconf.rb
verificando sqlite3.h ... não
sqlite3.h está ausente. Tente 'port install sqlite3 + universal' ou 'yum install sqlite3-devel'
*** extconf.rb falhou ***
Não foi possível criar o Makefile por algum motivo, provavelmente falta de
bibliotecas e / ou cabeçalhos necessários. Verifique o arquivo mkmf.log para obter mais
detalhes. Você pode precisar de opções de configuração.

Opções de configuração fornecidas:
    --com-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include = $ {opt-dir} / include
    --com-opt-lib
    --without-opt-lib = $ {opt-dir} / lib
    --com-fazer-prog
    --without-make-prog
    --srcdir =.
    --curdir
    --ruby = / usr / bin / ruby1.8
    --with-sqlite3-dir
    --without-sqlite3-dir
    --with-sqlite3-include
    --without-sqlite3-include = $ {sqlite3-dir} / include
    --with-sqlite3-lib
    --without-sqlite3-lib = $ {sqlite3-dir} / lib


Os arquivos gem permanecerão instalados em /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1 para inspeção.
Resultados registrados em /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1/ext/sqlite3/gem_make.out

sqlite3.h está localizado em / usr / include /

sudo gem instala o sqlite3-ruby --without-sqlite3-include = / usr / include

não funciona

ERRO: Ao executar o gem ... (OptionParser :: InvalidOption)
    opção inválida: --without-sqlite3-include = / usr / include

Ubuntu 10.04

Dmitry
fonte
mesmo problema - isso não é respondido. O sqlite3.h não existe e todos os pacotes acima estão instalados. ubunut 10.10
rrt
Tentar sudo apt-get install build-essential e depois gem sudo instalar sqlite3-ruby
Dmitry
1
desde então, mudou para apenas sqlite3, não #sqlite3-ruby
kelloti
3
Trabalhou para mim no ubuntu 12.04 como o marshluca sugeriu. sudo apt-get install libsqlite3-dev
panta

Respostas:

585

Você precisa dos cabeçalhos de desenvolvimento SQLite3 para compilar a extensão nativa da gema. Você pode instalá-los executando (possivelmente com sudo):

apt-get install libsqlite3-dev
marshluca
fonte
26
Eu precisava sudo apt-get install libsqlite3-dev. Obrigado.
B Seven
6
Funcionou como um encanto. Obrigado.
15123 frank.m
Obrigado - isso definitivamente não teria sido óbvio.
James_womack
15

Você só precisa de um --lá.

sudo gem install sqlite3-ruby -- --with-sqlite3-include=/usr/include

Isso especifica que a opção não é a gema diretamente, mas a gema específica.

Kurt
fonte
8

No meu caso, não tenho compiladores básicos instalados, então

sudo apt-get install build-essential

resolveu meu problema, mas para a maioria das pessoas acho que https://stackoverflow.com/a/3649005/417267 é a solução.

Dmitry
fonte
1
Este foi o meu problema. Obrigado.
J # sad
6

Se você roda no ubuntu e usa o RVM para ruby ​​on rails, adicione PRIMEIRO:

sudo apt-get install libxslt-dev libxml2-dev

OU Você pode verificar com estes comandos:

Este comando irá preparar para você dois pacotes: sqllite3 e libsqlite3-dev

sudo apt-get install sqlite3 libsqlite3-dev

-Agora, instale o sqlite gem

 [sudo] gem install sqlite3-ruby

O Ubuntu não precisa de sudo.

Boa sorte! Nota: estou usando o Ubuntu 10.10 e está funcionando.

anguu
fonte
6

Isso foi simplesmente o suficiente para fazê-lo funcionar

sudo apt-get install libsqlite3-dev

Graças a marshluca

Bernard Banta
fonte
4

Tentei todas as outras soluções, nenhuma ajudou.

Acabou que você também precisa do pacote dev para o próprio ruby. Para mim, isso ajudou

sudo apt-get install ruby-full

Ele tem muitas dependências desagradáveis ​​(como emacs, wtf?), Apenas

sudo apt-get install ruby1.8-dev

deve ficar bem. Depois de instalado (e você tem os pacotes sqlite e sqlite-dev instalados)

sudo gem install sqlite3-ruby

Funciona como um encanto.

mhaligowski
fonte
1
trabalhou para mim também. sudo apt-get install ruby1.9.1-dev libsqlite3-dev
rajsite
1

Teve esse mesmo problema e o seguinte funcionou para mim:

compile o sqlite3 como biblioteca estática, instale em algum lugar no diretório inicial e forneça essa opção para o processo de instalação da gem.

Vá para a página de download e pegue a fonte. A versão mais recente atualmente é http://www.sqlite.org/sqlite-autoconf-3070400.tar.gz

tar -xf no arquivo ou faça o que você normalmente faz para descompactar; entrar no diretório

./configure --disable-shared --enable-static --prefix = / some / caminho / em / meu / home

compile, instale e quando estiver instalando a gema ...

O gem instala o sqlite3-ruby - --with-sqlite3-dir = / some / path / in / my / home

EnotionZ
fonte
1

No sqlite3-ruby gem não é possível encontrar o sqlite3.h no ubuntu :

Você também precisa instalar o próprio gcc, portanto, no total, seria:

sudo apt-get install gcc libsqlite3-dev ruby1.8-dev
sudo gem install sqlite3

Aparentemente, você recebe um erro errado apontando para um sqlite3.h ausente quando o problema real está ausente no próprio gcc.

Jeroen Vijfhuizen
fonte
1

A solução é adicionar --para separar os configureparâmetros dos gemparâmetros.

ao invés de

sudo gem install sqlite3-ruby --without-sqlite3-include=/usr/include

tente isso, tudo em uma linha, inclua --após o último gemparâmetro e antes dos configureparâmetros:

sudo gem install sqlite3 --
--with-sqlite3-lib=/somewhere/local/lib
--with-sqlite3-include=/somewhere/local/include

Isso deve contornar esse erro:

ERROR:  While executing gem ... (OptionParser::InvalidOption)
    invalid option: --without-sqlite3-include=/usr/include
stefanB
fonte
Era exatamente disso que eu precisava - muito obrigado a quem enviou!
David Loy
0

Não --without-sqlite3-include=/usr/include, mas --with-sqlite3-include=/usr/include.

Daniel O'Hara
fonte
Se sqlite3.h realmente está em falta e não em / usr / include, como você disse, então você pode instalá-lo com: sudo apt-get install libsqlite3-dev
Kurt
Eu já fiz isso .. Não ajuda. Eu tenho o sqlite3 e o libsqlite3-dev instalados.
Dmitry
0

Esse é exatamente o mesmo problema que tive algumas semanas atrás. Descobri que precisava baixar os cabeçalhos / bibliotecas mais recentes da página de download do SQLite. Experimente, espero que isso ajude!

theGrayFox
fonte
0

Para mim, o problema foi resolvido com o mkmf, que está no ruby1.8-dev.

sudo apt-get install ruby1.8-dev

Graças a mentalizado para esse.

autor do bem
fonte
0

Eu concordo com Danya Vershinin & EnotionZ .

Se não puder usar o apt-get:

  1. compile e instale o sqlite3 a partir das fontes especificando seu próprio caminho "prefixo". Mais informações podem ser encontradas no README.
  2. Em seguida, passe esse caminho para o instalador do sqlite3-ruby (não esqueça o "-").
LoganMzz
fonte
0

Você quebrou a versão do RVM. O Ubuntu faz algo no RVM que produz muitos erros, a única maneira segura de corrigir por enquanto é: sudo apt-get --purge remover ruby-rvm sudo rm -rf / usr / share / ruby…, se isso não ajudar depois reinicie o seu computador. instale o RVM: \ curl -L https://get.rvm.io | bash -s stable --ruby --autolibs = enable --auto-dotfiles Se você precisar de alguma ajuda, dê uma olhada no Instalando Ruby no Ubuntu 12.04, o que dá um pouco mais de explicação

Jack Demin
fonte
0

Esqueça tudo e faça isso,

corre

yum install ruby-devel sqlite sqlite-devel ruby-rdoc
yum install make gcc
gem install sqlite3-ruby
bundle install

Isso é para rhel, execute o mesmo para o ubuntu.

Aakash Parashar
fonte
0

Nenhuma das soluções mencionadas acima funcionou para mim, mesmo após a instalação ruby2.5-deve libsqlite3-dev. Então tentei usar em PostgreSqlvez de sqlite. Isso funcionou bem. Para usar em PostgreSqlvez do sqlite, use este comando ao criar o railsprojeto.

rails [_VERSION_] new project_name -d postgresql

Se você deseja usar MySql, use em mysqlvez de postgresql.

rails [_VERSION_] new project_name -d mysql

Caso contrário, você pode tentar sem sqlite.

bundle install --without sqlite
MD. Khairul Basar
fonte
0

Acabei de fazer o downgrade para sqlite3-ruby '1.2.2'

nils petersohn
fonte