Rubyに挑戦! Mac本体のRubyのバージョンが更新されないトラップ comunica | 2018年9月3日 2018年9月3日 コムニカの中では「プログラムはよくわかっていない」という私がRubyに手を出してみました。日本人が作った言語で、一番シンプルで簡単と言われているプログラミング言語らしいです。 これで脱落したら私にはプログラミングの才能なし!ということになりそうな予感……。 そんな私は、今までJavaScriptやCGIはどこかからパクってきた(もちろんパクっていいやつ)プログラムを、試行錯誤しながら何とかカスタマイズしたり、WordPressのPHPも複雑なテンプレートでなければ作れる程度のレベルです。(複雑なのはパクってカスタマイズ、です) で、Rubyの本を一冊調達。中身を見ているだけで眠くなりそうです!(おいおい) まずは実行環境を準備しますが、私が使っているMacには最初からRubyがインストールされているので、バージョンさえ気にしなければターミナルを立ち上げてすぐにRubyを始められます。ただ、古いRubyではできないこともあるらしいので、新しいバージョンをインストールし、それを切り替えて使うことができるツールをインストールすると良いようです。 Windowsの場合は、Rubyはインストールされていませんので、インストールする必要があります。 今回はMacで実行環境を作りました。 インストールされているRubyのバージョンを確認 まずは、自分のマシンに入っているRubyのバージョンを確認します。 ターミナルを立ち上げて下記のコマンドを実行するとバージョンが確認できます。 $ruby –version 私のマシンは2年ほど前に購入したMacbook Airで、Rubyのバージョンは2.0.0でちょっと古めでした。 手元にあるRubyの教本は新しいものなので、新しいバージョンのRubyを準備することにしました。 それに必要なのものが、Homebrewとrbenvというソフトです。 どちらも、ターミナルからコマンドを実行してインストールを行います。私が参考にしたのは MacでRuby!ターミナルの使い方からHomebrewのインストールで環境構築 です。 とてもわかりやすく説明されているので、私のようにあまりターミナルを使わない、という人も安心して操作できます。 とは言え、これからインストールする2つのソフトが何者かを知りたかったので、ちょっと調べてからインストールしました。 これからインストールするHomebrewは、MacOS上でプログラミングをする時に必要なパッケージをターミナルを使ってインストールしたりアンインストールしたりできるソフトで、パッケージ管理システムと呼ばれています。Rubyだけでなく他のプログラミング言語の開発環境を作る時に使います。 読み方はホームブルー、公式サイトにはビールのジョッキにりんごが突っ込まれていますw もう一つのrbenvは、複数のRubyのバージョンを管理するためのソフトで、Rubyのバージョンを指定してインストールしたり、バージョンを切り替えたりします。 色々な情報を参考にしながら、私はRuby 2.5.0をインストールしました。インストールした後は、rbenvでシステム全体または指定のディレクトリ内で使うかを指定してバージョンを切り替えられます。私は全体を新しい2.5.0に指定しました。 と・こ・ろ・が! ターミナルからMac本体のRubyのバージョンを確認してみると $ ruby -v 返ってきたのは ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16] あれ?2.0.0のまんま。 rbenvで管理されているバージョンを調べると…… $ rbenv versions system * 2.5.0 (set by /Users/comunica/.rbenv/version) ちゃんと、新しいバージョンになっていて、rbenvも働いています。 globalでバージョンを2.5.0に変更したのに、Mac本体のバージョンは2.0.0更新されていないようです。 Rubyのパスが通ってないってこと?? ま、いいか。プログラムの勉強はできるし。 けれど、これが、この後の悲劇の始まり……。 Ruby on Rails5をインストール さて、この後「Ruby on Railsも入れといたら?」と言われたので、ついでにインストールすることにしました。 気軽にトライしたものの、ここでどハマりしてしまいました。 参考にしたのはこちらのページ。コマンドコピペでOK!で初心者には嬉しいページです。 コマンドのコピペでOK!Ruby on Rails 5をMacにインストールするまでの手順まとめ【2017年版】 RDocのインストールでSSL証明書エラー Command Line Toolを使うために、Xcodeをインストールせよと書いてあるのですが、iOSの開発予定もない私は、激重のXcodeはインストールしたくありません。Command Line ToosはXcodeなしでもインストールする方法はあるので、とりあえずここはスキップし、上記サイトの5の手順であるRDocのインストールから始めることにしました。 $ gem install rdoc すると、いきなりエラー……。エラーの一部に”Unable to download data from https://rubygems.org/ – SSL_connect retu”の文字。どうやら。GemサーバーのSSL証明書エラーのようです。 なんでやねん。 ダウンロード先のURLを一時的にhttpsからhttpに変更しなければなりません。 $ gem source -a http://rubygems.org/ 次に安全のためhttpsを推奨するけど、いいの?とメッセージが出ます。 https://rubygems.org is recommended for security over http://rubygems.org Do you want to add this insecure source? [yn] だって、変えなきゃんストールできないんだもの、と yのキーを押してEnter. これで再度インストールコマンドを打てば実行されます。 やれやれ。 Railsがインストールできない Mac本体のRubyが更新されていない? さて、次はBundlerのインストールです。BundlerはRailsで使用するRubyライブラリーを管理するツールです。実は、ここでどハマりすることになりました。 コマンドを実行しても、Rubyのバージョンが古くてインストールできないと怒られます。 $ gem install bundler 怒られた内容のスクショとりわすれました。(必死すぎて) そう、Rubyをインストールした後、Mac本体のRubyバージョンが2.0.0と表示されるのを放置したのが原因です。 どうやら、問題はrbenvの.bash_profileパスっぽい……。(よく分からんっす) .bash_profileは、ログインした時に最初に読み込まれる設定ファイル、とのことで、この場所が問題っぽい。 調べてみると、「rbenvを初期化して.bash_profileを読み込むコマンドを打ってみよ」とあったので実行。 $ rbenv init $ source ~/.bash_profile そんなもんないわ!と返されてしまいました。ないっていわれても〜、じゃ、どこにあるのよ〜? で、この子がどこにいるかを調べてみると $ which rbenv /usr/local/bin/rbenv うぉ、ローカルにいる。 要するに、このローカルにいる.bash_profileが認識されればいいってこと?? もうここまでくると、どうすればよいのかさっぱりわかりません。もう、ググるしかありません。 すると、以下のコマンドを1つづつ実行せよとありました。 $ rm ~/.bash_profile $ touch ~/.bash_profile $ echo ‘export PATH=”$HOME/.rbenv/bin:$PATH”‘ >> ~/.bash_profile $ echo ‘eval “$(rbenv init -)”‘ >> ~/.bash_profile 私にはさっぱり意味不明ですが、どうやら、ローカルのプロファイルを削除して新しくパスをターミナル起動時に認識させるようです。 何をしているのかいまいち分からないコマンドを打ち込むのはちょっとしたスリルです。 けれど、私のMacbookはTimeMachineでバックアップを取っているので、最悪、昨日の状態にシステムを戻せばいいので、呪文だと思って打ち込むしかありません。 1行づつコピペで実行。 終わったらターミナルを終了させて、再度起動。sourceコマンドでbash_profileを読み込んで更新します。 $ source ~/.bash_profile 終わったらもう一度ターミナルを終了させ、起動して ruby -v でバージョンを確認します。 $ ruby -v ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin16] やった〜!やっと更新された! やれやれ。これでやっとRails5がインストールできます。 $ gem install bundler を実行してみると、無事にインストールが始まりました。 Bundlerのインストールが済んだので、いよいよRails本体のインストールです。 ドキドキ。上手くいくかしら〜、とコマンドを打ちます。 $ gem install rails 管理者権限がないと怒られました……。スドさん(sudo:管理者権限)をつけて再度実行。 $ sudo gem install rails パスワードを聞かれるのでマシンのログインパスワードを入力します。 (管理者権限でログインしていない場合は、ログインし直さないとダメ) 終わったら、バージョンを確認して表示できれば無事インストール完了 $ rails -v Rails 5.2.1 やれやれ。あとは新規アプリケーションを作成して、サーバーで実行して表示されれば成功です。 アプリを保存するフォルダを作成したら、そのフォルダでターミナルを起動します。 (フォルダをターミナルにドラッグ&ドロップして起動すると楽チンです) 新しいアプリを作成するコマンドを実行します(”Sample”は任意のアプリ名にします) $ rails new Sample 指定したフォルダの中に”Sample”というディレクトリが作られ、必要なファイルが自動的に作られます。このときRailsのサーバーも設定されます。 終わったら、ターミナルからRailsのサーバーを起動します。 $ rails s ブラウザで、起動できているか確認します。 ちょっと時間がかかりますが、こんな感じで色々出てきます。 サーバーはPumaという名前みたいです。 それよりコードネームの”Llamas in Pajamas”の方が気になる私。リャマのパジャマって何? $ rails s => Booting Puma => Rails 5.2.1 application starting in development => Run `rails server -h` for more startup options Puma starting in single mode… * Version 3.12.0 (ruby 2.5.0-p0), codename: Llamas in Pajamas * Min threads: 5, max threads: 5 * Environment: development * Listening on tcp://0.0.0.0:3000 Use Ctrl-C to stop localhost:3000のアドレスを打ち込むとアプリが起動します。 やったーーーー!無事起動! サーバーの終了はContrl+c です。 ターミナルにはこんなふうに表示されます。 ^C- Gracefully stopping, waiting for requests to finish === puma shutdown: 2018-09-03 14:44:23 +0900 === – Goodbye! Exiting 長い道のり、インストールだけで力を使い切ってしまいました。 なんだか、やりきった感がすごいのですが、やっとスタート……。 環境を用意するのは、初心者にはなかなかハードル高いな、という感じです。 これから、プログラミングを覚えるのが本番なのですが、さて、どうしましょう……。 この記事が続くかどうか分からないので、新しいカテゴリを作るのやめました(弱気)