LoginSignup
2
2

More than 5 years have passed since last update.

bash on windowsでRuby on Railsは動くのか試したらダメだった話

Last updated at Posted at 2016-06-13

前回の記事でbash on windowsの導入ができたので、
Ruby、Railsが導入できるかどうか、またそれらが動くかどうか試してみました。

結論から言うと、Railsアプリは作成できませんでした。

もう少し正確に言うと、rails newでファイルは作れるけど、bundle installが失敗します。

以下にやったこととその経過をまとめておきます。

やったこと

  1. build-esseintialのインストール
  2. rbenvとruby-buildのインストール
  3. ruby 2.3.1のインストール
  4. rake, bundler, railsのインストール
  5. railsアプリを生成 <= 失敗

それぞれの経過

build-essentialのインストール

apt-get install build-essentialとすると、開発時に必要なパッケージ、
例えばgccとか、makeとかをまとめてインストールできます。
今回だと、Ruby-buildでRubyをビルド、インストールする際に必要になります。

これは特に問題なく導入できました。

rbenvとruby-buildのインストール

rbenvとruby-buildをインストールします。

その前に、gitが標準で入っていたかどうか記憶が曖昧なので、
もしgit clone ...ができなかったらapt-getで導入してください。

導入方法は、それぞれのリポジトリのREADME.mdに書いてある標準的なインストール方法に
従うだけで大丈夫でした。

ただし、一つ注意点があります。

rbenvの導入中、.bash_profileに設定を追加する手順があります。
.bash_profileに記載した設定を再読み込みしなければいけませんが、
シェルのリロードが今ひとつ上手く働きません。
(一回bash on windowsからexitしても設定が反映されない…普通のシェルは反映された気がするのですが)

なので、設定を反映させるために

$ source .bash_profile

とする必要があります。
設定が反映されたかどうか、echo $PATHなどでパスが通っているか確認してもいいでしょう。

Rubyのインストール

rbenvが入ったので次はRubyを入れます。
これも通常のrbenvの使い方通りでいいのですが、いくつか追加で必要なパッケージがあります。
無いとインストール途中で怒られるので、先に入れておきましょう。

# sudo apt-get install -y libssl-dev libreadline-dev zlib1g-dev

追加のパッケージを導入したらRubyを入れます。ここでは2.3.1を入れます。
結構時間がかかりますので、気長に待ちましょう。

$ rbenv install 2.3.1

導入できたらglobalに設定したり、irb立ち上げて動作確認したりしてもいいでしょう。

Railsのインストール

遂に来ました。
何も考えずにrails newしてもいいのですが、gemはvendor/bundleに入れたいですよね。

こちらを参考にしてrails newを試みました。

--- ERROR REPORT TEMPLATE -------------------------------------------------------
- What did you do?

  I ran the command `/home/hanocha/.rbenv/versions/2.3.1/bin/bundle install --path vendor/bundle`

- What did you expect to happen?

  I expected Bundler to...

- What happened instead?

  Instead, what actually happened was...


Error details

    ArgumentError: parent directory is world writable but not sticky
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/2.3.0/tmpdir.rb:93:in `ensure in mktmpdir'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/2.3.0/tmpdir.rb:95:in `mktmpdir'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/vendor/compact_index_client/lib/compact_index_client/updater.rb:29:in `update'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/vendor/compact_index_client/lib/compact_index_client.rb:64:in `update'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/vendor/compact_index_client/lib/compact_index_client.rb:55:in `update_and_parse_checksums!'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/fetcher/compact_index.rb:65:in `available?'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/fetcher/compact_index.rb:15:in `call'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/fetcher/compact_index.rb:15:in `block in compact_index_request'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/fetcher.rb:154:in `use_api'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/source/rubygems.rb:331:in `block in api_fetchers'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/source/rubygems.rb:331:in `select'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/source/rubygems.rb:331:in `api_fetchers'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/source/rubygems.rb:336:in `block in remote_specs'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/index.rb:10:in `build'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/source/rubygems.rb:335:in `remote_specs'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/source/rubygems.rb:82:in `specs'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/definition.rb:211:in `block (2 levels) in index'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/definition.rb:209:in `each'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/definition.rb:209:in `block in index'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/index.rb:10:in `build'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/definition.rb:206:in `index'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/definition.rb:200:in `resolve'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/definition.rb:140:in `specs'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/definition.rb:129:in `resolve_remotely!'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/installer.rb:195:in `resolve_if_need'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/installer.rb:70:in `run'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/installer.rb:22:in `install'
      /home/hanocha/.rbenv/rbenv.d/exec/gem-rehash/rubygems_plugin.rb:27:in `install'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/cli/install.rb:102:in `run'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/cli.rb:175:in `install'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor.rb:359:in `dispatch'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/base.rb:440:in `start'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/cli.rb:11:in `start'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/exe/bundle:27:in `block in <top (required)>'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/friendly_errors.rb:98:in `with_friendly_errors'
      /home/hanocha/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/exe/bundle:19:in `<top (required)>'
      /home/hanocha/.rbenv/versions/2.3.1/bin/bundle:23:in `load'
      /home/hanocha/.rbenv/versions/2.3.1/bin/bundle:23:in `<main>'

Environment

  Bundler   1.12.5
  Rubygems  2.5.1
  Ruby      2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
  GEM_HOME  /home/hanocha/workspace/vendor/bundle/ruby/2.3.0
  GEM_PATH
  Git       1.9.1

      Bundler settings

  path
    Set for your local app (/home/hanocha/workspace/.bundle/config): "vendor/bundle"
  disable_shared_gems
    Set for your local app (/home/hanocha/workspace/.bundle/config): true
  orig_path
    Set via BUNDLE_ORIG_PATH: "/home/hanocha/.rbenv/versions/2.3.1/bin:/home/hanocha/.rbenv/libexec:/home/hanocha/.rbenv/plugins/ruby-build/bin:/home/hanocha/.rbenv/shims:/home/hanocha/.rbenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
--- TEMPLATE END ----------------------------------------------------------------

Unfortunately, an unexpected error occurred, and Bundler cannot continue.

First, try this link to see if there are any existing issue reports for this error:
https://github.com/bundler/bundler/search?q=parent+directory+is+world+writable+but+not+sticky&type=Issues

If there aren't any reports for this error yet, please create copy and paste the report template above into a new issue. Don't forget to anonymize any private data! The new issue form is located at:
https://github.com/bundler/bundler/issues/new

うん、ダメですね。

ちなみに、普通にrails newしてもダメでした。
ファイルの作成まではできても、bundle installで同じエラーになります。

調べても解決方法が出てこなかったので、とりあえず導入はあきらめました。
解決できるよ!という方は是非方法を教えていただきたいです…よろしくお願いします。

2
2
2

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
2
2