LoginSignup
0
0

More than 5 years have passed since last update.

一からはじめるRoRoBoW(前編)

Posted at

はじめに

  • 本記事は、Windows10 Pro 64ビットOSにてRoR環境を構築するにあたって、Ruby自体はほとんど囓ったことがない人向け、かつ、分かりやすく紐解くための内容です
  • 小生、Rubyについては様々な経緯で漠然と毛嫌いをしていたので、JavaやPHPについては経験があるが、Rubyについては一切経験がない程度
  • Bash on Windows環境自体は一切経験がない程度
  • 精々、redmine環境構築でrbenvやgem、Phusion Passengerを触った程度

環境構築

システム要件

Platform ServicePack Version VersionString
Win32NT 10.0.15063 Microsoft Windows NT 10.0.15063.0

手順

  1. BOWをセットアップ
    • Windows Subsystem for Linuxをインストールしてみよう!
    • Bash on Ubuntu on Windows環境構築メモ
      1. [スタート] - [歯車アイコンクリック] - [アプリ] - [アプリと機能]
      2. [関連設定] - [プログラムと機能クリック]
      3. [Windowsの機能の有効化または無効化] - [Windows Subsystem for Linux (Beta)] - [チェック有効化]
      4. [スタート] - [歯車アイコンクリック] - [更新とセキュリティ] - [開発者向け]
      5. [開発者向け機能を使う] - [開発者モード] - [ボタン有効化]
      6. [スタート] - [Windowsシステムツール] - [コマンドプロンプト](「ここに入力して検索」からcmdでも良い)
      7. lxrun /uninstall
      8. [スタート] - [Microsoft Store] - [検索窓] - [Ubuntuを入力]
      9. ダウンロードする
      10. インストールする
      11. [スタート] - [Bash on Ubuntu on Windowsをクリック]
      12. lsb_release -a
      13. cat /etc/os-release
    • Bash on Ubuntu on Windows の初期設定
  2. リポジトリの更新
  3. インストール済みのソフトウェア(rpmパッケージ)の更新
  4. rbenvインストール
  5. ruby-buildインストール

    • git clone https://github.com/sstephenson/ruby-build.git .rbenv/plugins/ruby-build
    • cd .rbenv/plugins/ruby-build
    • ./install.sh
    • mkdir: cannot create directory '/usr/local/share/ruby-build' : Permission denied
    • chmod 777 /usr/local/share
    • chmod: changing permissions of '/usr/local/share' : Operation not permitted
      • BoW上ではsu権限のないユーザーでrootユーザー所有のディレクトリの権限を開放することは出来ないらしい?
    • sudo ./install.sh
    • root権限が必要
      • sudo ./install.sh
    • root権限・かつroot環境変数が必要
      • sudo -E ./install.sh
    • [sudo] password for hoge:
  6. Rubyインストール

  7. Railsインストール

    • cd %rails対象アプリケーションHOME_DIR%
    • gem install rails --version="3.2.11"
    • ・・・(若干時間がかかる模様)・・・
    • Fetching / Successfully / Installing
    • rbenv rehash
  8. sqlite3インストール(環境依存)

    • Ruby on Rails 4.2をUbuntuにインストールする手順をかなり丁寧に説明してみました
    • apt-cache search sqlite3 | grep ^sqlite3
    • apt-cache search sqlite3 | grep ^libsqlite
    • root権限が必要
      • sudo apt-cache search sqlite3 | grep ^sqlite3
      • [sudo] password for hoge:
    • root権限・かつroot環境変数が必要
      • sudo -E apt-cache search sqlite3 | grep ^sqlite3
    • apt-get install -y sqlite3
    • root権限が必要
      • sudo -E apt-get install sqlite3 libsqlite3-dev nodejs
      • [sudo] password for hoge:
    • gem install sqlite3 -v 1.3.7
    • rbenv rehash
  9. libpq-devインストール(環境依存)

    • apt-get install -y libpq-dev
    • root権限が必要
      • sudo apt-get -y install libpq-dev
    • root権限・かつroot環境変数が必要
      • sudo -E apt-get -y install libpq-dev
    • gem install pg -v 0.13.2
    • rbenv rehash
  10. sass-rails(環境依存)

    • gem install sass-rails -v 3.2.3
    • rbenv rehash
  11. yumインストール

    • apt-get install yum
    • root権限が必要
      • sudo apt-get install -y yum
    • root権限・かつroot環境変数が必要
      • sudo -E apt-get install -y yum
    • 特に必要ではないのでスキップして良い
  12. autoconfインストール

    • apt-get install autoconf
    • root権限が必要
      • sudo apt-get install autoconf
    • root権限・かつroot環境変数が必要
      • sudo -E apt-get install autoconf
  13. bundleインストール

  14. 依存関係のインストール

    • cd %rails対象アプリケーションHOME_DIR%
    • ※開発環境指定したい場合bundle --path=vendor/bundle --without=production staging
    • bundle install
    • ====================================================
    • A lot has changed recently in Prawn.
    • Please read the changelog for details:
    • https://github.com/prawnpdf/prawn/wiki/CHANGELOG
    • ====================================================
  15. DB作成(環境依存)

    • bundle exec rake db:create
    • bundle exec rake db:migrate
    • ※サンプルデータ投入bundle exec rake db:seed
  16. Railsサーバー起動

    • rails s app-name(又はbundle exec rails s)

      コマンド 意味 省略形
      rails console コマンドラインでRailsアプリケーションとやり取りすることができる rails c production
      rails server WEBrickという小規模のwebサーバーが起動(WEBrickはRubyに標準添付されている rails s -e production -p 4000
      rake rake --tasks 実行可能なRakeタスクの一覧が表示 / rake about Ruby、RubyGems、Rails、Railsのサブコンポーネント (訳注: Active RecordやAction Packなど) のバージョン、Railsアプリケーションのフォルダー名、現在のRailsの環境名とデータベースアダプター、そして、スキーマのバージョンが表示される / rake assets:precompile app/assets配下のファイルをプレコンパイルすることができる / rake assets:clean 古くなったコンパイル済みのファイルを削除できる(新しいassetsのビルドをしながらも古いassetsへのリンクを残す「ローリングデプロイ (rolling deploy)」というやり方を実現) / rake assets:clobber public/assets配下を完全に消去 -
      rake db:migrate RailsはSQLite3に新しいデータベースを作る -
      rake db:create RailsはSQLite3に新しいデータベースを作る -
      rake db:seed テストデータを投入する -
      rake db:up マイグレーションを進める? -
      rake db:down マイグレーションを戻す -
      rake db:redo マイグレーションをロールバックする? -
      rake db:reset マイグレーションを0に戻す? -
      rails generate テンプレートを使用して様々なものを作成(コントローラジェネレータ、データモデルジェネレータ等) rails g controller
      rails destroy ジェネレータコマンドが何をしたか把握し、それを取り消す rails d model Oops
      rails dbconsole 使用しているデータベースを探し出し、適切なデータベースコマンドラインツールを起動。MySQL、PostgreSQL、SQLite、そしてSQLite3をサポート rails db
      rails db:migrate ジェネレータで作成したデータモデルのマイグレーションを走らせる -
      rails runner 非対話的にRailsの文脈でRubyのコードを実行することができる rails r
      rails new app_name 新しいRailsアプリケーションを作成 -
  17. Railsサーバー停止

  18. 失敗談

    • ※リポジトリの更新時※リポジトリからのダウンロード時にNetwork is unreachable
      • apt-get update
      • Cannot initiate the connection to archive.ubuntu.com:80 (2001:67c:1360:8001::17). - connect (101: Network is unreachable) IP: 2001:67c:1360:8001::17 80
    • 解決策
      • Proxyで外部接続している環境においては、https_proxy変数と、http_proxy変数をセットする。(sudo使用時には-Eで環境変数を引き継ぐオプションをつけ忘れないこと)
      • vi ~/.profile
      • export https_proxy="%proxy_server_URL:IncludeProtocol_o_ssl%"
      • export http_proxy="%proxy_server_URL:IncludeProtocol%"
      • source ~/.profile
      • sudo -E apt-get update
    • libpq-dev未インストールにおけるbundle install

      • libpq-dev未インストールにおけるbundle install
      • Fetching gem metadata from http://rubygems.org/...........
      • Fetching gem metadata from http://rubygems.org/.
      • Resolving dependencies
      • RubyGems...
      • Using / Fetching / Installing
      • Installing pg 0.13.2 with native extensions
      • Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
      • /home/hoge/.rbenv/versions/1.9.3-p547/bin/ruby extconf.rb
      • checking for pg_config... no
      • No pg_config... trying anyway. If building fails, please try again with
      • --with-pg-config=/path/to/pg_config
      • checking for libpq-fe.h... no
      • Can't find the 'libpq-fe.h header
      • *** extconf.rb failed ***
      • Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options.
      • Gem files will remain installed in /home/hoge/.rbenv/versions/1.9.3-p547/lib/ruby/gems/1.9.1/gems/pg-0.13.2 for inspection.
      • Results logged to /home/hoge/.rbenv/versions/1.9.3-p547/lib/ruby/gems/1.9.1/gems/pg-0.13.2/ext/gem_make.out
      • An error occurred while installing pg (0.13.2), and Bundler cannot continue.
      • Make sure that gem install pg -v '0.13.2' succeeds before bundling.
      • In Gemfile:
      • pg
    • 解決策

    • railsサーバーを実行する際にパッケージがみつからない

      • rails s
      • Could not find gem 'sass-rails (~> 3.2.3)' in any of the gem sources listed in your Gemfile.
      • Run bundle install to install missing gems.
    • 解決策

    • archive.ubuntu.comに接続できない

      • sudo apt-get install libpq-dev
      • Cannot initiate the connection to archive.ubuntu.com:80
      • (2001:67c:1360:8001::17). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8001::17 80]
    • 解決策

      • sudo vi /etc/resolvconf/resolv.conf.d/base
      • nameserver 8.8.8.8
      • nameserver 8.8.4.4
    • gitアクセス時に「error: server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none while accessing https://xxxx@xxxx.xxxx/xxxx/xxxx.git/info/refs」

    • 解決策

      • export GIT_SSL_NO_VERIFY=1
    • rails console実行時に「`require': cannot load such file --readhline」

    • bundler installでCould not load OpenSSLが発生する

      • apt-get install zlib1g-dev libssl-devを実行する
      • bundler install
      • それでも失敗する場合
      • rbenv uninstall %ruby version%
      • RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/bin" rbenv install 1.9.3-p125
      • --with-openssl-dirにはwhich opensslを代入する
      • bundle install
    • web / web-apサーバーを起動した際にWindows上からアクセスするには

後編へ続く

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