★まだ未解決です。状況をメモしておきます。★
間違えないための注意点
公式の手順で行うこと。
他のページを参考にする場合も、記事の作成日が新しいものを確認すること。
間違ってlinuxやwindowsの手順を参考にする場合は、きちんと違いを認識した上で参考にすること。
https://brew.sh/index_ja.html
背景
おそらく2、3種類のgemやrubyが混在していることが原因でrailsコマンドでエラーになったりと色々ハマりました。
rubyやrailsの導入方法がいくつも(インストールやソースコードからなどなど)あり、バージョンでも違っていたりするのに適当にググってみたサイトの手順を行っているとパスの不整合などが起きたのかなと思います。
その時の状況をまとめておきます。
だれもこんなことにはならないと思いますが。。。
■環境
macOS Sierra 10.12.6?
rubyのあった場所
その1.
/usr/bin/ruby ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
→mac標準
その2.
/Users/Nori/.rbenv/shims/ruby ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]
→rbenvからインストールした
その3.
/usr/local/opt/ruby/bin /usr/local/Cellar/ruby/バージョン(例:2.2.2)/bin/ruby
→Homebrew($ brew install ruby)でインストール?
その4.
RVM( http://rvm.io/ )でインストール
$ ruby -e \'puts $:\'
/usr/local/Cellar/ruby/2.4.2/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib /usr/local/lib/ruby/site_ruby/2.4.0
/usr/local/lib/ruby/site_ruby/2.4.0/x86_64-darwin16
/usr/local/lib/ruby/site_ruby /usr/local/lib/ruby/vendor_ruby/2.4.0
/usr/local/lib/ruby/vendor_ruby/2.4.0/x86_64-darwin16
/usr/local/lib/ruby/vendor_ruby
/usr/local/Cellar/ruby/2.4.2/lib/ruby/2.4.0
/usr/local/Cellar/ruby/2.4.2/lib/ruby/2.4.0/x86_64-darwin16
■やろうとしていたこと
以下のサイトを参考にWebAPI環境を用意しようとした
スマホアプリを作るために5分でWebAPIを作る方法を全力で超親切に解説する https://cre8cre8.com/rails/use-myapi-web-api-app.htm
■症状
最初、railsコマンドがないと表示される
$ rails new api
rbenv: rails: command not found
まぁ、インストールしてなかっただけだと思って、適当に検索してインストールしてみる。
→インストールしても変わらず。
なんで?パスも通っているし、railsの実行ファイルも存在していた。
ただし、以下の場所ではなかった。
~/.rbenv/shims/rails
以下の参考URLを元に、試したがコマンドでエラーが発生(メモし忘れ)
$ gem install rails && rbenv rehash
参考:https://qiita.com/ikm/items/cdc7026059ed65fb109d
そもそも、~/.rbenv/の下にファイルができない
なんでか。。。
以下、リンクメモ
MacでOperation not permittedが出た時の対処法
https://qiita.com/mym/items/90bf9f0a6417bd785bb0gemでTo eliminate this warning, please install libyaml and reinstall your ruby.のエラーが出た場合の対処
https://qiita.com/dvorak__/items/8e6ace5236407096fef1Upgrading to Ruby 2.4.1_1 breaks gem command.
https://github.com/Homebrew/homebrew-core/issues/11636rm -rf /usr/local/lib/ruby/gems/2.4.0/gems/psych-2.2.4 rm -rf /usr/local/lib/ruby/gems/2.4.0/extensions/x86_64-darwin-16/2.4.0/psych-2.2.4 bundler: failed to load command: spring (/usr/local/bin/spring) $ rbenv install 2.4.0 ~~略~~ BUILD FAILED (OS X 10.12.6 using ruby-build 20170914) ~~略~~ compiling zlib.c linking shared-object zlib.bundle *** Following extensions failed to configure: ../.././ext/gdbm/extconf.rb:0: Failed to configure gdbm. It will not be installed. *** Fix the problems, then remove these directories and try again if you want. linking ruby Generating RDoc documentation dyld: lazy symbol binding failed: Symbol not found: _utimensat Referenced from: /private/var/folders/qq/p4srrcdj7lg9j8dhd_n231gc0000gp/T/ruby-build.20171020152808.21704/ruby-2.4.2/./ruby Expected in: /usr/lib/libSystem.B.dylib dyld: Symbol not found: _utimensat Referenced from: /private/var/folders/qq/p4srrcdj7lg9j8dhd_n231gc0000gp/T/ruby-build.20171020152808.21704/ruby-2.4.2/./ruby Expected in: /usr/lib/libSystem.B.dylib
→xcodeのツール?のインストールが必要
$ xcode-select --install
もう一度、rbenv install 2.4.0すると成功した。
~/.rbenv/shims/ の下にもrubyがいることを確認$ rbenv versions * system (set by /Users/User/.rbenv/version) 2.4.0 $ rbenv global 2.4.0 $ rbenv versions system * 2.4.0 (set by /Users/User/.rbenv/version)
Rails5のAPIモードを超速で試す
https://qiita.com/master-of-sugar/items/7f76bed026e64ec1cceb$ rails new rails-api --api ~~略~~ Use `bundle info [gemname]` to see where a bundled gem is installed. run bundle exec spring binstub --all bundler: failed to load command: spring (/usr/local/bin/spring) Gem::Exception: can't find executable spring for gem spring. spring is not currently included in the bundle, perhaps you meant to add it to your Gemfile? /Users/User/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.16.0.pre.3/lib/bundler/rubygems_integration.rb:457:in `block in replace_bin_path' /Users/User/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.16.0.pre.3/lib/bundler/rubygems_integration.rb:477:in `block in replace_bin_path' /usr/local/bin/spring:23:in `<top (required)>`
以下の処理が行われていない。。。
なんでか。
強制的にインストールするようにした(group :〜〜とendを削除)ら通った。$ vi Gemfile group :development do gem 'listen', '>= 3.0.5', '< 3.2' # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring gem 'spring' gem 'spring-watcher-listen', '~> 2.0.0' end
コメント