8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ruby on Rails で bundle が失敗した

Last updated at Posted at 2016-09-04

結論からいうと、 sqlite3-devel がなかったようです。
他にやったことは、パーミッションの設定。

他の方が書いた同じような記事

環境:
CentOS 5.11
Rails 5.0.0.1
Ruby 3.2.1

なぜか bundle コマンドがうまく行かない。

An error occurred while installing sqlite3 (1.3.11), and Bundler cannot continue.

sqlite3 がない?おかしいなぁ。

Installing sqlite3 1.3.11 with native extensions

Gem::FilePermissionError: You don't have write permissions for the /vendor/bundle/ruby/2.3.0 directory.

su になってやってみると、警告メッセージのあと、何かやっているがやっぱり失敗する。

Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as root will break this application for all non-root users on this machine.

root でバンドラーを走らせるな。バンドラーは sudo が必要なら聞くし、root としてバンドルをインストールすると、このマシンの root じゃない他のユーザーのこのアプリケーションを破壊するだろう。

(なぜ訳したw)

えー。パーミッションがないからスーパーユーザーにしたのに・・・。なんか ruby や rails のインストールからおかしかったのか? 普通のユーザに戻って、必要なときに sudo して作業を続けることに。

エラーメッセージをよく確認してみると、

An error occurred while installing sqlite3 (1.3.11), and Bundler cannot continue. Make sure that gem install sqlite3 -v '1.3.11' succeeds before bundling.

じゃぁ、gem install をすればいいのね。

gem install sqlite3 -v '1.3.11

ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /usr/local/lib/ruby/gems/2.3.0 directory.

・・・結局これか。

じゃぁ、このディレクトリに書き込み権限を追加してやってみる。
またなんか出てきた。

Gem::FilePermissionError: You don't have write permissions for the /vendor/bundle/ruby/2.3.0 directory.

ん? 今度は /usr/local じゃなくて、 /vendor/bundle/ruby となっている。
なんかユーザ以外のディレクトリのパーミッションを緩めるの嫌だなぁ。インストールのときに何か間違ったのかな?

仕方ないので、また chmod とかやってみる。

またなんか出た。

Installing sqlite3 1.3.11 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory: /vendor/bundle/ruby/2.3.0/gems/sqlite3-1.3.11/ext/sqlite3 /usr/local/bin/ruby -r ./siteconf20160904-8569-xpja3s.rb extconf.rb checking for sqlite3.h... no sqlite3.h is missing. Try 'port install sqlite3 +universal', 'yum install sqlite-devel' or 'apt-get install libsqlite3-dev' and check your shared library search path (the location where your sqlite3 shared library is located).

ヘッダーがない? あぁ、sqlite3 自体はあるのに、開発用のパッケージはないということか。

yum install sqlite-devel

とかやって、もういっかい bundle コマンドを打つ。

・・・
Installing rails 5.0.0.1 Installing sass-rails 5.0.6 Bundle complete! 15 Gemfile dependencies, 63 gems now installed. Bundled gems are installed into /vendor/bundle.

できた!

しかし、ruby関連のどのパッケージをユーザ毎にすればよかったのか、疑問が残る。
誰か教えてください。

8
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?