【手順】Mac(M1)で仮想環境Ubuntu構築+Ruby on Rails環境構築+VSCodeから編集【無料】

「お試し」的に、開発環境を手元に作りたい時がありますよね。
最近はクラウドサービスを使うことも多いですが、費用や時間制限なく、ダラダラとローカルマシンで使いたくなることもあるでしょう。

しかし、ローカルマシンにゴリゴリとインストールしてしまうと、環境が汚れてしまうのも面倒です・・・

ということで、ローカルを極力汚さずに、しかし、快適に遊べる環境を作ってみましょう。

※すべて無料で用意できます。稼働させ続けても、コストは電気代のみです。

環境

構築環境(目的となるサーバ)

M1 Mac上に以下の仮想環境を用意します。

  • Ubuntu 22.04.1 LTS(ARM 64bit)
  • Ruby 3.1.2
  • Ruby on Rails 7.0.3.1

物理環境

  • MacBook Pro 2021(M1 Max)
  • macOS Monterey 12.5.1
  • UTM 3.2.4

使用環境

Macより、VS Codeを用いて、仮想環境にあるRailsを操作。
ブラウザでの動作確認も、Macから実施。

手順1:仮想環境 Ubuntu の構築

「UTM」という「仮想化ソフト」を使って、その上に「Ubuntu」を構築します。
「UTM」はM1 Macにも対応しており、仮想環境とは思えない速度で利用することができます。

なお、今回は「Ubuntu」を利用しますが、様々なOSに対応しておりますので、OSのお試しにもかなり「UTM」は使えるかと思います。

「UTM」のダウンロード

以下の公式サイトからダウンロードします。

UTM

Securely run operating systems on your Mac…

通常のアプリと同様に、Macの「アプリケーション」フォルダにコピーしましょう。

「Ubuntu」のISOイメージをダウンロード

M1 Macですので、ARM系のUbuntuをダウンロードしましょう。

長い目で見ると、LTSバージョンがよいかと思います。

※LTS・・・公式サポートで定めている、長期サポートバージョンのこと。

執筆時点、22.04.1がLTSでしたので、そちらをダウンロードします。

Ubuntu

Download Ubuntu Server for ARM with support for the very lat…

「UTM」で「Ubuntu」を構築

以下の手順を大変参考にさせていただきました。
こちらの内容に沿って、仮想環境を構築ください。

オブジェクト指向がわからない!

思い返せば、1年ちょっと前にIntel MacからM1 Macに機種変したときに(言い方あってる?)、それまで使っていた…

仮想化「Ubuntu」のネットワーク設定

一部、上記ではネットワークがうまく構築できず、MacからのSSHがうまくいきませんでした。
(Macからうまく接続できた方は、当手順は対応せずでよいと思います。)

そのため、仮想OSをブリッジモードに変更します。

「UTM」で該当の仮想OSの設定を開き、Networkで変更できます。

加えて、Ubuntuを固定IP化しちゃいます。

Ubuntu内の設定を変更します。
もちろん、固定IPはメインマシン(MacBook Pro)と同じネットワークセグメントに所属させましょう。

# ファイルを編集
sudo vim /etc/netplan/00-installer-config.yaml

## 例えば、以下のように設定します
# This is the network config written by 'subiquity'
network:
    ethernets:
        enp0s6:
            addresses: [192.168.0.200/24]
            gateway4: 192.168.1.1
        nameservers:
            addresses: [192.168.1.1]
    version: 2


# 定義を反映
sudo netplan apply

以上で、Ubuntuを遊ぶ準備ができました。

手順2:Ruby on Rails環境の構築

Ubuntu上に、Ruby on Railsの環境を構築していきます。

各種インストール

以下の手順で構築できますので、ご参考ください。

なお、Ruby、Railsをインストールするバージョンは、任意のものに置き換えて実行しましょう。
特別な要件がなければ、できるだけ最新バージョンがよいかと思います。

Qiita

本記事について、問題点についてご指摘くださっている記事がございます。もし検索エンジンからこちらの記事にたどり着いた方は恐…

ブラウザからのアクセス設定

Ruby on Rails 6から、localhost以外からのアクセスがデフォルトブロックされるようになっています。(セキュリティのため)

そのため、Macのブラウザからアクセスする場合、許可設定とネームを設定してあげる必要があります。

Macのhosts設定

ネーム解決する場所はどこでもよいのですが、今回はローカルに設定しちゃいます。

Macのターミナルにて hosts ファイルを編集します。
IPアドレスやネームは任意のものを設定してください。

# hostsファイルを編集
sudo vim /private/etc/hosts

# ファイル末尾に追加
192.168.0.200    test.rails.home


# 疎通確認
ping test.rails.home

UbuntuのRails設定変更

Railsアプリの配下にある環境設定に追記します。

※Railsアプリとは、rails new app で構築した環境です。

# 環境設定ファイルを編集
# configはrailsアプリディレクトリの直下です
vim config/environments/development.rb

# ファイル末尾に追加
    config.hosts << "test.rails.home"

# 設定確認
rails c

# Railsプロンプト上で
Rails.application.config.hosts
# 上記で設定したドメインが追記されていればOK

(補足)Railsサーバの起動

-bオプションを使って起動しましょう。

コマンドを実行するパスは、Railsアプリ直下となります。

rails s -b 0.0.0.0

-b に関しては、以下の記事でご説明いただいています。

Qiita

仮想環境内でRailsを立ち上げる時に、意味がわからず、オプションとして-b 0.0.0.0をつけていませんか?-bオプ…

ブラウザから接続

以下のようなアドレスでブラウザから接続できるかと思います。

http://test.rails.home:3000

これでオモチャ環境の構築完了です。

おつかれさまでした!

手順3:VS Codeから便利に編集できる環境の構築

実施必須ではありませんが、Rubyをコーディングするにあたり、高性能なエディタが使えると楽です。

最近定番のエディタ「VS Code」に、以下の拡張機能を追加すると便利でしょう。

サーバ内ファイル直接操作

Remote SSH を追加しましょう。

Qiita

#VS Code で Remote SSHVS Code で Remote SSH する方法を記載しておきます。はじめに…

Ruby関連のフォロー機能

以下にまとめられています。

Qiita

はじめにこちらは Classi Advent Calendar 19日目の記事です。こんにちは、Classi Webエン…

※ご回答希望の場合は、ご連絡先も記入ください
"意見が持てる" デジタルコラム
絶賛配信中!

メルマガ詳細はこちら >>>

送信時点で「Privacy Policy」に同意したものとみなします。
広告を含むご案内のメールをお送りする場合があります。
   
         
最後までお読みいただき、ありがとうございました。
以下も、ぜひご活用ください^^
出版物
ITmedia
メルマガ
Site Access Log by HTTP Header
>情報システムの

情報システムの"教科書"本を発売中!


■ 情シス、システムコンサルタント、システムエンジニアの方へ
情シスの定石(技術評論社)

■ システムエンジニア、情シスの方へ
2023年10月7日(土)発売
システム設計の教科書(技術評論社)

CTR IMG

■ 著者 石黒直樹による書籍説明動画