Ruby on Rails環境構築の諸確認【公式ドキュメントリンク集まとめ】

新しい挑戦

2024年12月時点での情報としてお届けします。環境構築で各種のソフトインストール時に参照できるリンクを残したい。また、インストールの中で生じた問題と解決法も残します。

環境構築と確認

環境構築は積み重ねの大事になる作業です。基本となるRubyが適切にインストール出来ているか、その後にRailsやSQLのインストールが出来ているか確認、データベースが適切か確認してGemも適切か確認しましょう。

なにより、今どきの作業なのでAIを使って自分の作業に問題がないか確認を続け、YouTubeなどで全ての作業が「通常どおり」に作業出来ているか確認してください。

Rubyインストール完了の確認

コマンドプロンプトで以下を実行して、Rubyが正しくインストールされていることを確認します。

ruby -v

出力例:

ruby 2.6.3p62 (2019-04-16 revision 67580) [x64-mingw32] (筆者のバージョン例)
(参考:Download Archives

エラー確認方法

エラー例: Unable to install Rails due to permissions error
対策:

    1. 管理者権限でコマンドプロンプトを実行。
    2. それでも解決しない場合は、sudoコマンドが利用可能な環境(WSLなど)を検討します。
    3. ChatGPTやCopilot(それぞれAI)にエラー全文をコピーして質問。

Railsインストール完了の確認

コマンドプロンプトで以下を実行して、Railsが正しくインストールされていることを確認します。

rails -v 

出力例: Rails 6.1.7.10(筆者のバージョン例)

エラー確認方法:

Rails のインストール時のエラー確認は重要です。Rubyと互換性があるか確認する事が大事です。
インストール時にエラーが発生した場合、原因を特定するための確認方法と手順を以下にまとめました。

1. エラーメッセージを確認する

インストール時にターミナルやコマンドプロンプトに表示されるエラーメッセージを確認します。
エラーメッセージの最下部に問題の原因やヒントが書かれていることが多いです。

例:ERROR: Error installing rails:
ERROR: Failed to build gem native extension.

このようなメッセージが出た場合、関連するライブラリや依存関係が不足している可能性があります。


2. RubyとGemのバージョン確認

RailsはRubyやRubygemsのバージョンと互換性があるため、以下のコマンドでバージョンを確認してください。

ruby -v # Rubyのバージョン確認
gem -v # Gemのバージョン確認

対応バージョンの確認
Railsの公式ドキュメントで、インストールしようとしているRailsのバージョンに必要なRubyのバージョンを確認します。

https://railsdoc.com/ (参考)


3. Railsのインストールコマンドを再実行

以下のコマンドを使ってRailsをインストールします。

gem install rails

バージョンを指定する場合:
gem install rails -v '6.1.4' # Rails 6.1.4をインストール

エラーメッセージが再度表示される場合、次の手順に進みます。


4. 必要な依存関係の確認

Railsのインストール時には、システムにいくつかの依存パッケージが必要です。
OSごとに必要なパッケージが異なるので、以下を参考にインストールしてください。

Macの場合

Homebrewを使用して必要なパッケージをインストールします。

brew install ruby
brew install openssl readline zlib

Linux (Ubuntu) の場合

sudo apt update
sudo apt install -y ruby-full build-essential libssl-dev libreadline-dev zlib1g-dev

Windowsの場合

Windowsでは、WSL (Windows Subsystem for Linux) の導入が推奨されます。
RubyInstallerを使う場合、Devkit(開発ツールキット)を一緒にインストールします。


5. Gemの更新

Gemが古い場合、依存関係の解決でエラーが発生することがあります。
次のコマンドで更新します。:gem update --system

(以下入出力例)
C:\Users\user\techgym_rails\techgym_rails_course01>gem update –system
Updating rubygems-update
ERROR: Error installing rubygems-update:
rubygems-update-3.5.23 requires Ruby version >= 3.0.0. The current ruby version is 2.6.3.62.
Installing RubyGems 3.2.3
Successfully built RubyGem
Name: bundler
Version: 2.2.3
File: bundler-2.2.3.gem
Bundler 2.2.3 installed
RubyGems 3.2.3 installed
Regenerating binstubs
Regenerating plugins
Parsing documentation for rubygems-3.2.3

このエラーメッセージは、gem update --systemコマンドを実行した際にRubyのバージョンが古いため、最新のrubygems-updateがインストールできなかったことを意味しています。


(エラーメッセージの解説)

  1. rubygems-update-3.5.23 requires Ruby version >= 3.0.0
    • 最新のrubygems-update(バージョン3.5.23)をインストールしようとしましたが、Ruby 3.0.0以上が必要です。
    • 現在使用しているRubyのバージョンは2.6.3のため、条件を満たしていません。
  2. Installing RubyGems 3.2.3
    • Rubyのバージョンが古いため、システムはrubygems-updateの代わりに、互換性のあるRubyGems 3.2.3をインストールしました。
  3. Successfully built RubyGem
    • RubyGems 3.2.3のインストールが正常に完了しました。
  4. Bundler 2.2.3 installed
    • Bundlerもバージョン2.2.3にインストール・更新されています。
  5. Parsing documentation for rubygems-3.2.3
    • RubyGems 3.2.3に関するドキュメントを生成しています。

意味のまとめ

  • あなたのRubyバージョン(2.6.3)は古いため、最新のRubyGems(3.5.23)がインストールできませんでした。
  • 代わりに互換性のあるバージョン(RubyGems 3.2.3)がインストールされました。
  • Bundler(2.2.3)も正常にインストールされました。

6. Bundlerの確認

Railsプロジェクトではbundlerが必要です。
次のコマンドで確認・インストールします。:gem install bundler


7. ネイティブ拡張のエラー対応

エラーメッセージに「Failed to build gem native extension.」と表示された場合、ネイティブ拡張をビルドするためのツールが不足しています。

  • Mac/Linux: Xcodeやbuild-essentialをインストール
    # Mac
    xcode-select --install
    # Linux
    sudo apt install -y build-essential
  • Windows: Devkitのインストールを確認します。

8. インストール後の動作確認

Railsが正しくインストールされたか確認します。
rails -v

正しくインストールされていれば、バージョンが表示されます:

Rails 6.1.7.10(筆者のバージョン例)

SQLiteや他のデータベースの設定

データベースとしてはアマゾンAWSを使ってます。私は初回インストールでPostalSQLで進めていましたが上手くいきませんでした。結果としてPostgreSQLの代わりにSQLiteを使用するように設定を変更する必要が生じたのです。以下の手順を試してください。 (参考.SQLite公式:SQLite Download Page


1. Gemfileを変更してSQLiteを使用するように設定

Gemfileに記載されているpg(PostgreSQL用のgem)を削除し、sqlite3を追加します。

  1. Gemfileを開き、pgの行を削除またはコメントアウトします。
    # gem 'pg'
  2. 次に、sqlite3 gemを追加します。以下のように記述してください。
    gem 'sqlite3', '~> 1.4'
  3. 変更を保存したら、bundle installを実行して依存関係をインストールします。
    bundle install

2. config/database.ymlをSQLite用に設定

次に、config/database.ymlの設定をSQLite用に変更します。以下のように設定します。

yaml
default: &default
adapter: sqlite3
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
development:
<<: *default
database: db/development.sqlite3test:
<<: *default
database: db/test.sqlite3production:
<<: *default
database: db/production.sqlite3

これで、SQLiteを使用する設定に変更されます。


3. データベースの作成とセットアップ

Gemfiledatabase.ymlを変更した後、データベースを作成してセットアップします。以下のコマンドを実行します。

bundle exec rake db:create
bundle exec rake db:setup

これで、RailsプロジェクトはPostgreSQLではなくSQLiteを使用するように変更され、エラーも解消されるはずです。

localhost:3000 でサーバー確認

http://localhost:3000/でサーバーが起動しない問題の原因として、いくつかの可能性を確認する必要があります。以下の手順を試してみてください。


1. サーバーが正しく起動しているか確認

  • サーバーを起動するためのコマンド(例:npm startyarn start)を実行した際に、エラーメッセージが出ていないか確認してください。
  • 正常に起動している場合、ターミナルに「Listening on port 3000」や「Server is running on localhost:3000」といったメッセージが表示されるはずです。

2. ポートが既に使用中か確認

  • 他のプロセスがポート3000を使用している可能性があります。
  • 以下のコマンドで確認できます:
    • Windows:
      netstat -ano | findstr :3000
    • Mac/Linux:
      lsof -i :3000
  • ポート3000を使用しているプロセスがあれば、タスクマネージャーやkillコマンドでプロセスを終了させてください:
    • Mac/Linux:
      kill -9 [PID]
    • Windows:
      taskkill /PID [PID] /F

3. プロキシ設定の確認

  • プロキシをOFFにしたとありますが、ブラウザやOSレベルのプロキシ設定を再確認してください。
  • また、package.jsonproxy設定がある場合、正しい設定になっているか確認してください。

4. ファイアウォールやセキュリティソフトの確認

  • ファイアウォールやセキュリティソフトがポート3000の通信をブロックしていないか確認してください。

5. ブラウザキャッシュのクリア

  • ブラウザが古い情報を保持している場合、キャッシュをクリアして再度アクセスしてください。

6. 他のポートで試す

  • ポート3000が使えない場合、他のポートで起動できるか試してみてください。
  • コマンド例:
    PORT=4000 npm start

    その後、http://localhost:4000/でアクセスします。


7. ログの確認

  • エラーログが出力されていないか確認してください。
    • Node.jsアプリの場合、console.logconsole.errorで出力される情報が役立つことがあります。

8. 開発サーバーの再インストール

  • Node.js関連の依存関係が壊れている可能性があります。以下の手順で再インストールを試してください:
    bash
    rm -rf node_modules
    npm install
    npm start

具体的な確認ツール

VsualStudio等のエディター以外にパソコン内で使うソフトが適切に導入されているかという確認です。

1. コマンドプロンプトやターミナルを開く

  • Windowsの場合:
    • スタートメニューで「cmd」と検索して「コマンドプロンプト」を開く。
    • もしくは、「Windows PowerShell」や「Windows Terminal」を使用することも可能です。
  • MacまたはLinuxの場合:
    • 「ターミナル」を開きます(Spotlightで「Terminal」と検索するか、アプリケーションから選択)。

2. プロジェクトフォルダに移動する

サーバーを起動するためのプロジェクトフォルダに移動します。

  • フォルダの場所が「C:\myproject」の場合(Windows):
    cd C:\myproject
  • フォルダの場所が「/Users/username/myproject」の場合(Mac/Linux):
    cd /Users/username/myproject

3. 必要なコマンドを入力する

フォルダ内で以下のコマンドを入力します:

npmを使う場合:

npm start

yarnを使う場合:

yarn start
  • プロジェクトによっては別のコマンドが指定されている場合もあるため、package.json"scripts"セクションを確認すると良いです。

4. サーバーが起動するか確認

  • 正しく起動すれば、ターミナルにログメッセージが表示されます(例:「Server is running on port 3000」など)。
  • ブラウザでhttp://localhost:3000/にアクセスして動作を確認します。

5. エラーが出る場合

  • エラーメッセージをよく読み、問題を特定します。(この繰り返しです)

「マイグレーションを追加する」作業

Ruby on Railsで「マイグレーションを追加する」作業は、データベースのスキーマ(構造)を変更するために使います。以下に、具体的な手順を明示します:


1. マイグレーションファイルを作成する

マイグレーションファイルを作成するには、Railsのrails generate migrationコマンドを使用します。

例1: テーブルにカラムを追加する場合

たとえば、usersテーブルにageという整数カラムを追加する場合:

bash
rails generate migration AddAgeToUsers age:integer

このコマンドで次のようなマイグレーションファイルが生成されます(ファイル名はタイムスタンプに基づいています):

bash
db/migrate/20241215123456_add_age_to_users.rb

例2: 新しいテーブルを作成する場合

productsという新しいテーブルを作成する場合:

bash
rails generate migration CreateProducts name:string price:decimal

これにより、次のようなマイグレーションファイルが生成されます:

bash
db/migrate/20241215123567_create_products.rb

2. マイグレーションファイルの編集(必要に応じて)

生成されたマイグレーションファイルを確認し、必要があれば編集します。例として、AddAgeToUsersの内容は以下のようになっています:

ruby
class AddAgeToUsers < ActiveRecord::Migration[6.1]
def change
add_column :users, :age, :integer
end
end

このようにchangeメソッドが既に記述されていますが、複雑な変更を行う場合はupdownを使ったメソッドを記述することもあります。


3. マイグレーションを実行する

マイグレーションをデータベースに反映させるためには、以下のコマンドを実行します:

bash
rails db:migrate
  • このコマンドにより、db/migrateディレクトリ内のマイグレーションファイルが順番に実行され、データベースのスキーマが更新されます。
  • 実行後、変更内容が db/schema.rb ファイルに記録されます。

4. マイグレーションの確認

マイグレーションが正しく適用されたか確認する方法です。

データベースのスキーマを確認

db/schema.rbを確認すると、最新のスキーマが反映されていることを確認できます。

データベースを手動で確認

Railsコンソールでテーブルを確認します:

bash
rails console

以下のようにしてテーブル情報を確認します:

ruby
User.column_names #=> ["id", "name", "email", "age", ...]

5. マイグレーションのロールバック(必要な場合)

もし何か問題が発生した場合、直前のマイグレーションを取り消すことができます:

rails db:rollback

これにより、最後に実行したマイグレーションが取り消されます。


注意点

  1. バージョン管理: マイグレーションファイルはGitなどで必ず管理し、他の開発者と同期してください。
  2. 本番環境への適用: 本番環境ではrails db:migrateを実行する前に、バックアップを取ることをおすすめします。

〆最後に〆

以上、間違い・ご意見は
次のアドレスまでお願いします。
最近は全て返信出来てませんが
適時、返信して改定をします。

nowkouji226@gmail.com

全体の纏め記事へ】

雑記の纏め記事に戻る

Pythonをテックジムで学ぼう

Python学習での諸情報

コメント

タイトルとURLをコピーしました