コレグレーデギネード

WindowsとかUbuntuとかRubyとかRailsとか

自分用メモ)Ubuntu22.04.3にRuby on Rails開発環境を整える

  • VirtualBoxにインストールされたUbuntu22.04.3が対象
  • vimssh、git、curlがインストール済みであること
  • シェルはBashを使用
  • rubyバージョンは2.7.1
  • railsバージョンは6.1.3.2
  • データベースはPostgreSQLを使用
  • ImageMagickを使用
  • プロジェクトはgitで管理

rbenv

Ruby管理ツールrbenvをインストールする

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

rbenvがシェルで使えるようにパスを通す

$ echo 'export PATH="~/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc

シェルの設定を反映

$ source ~/.bashrc

rbenvがインストールされたか確認

$ rbenv --version
$ rbenv 1.2.0-87-ge8b7a27

必要なライブラリーをインストール

$ sudo apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev

ruby

インストール可能なRubyの全バージョンを表示

$ rbenv install -L/--list-all

rubyをインストール

$ rbenv install 2.7.1
==> Downloading ruby-2.7.1.tar.gz...
Installing ruby-2.7.1...

標準で使用するrubyバージョンを指定

$ rbenv global 2.7.1

rubyがインストールされたか確認

$ ruby --version
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]

bundler

bundlerのインストール

$ gem install bundler -v 2.4.22

PostgreSQL

PostgreSQLをインストールする

$ sudo apt install postgresql

ライブラリをインストール

$ sudo apt install libpq-dev

ユーザの追加

$ sudo su - postgres
$ createuser --createdb [user]

ImageMagick

ImageMagickをインストールする

$ sudo apt install imagemagick

ライブラリをインストール

$ sudo apt install libmagickcore-dev

PDFを扱う場合

$ sudo vim /etc/ImageMagick-6/policy.xm
97行目
-  <policy domain="coder" rights="none" pattern="PDF" />
+  <policy domain="coder" rights="read|write" pattern="PDF" />

SSH

SSHの鍵を作成する

$ ssh-keygen

公開鍵をgitに登録する

省略

クローン

gitで管理されたプロジェクトをダウンロードする

$ git clone git@github.com:projects/sample
Cloning into 'sample'...

Module build failed (from ./node_modules/babel-loader/lib/index.jsエラー回避

package.jsonの編集

  "devDependencies": {
    "@babel/plugin-proposal-private-methods": "^7.18.6",
    "@babel/plugin-proposal-private-property-in-object": "^7.21.0",
    "webpack-dev-server": "^3"
  }
$ npm install

gemパッケージ

Gemfileにpsychを書き加える
4.0系はYAMLエイリアスが使用できないので3.0系をインストールする
Gemfile

+ gem 'psych', '~> 3.1'

bundle install でgemパッケージをインストールする
Railsバージョンをアップデートする
Gemfile

− gem 'rails', '~> 6.0.3'
+ gem 'rails', '~> 6.1.7.6'

Webpackerのバージョンをアップデートする
Gemfile

− gem 'webpacker', '~> 4.0'
+ gem 'webpacker', '~> 5.0'

bundle install

$ cd [project]
[project] $ bundle install

Node.js

nodejsをインストールする

$ curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
$ sudo apt install -y nodejs

yarn(JavaScriptのパッケージマネージャ)

yarnをインストールする

$ sudo npm install --global yarn
$ npm install

package.jsonを編集

-    "@rails/webpacker": "4.3.0",
+   "@rails/webpacker": "5.4.3",
+   "webpack": "^4.46.0",
+   "webpack-cli": "^3.3.12",
+   "node-sass": "^7.0.0",

yarn.lockを削除してyarn install

$ yarn install
$ yarn add node-sass

Webpacker

Webpackerのインストール

$ cd [project]
[project] $ rails webpacker:install

環境変数を設定

export NODE_OPTIONS=--openssl-legacy-provider

Webpackerのコンパイル

$ rails webpacker:compile

webpacker:compileエラー

$ rails webpacker:compile
Compiling...
Compilation failed:
node:internal/crypto/hash:69
  this[kHandle] = new _Hash(algorithm, xofLen);

データベース作成

[project]/config/database.yml内、development:に記述された通りにデータベスを作成する

$ createdb example_development

マイグレーション

[project] $ rails db:migrate

サーバー起動

[project] $ rails s

ブラウザで確認

http://localhost:3000/