質問

Ruby 1.8.6、Rails 2.2.2、gem 1.3、および sqlite-3.5.9 を搭載した Fedora 9 Linux ボックスに SQLite gem をインストールしようとしています。実行しているコマンドとその結果は次のとおりです。

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 をインストールするにはどうすればよいですか?

役に立ちましたか?

解決

SQLite RubyGemは実際には Ruby Gemではなく、<!> quot; C Gem <!> quot;です。IOWはCで記述されています。つまり、インストール時にRubyインタープリターにコンパイルしてリンクする必要があり、それを行うには、Rubyインタープリター用のCヘッダーファイルが必要であることを意味します。

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

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

(注:すべてのパッケージ名は、空気が抜けているため、システムによって異なる場合があります。)

他のヒント

おそらく Ruby 開発パッケージが必要です。Ubuntuの場合、rubyヘッダーファイルを含むruby1.8-devをインストールする必要があります。ちょっとグーグルで調べてみると、yumパッケージはruby-develだそうです。これを実行します:

sudo yum install Ruby-devel

Fedora 13ボックスにsqlite3-ruby gemをインストールする際に問題が発生しました。 sudo yum install sqlite-devel

後に修正されました

その問題が発生したとき:

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.

私にとっては、<!> quot; libsqlite3-dev <!> quot; with:

apt-get install libsqlite3-dev
sudo apt-get install ruby-dev

私のために修正しました。

Ubuntu 9および10で試してください:

sudo apt-get install ruby-dev
sudo apt-get install sqlite3-dev

次に実行

gem install sqlite3

Fedora OSで次を実行します。

yum install rubygem-sqlite3

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

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

奇妙なことに、「gcc」をインストールすることで、OLPC (Fedora 9) の問題を修正しました。それは開発パッケージの 1 つであるべきだったようですが、そうではありません。

また、他のパッケージに関しては、接尾辞が「-dev」ではなく「-devel」であるため、末尾が正しいことを確認してください。「ruby-devel」、「sqlite-devel」...

これをインストールすると、さまざまな Rails スクリプトを実行しようとすると、Gem が古すぎる「< 1.3.1」というエラーが表示される場合があります。script/server または script/console、Google「upgrade_rubygems」で問題を解決してください...

HTH...

<!> quot; sudo yum install sqlite-devel <!> quot;を実行します。そして、<!> quot; gem install sqlite3 <!> quot;。 Fedora 15でも同じ問題がありました。

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

私にとって重要なパッケージはlibsqlite-ruby1.9.1でした...このエラーに関する経験を(参考のため)文書化しました: Sqlite3-gem-error-during-bundle-インストール

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top