Porque eu não posso instalar a gem SQLite?
-
05-07-2019 - |
Pergunta
Eu sou tentar instalar a gem SQLite em uma caixa Fedora 9 Linux com Ruby 1.8.6, Rails 2.2.2, gem 1.3, e sqlite-3.5.9. Aqui está o comando Estou correndo e seus resultados:
sudo gem install sqlite3-ruby
Building native extensions. This could take a while...
ERROR: Error installing sqlite3-ruby:
ERROR: Failed to build gem native extension.
/usr/bin/ruby extconf.rb install sqlite3-ruby
can't find header files for ruby.
Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/ext/sqlite3_api/gem_make.out
gem_make.out
apenas repete o que já foi enviado para o console. Como posso instalar esta jóia?
Solução
O SQLite RubyGem não é realmente um Rubi Gem, é um " C Gem", IOW é escrito em C. Isto significa que tem de ser compilado e ligado para o interpretador ruby ??quando você instalá-lo e, a fim de fazer que que precisa os arquivos de cabeçalho C para o intérprete ruby.
Se você compilar o Ruby mesmo, esses arquivos de cabeçalho será instalado automaticamente, no entanto, em sistemas RedHat-ish, tais arquivos de cabeçalho são geralmente embalados em um pacote independente, chamado <whatever>-dev
. Então, neste caso, você precisará instalar o pacote ruby-dev
e possivelmente o libsqlite3-dev
(Ubuntu) ou pacote sqlite-devel
(Fedora) também.
No entanto, você pode ser melhor fora apenas instalar o pacote libsqlite3-ruby
pré-embalados do sistema operacional, de que maneira todas as dependências são automaticamente satisfeito.
. (Nota: todos os nomes de pacotes tirou do ar, pode ser diferente em seu sistema)
Outras dicas
Você provavelmente precisará do pacote dev ruby. Para o Ubuntu você tem que instalar ruby1.8-dev que inclui os arquivos de cabeçalho rubi. Um Google rápido diz que o pacote yum é ruby-devel. então executar este:
sudo yum install ruby-devel
Eu enfrentei problema ao instalar gem sqlite3-ruby no meu fedora 13 caixa. Foi fixado após sudo yum install sqlite-devel
Quando eu tive esse problema:
gem install sqlite3 -v '1.3.9'
Building native extensions. This could take a while...
ERROR: Error installing sqlite3:
ERROR: Failed to build gem native extension.
Para mim funcionou, instalando o " libsqlite3-dev " com:
apt-get install libsqlite3-dev
sudo apt-get install ruby-dev
Fixed-lo para mim.
No Ubuntu 9 e 10 de tentativa:
sudo apt-get install ruby-dev
sudo apt-get install sqlite3-dev
Em seguida, execute
gem install sqlite3
Execute o seguinte para o Fedora OS:
yum install rubygem-sqlite3
Você tem todo o código fonte necessário para construir sqlite3-ruby? Gem está tentando compilar algum código C e não pode encontrar os cabeçalhos. Provavelmente, você pode usar um rpm fedora para sqlite3-ruby (Eu não uso fedora, mas estou existe certeza um) se você prefere renunciar a compilação. Pessoalmente para coisas rubi, eu prefiro usar gem em vez de sistema de embalagem de uma distro.
Eu não sou muito familiarizado com o Fedora, mas no Ubuntu quando você está instalando pacotes que você apt-get, e você tem que instalar o build-essenciais que inclui gcc e outras ferramentas de compilação para C. Eu diria que poderia ser o seu problema, e você faz olhar sobre como isso pode ser instalar ou usando RPM ou apt-get no Fedora.
Eu corrigiu o problema no meu OLPC (Fedora 9) instalando 'gcc' curiosamente. Parece que ele deveria ter sido um daqueles pacotes de dev, mas não.
Além disso, em relação aos outros pacotes, o sufixo é "-devel", não "-dev", para ter certeza de obter aqueles que terminam a direita: "ruby-devel", "sqlite-devel" ...
Depois de conseguir que instalado, se você obter erros sobre suas gemas ser demasiado velho "<1.3.1" quando você tentar executar vários scripts trilhos, por exemplo: script / servidor ou script / console, Google "upgrade_rubygems" para corrigir esse problema ...
HTH ...
Executar "sudo yum install sqlite-devel" e depois "gem install sqlite3". Tive o mesmo problema no meu Fedora 15.
Eu tive esse mesmo problema exato ... em vez de gem'ing as peças que faltam eu usei sináptica em Unbuntu.
O pacote de chaves para mim foi libsqlite-ruby1.9.1 ... eu documentei minha experiência (para referência) com este erro em: Sqlite3-gem-erro durante a-bundle- instalar
Em alpino, você precisa instalar o pacote sqlite-dev
.
Eu encontrei este erro durante a execução bundle install
depois de gerar um reagem-rails app no ??Fedora 29. Eu era capaz de identificar um pacote de desenvolvimento adequado, executando dnf search sqlite3
, em seguida, instalou-lo dnf install libsqlite3x-devel
. Este fixa-lo para mim.