web-dev-qa-db-ja.com

SQLite gemをインストールできないのはなぜですか?

Ruby 1.8.6、Rails 2.2.2、gem 1.3、およびsqlite- 3.5.9。実行中のコマンドとその結果は次のとおりです。

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は、すでにコンソールに送信されたものを繰り返します。このgemをインストールするにはどうすればよいですか?

64
Eric Noob

SQLite RubyGemは、実際にはRuby Gemではなく、「[〜#〜] c [〜#〜] Gem」、IOWはCで記述されています。これは、コンパイルし、インストールするときにRubyインタープリターにリンクする必要があります。実行するには、thatにCヘッダーファイルが必要ですRubyインタープリター。

Ruby自分でコンパイルすると、これらのヘッダーファイルは自動的にインストールされますが、RedHat系のシステムでは、このようなヘッダーファイルは通常<whatever>-devという別のパッケージにパッケージ化されます。 、この場合、Ruby-devパッケージと、場合によってはlibsqlite3-dev(Ubuntu)またはsqlite-devel(Fedora)パッケージもインストールする必要があります。

ただし、オペレーティングシステムのあらかじめパッケージ化されたlibsqlite3-Rubyパッケージをインストールするだけで、すべての依存関係が自動的に満たされる方がよい場合があります。

(注:すべてのパッケージ名は薄い空気から引き出されており、システムによって異なる場合があります。)

136
Jörg W Mittag

おそらくRuby devパッケージ。Ubuntuの場合、Rubyヘッダーファイルを含むRuby1.8-devをインストールする必要があります。 yumパッケージはRuby-develなので、次を実行します。

Sudo yum install Ruby-devel

13
hacintosh

Fedora 13ボックスにsqlite3-Ruby gemをインストールする際に問題に直面しました。 Sudo yum install sqlite-develの後に修正されました

10
Rahul

その問題があったとき:

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.

私にとっては、「libsqlite3-dev」を次のようにインストールしました:

apt-get install libsqlite3-dev
9
matiasmasca
Sudo apt-get install Ruby-dev

私のためにそれを修正しました。

6
Sacha

Ubuntu 9および10の場合:

Sudo apt-get install Ruby-dev
Sudo apt-get install sqlite3-dev

次に実行する

gem install sqlite3
3
ldemon

Fedora OSで次を実行します。

yum install rubygem-sqlite3
2
Chase

Sqlite3-rubyのビルドに必要なすべてのソースコードがありますか? Gemは一部のCコードをコンパイルしようとしていますが、ヘッダーが見つかりません。コンパイルを行わない場合は、おそらくsqlite3-RubyにFedora rpmを使用できます(Fedoraは使用していませんが、Fedoraは存在するはずです)。個人的にRubyの場合、ディストリビューションのパッケージングシステムではなくgemを使用することを好みます。

1
barneytron

私はこれとまったく同じ問題を抱えていました... unbuntuでシナプスを使用して不足しているピースをgemする代わりに。

私にとって重要なパッケージはlibsqlite-Ruby1.9.1でした...私は(参考のために)このエラーの経験を文書化しました: Sqlite3-gem-error-during-bundle-install

0
Riding Rails

私もこれと同じ問題に直面しました。問題は、gemをビルドするために、LinuxのインストールにSQLite3の開発ライブラリをインストールする必要があることです。

問題の修正方法はこちら

ターミナルを開き、次のコマンドを実行します

Sudo apt-get install sqlite3

Sudo apt-get install libsqlite3-dev

そして、このコマンドを使用してSqlite3 gemを再度インストールしてみてください

gem install sqlite3

それで全部です。

これが役立つことを願っています

0
Promise Preston

Alpineでは、sqlite-devパッケージをインストールする必要があります。

0

私はOLPC(Fedora 9)の 'gcc'を奇妙に十分にインストールすることで問題を修正しました。

また、他のパッケージに関しては、接尾辞は「-dev」ではなく「-devel」です。したがって、「Ruby-devel」、「sqlite-devel」...

一度インストールしたら、さまざまなRailsスクリプト、たとえば、script/serverまたはscript/consoleを実行しようとすると、gemが古すぎるというエラーが表示されます。 google "upgrade_rubygems"でその問題を修正します...

HTH ...

0
cosmo lee

Fedora 29でreact-Railsアプリを生成した後、bundle installを実行中にこのエラーが発生しました。dnf search sqlite3を実行して適切な開発パッケージを特定し、dnf install libsqlite3x-develをインストールしました。これは私のためにそれを修正しました。

0
g4k13

私はFedoraにあまり馴染みがありませんが、Ubuntuではapt-getを含むパッケージをインストールするときに、gccおよびC用のその他のコンパイルツールを含むbuild-essentialsをインストールする必要があります。そして、FedoraでRPMまたはapt-getを使用してインストールする方法を調べます。

0
Tim Knight

「Sudo yum install sqlite-devel」を実行してから、「gem install sqlite3」を実行します。私のFedora 15でも同じ問題がありました。

0
rapidror