A note of a person who is learning programming, SakaTaQ

ロック好きのプログラミング学習

環境構築関連、Node.jsのインストールなど

Node.jsの記事の時に書いたインストールについて。 仮想環境上とかで個別で環境構築することがあったので、一応軽くまとめてみます。 また、変なことが起こったらその時はログをとって都度記事にできればいいなぁ(願望)。

Node.jsだけ使ってみたい時は途中間に挟んであるrbenvRailsは要らないので飛ばしてOK。

mac OSのバージョンがCatelinaの場合使用するログインシェルはbashではなくzshになる

% chsh -s /bin/zsh

これでzshをデフォルトで使用するように設定することができる。
ターミナル上でcdコマンドを実行した際に表示される自分のディレクトリの後に、$とあった部分が%に変わっている。
...自分はMac自体を買ったのがかなり最近なのでmojaveだった時代がないのですが、bashの時と大分制御構文などの書き方で違いが出てるみたいですね。
シェルスクリプトコマンドみたいなのを使用する場合は気をつけないとね...。 設定できたかを確認するにはechoを使用する。

% echo $SHELL

実行結果が
=> bin/zsh
になっていれば成功。bashと出ていたら一度読み込み直すためにターミナルを終了するなどした方がいいかも。

Command Line Tools をインストール

既に開発環境を整えてる人なら見聞きしてる単語だけどrbenvをインストールするにはHomebrewが必要で、HomebrewをインストールするにはCommand Line ToolsというWebアプリケーション開発に必要なソフトウェアが必要。
最初は、なんかめんどくせーな(笑)って思ってたんですが、こういったツールやパッケージみたいなので管理しているからこそ、各ブラウザに行ってインストールソフトウェアを揃えるとかバージョン毎に入れ直すとかってことをしなくて済む...みたいな感じで。
ターミナルでコマンドを打つだけで各アプリケーションで使うツールのバージョンを簡単に切り替えられ、バージョン確認もターミナルでコマンド打てば用意に確認できる。
実際の開発でもなんでも、最新バージョンが常に正解とは限らないからこそ、こういう仕組みみたいなのがいるってことですな、多分。今はそうやって納得しておく。

% xcode-select --install

これでxcodeappleからインストールできる。ウィンドウが起動したらインストール ボタンを押し、規約に同意する。
数GBほどあるらしいのでとても時間がかかる。

Homeblew をインストール

homebrewというソフトウェア管理ツール。

% cd
% ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

cd後にpwd/Users/${ユーザ名}と表示されていればOK。2行目のコマンドは公式サイトにあるインストールの下にあるコードのコピペを行う。
...見れば分かるが、公式ではbashとあるのでzshに変えている場合はコマンドを変えなければならないので、公式サイトに載っているコードの意味を考えた上でコピペを行うこと。
途中で続行するか聞かれるのでreturnキーを押して決定し、passwordを聞かれたら、使用しているPCを起動する際のパスワードを入力する。
このコマンドも実行完了まで時間がかかる。

% brew -v

で、=> Homebrew x.y.zzとバージョン情報が表示されていればインストール成功。
Homebrewのアップデートする際は

% brew update

Homebrewコマンドの権限を変更する場合は

% sudo chown -R `whoami`:admin /usr/local/bin
  • sudoスーパーユーザー(root)権限という他のユーザーの権限でコマンドを実行する際に使用する。複数のオプションが存在する。
    僕のイメージではあるが、所有者であっても一般ユーザーとなるってことだと思う、書き換えちゃいけないファイルとかはこれがないと実行できないとかあるしね。
  • chownは指定したファイルやディレクトリのユーザー所有権やグループ所有権を変更できる。グループ所有権はグループ名やグループIDで指定する。chown [オプション] ユーザー[:グループ] ファイルのように書く。
  • -Rchownコマンドのオプションで、指定したディレクトリ以下のファイルやディレクトリの所有権を再帰的に変更する。 このオプションをつけた時のコマンドの動作はまず自分(対象のディレクトリ)自身に対して処理を行う。自己(このコマンド)の結果が自己に返ってくる、みたいな感じ。
  • whoamiは単独で使用した場合、ユーザー名を表示するコマンド
  • adminは管理者の意。whoami: と組み合わせることで、管理者権限としてってことになるのかな。LinuxOSとかでは root 権限を持っているユーザー。sudoさんのことですね←
  • その後の/usr/local/binディレクトリ名とファイル名の構造、パス

rbenv をインストール

Macには元々Rubyが入っているのでそのままでもruby自体は利用できるけど、Webアプリケーション開発をするにあたってはrbenvというバージョン管理を切り替えるツールを使う。
ディレクトリ毎にバージョンを指定することもできる。
rbenvは自身でRubyコンパイル&インストール、もしくはruby-buildを使用して自動インストールできる。
Railsでの公式サイトでもrbenvを利用してRubyをインストールすることを勧めている...らしい。
他にあるRVMというツールよりもシンプルで動作が軽く、Ruby自体のバージョンの切り替えを行っている。

Homebrewを使用してRubyの土台であるrbenvruby-buildをインストール

% brew install rbenv ruby-build

rbenvをPCのどの場所(パス)からでも使用できるようにコマンド入力

% echo 'eval "$(rbenv init -)"' >> ~/.zshrc

.zshrcは設定ファイルの名称。.bashrcみたいなやつの代わり...だよね。
上記コマンドではファイルの内容を変更しているコマンドなので、設定を反映させるためにsourceコマンドを実行

% source ~/.zshrc

環境設定ファイルなどを変更した時はsourceコマンドを使用する。確かデプロイの時なんかも使いました。
続いてはターミナル上のirb(rails cのような対話シェル)で日本語入力を可能にする設定のために、readlineを実行

% brew install readline
% brew link readline --force

linklnとも表記できる。ファイルのリンクを作成する。--forceオプションは、リンクファイルと同じ名前のファイルがあっても強制的に上書きする、と言うオプション。
次にrbenvを使ってRubyのインストールを行う。実行には時間がかかる。

% RUBY_CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline)"
% rbenv install 2.5.1

2行目のコマンドは今回インストールするRubyのバージョン。
使用するRubyのバージョンをglobalで指定する

% rbenv global 2.5.1

このコマンドを実行するとそれまでPCでデフォルトで使用していたRubyから切り替えることができる。
Rubyのバージョンを切り替えたら、rbenvを読み込み変更を反映させる。

% rbenv rehash

現在インストールしているrbenvのバージョン確認、使用しているRubyのバージョンを確認する際には

% rbenv -v
=> rbenv 1.1.2
% ruby -v
=> ruby 2.5.1p57 〜〜〜〜〜〜

コマンド実行した時に表示されていれば、無事にインストール完了

MySQL をインストール

Homebrewを利用してインストールを行っていく、実行完了まで時間がかかる

% brew install mysql@5.6

MySQLはPCが再起動などの度にMySQLも起動する必要があるが、自動で起動できるように設定できる。

% mkdir ~/Library/LaunchAgents
% ln -sfv /usr/local/opt/mysql\@5.6/*.plist ~/Library/LaunchAgents
% launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql\@5.6.plist

続いてrbenvreadlineと同様に、mysqlコマンドをPCのどこからでも実行できるようにして、MySQLを操作できるようにする

% echo 'export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"' >> ~/.zshrc
$ source ~/.zshrc

上記同様、環境設定のファイルを書き換えた場合、変更反映のコマンドも入力している。
mysqlが実行できるか確認

% which mysql
=> /usr/local/opt/mysql@5.6/bin/mysql

whichコマンドは指定したコマンドを使用した際のフルパスを表示する(今回はmysql)
mysqlの起動しているかの確認

% mysql.server status
=> SUCCESS! MySQL running

SUCCESSと出てれば成功、runningは動作中ってことっすな

Rails の準備

Ruby拡張機能であるgemを管理するためのbundlerと言うツールのインストール。
gemは手動でインストール(gem install "shinatra"など)することができるが、最新バージョン同士では互換性不良などで動作しない場合がある。
また、複数人で開発などを行う際にはバージョンを合わせる必要なども出てくる。
この際にGemfileにインストールしたいgemを記入し、bundlerを介してインストールを行うことで、gem同士の互換性を保ちながら各gemの導入などを行ってくれてる、ってことですね。
bundler本体以外のgemは、基本的にbundle installを使用してインストールすることがオススメ。

% gem install bundler

bundlerのバージョンを確認するコマンド

% bundler -v

Railsのインストール、実行完了まで時間がかかるかも。

% gem install rails --version='5.2.3

開発に必要なものが一通りインストールできたので、rbenvを再読み込みしておく

% rbenv rehash

導入したRailsのバージョンの確認。

rails -v
=> Rails 5.2.3

アプリケーションをrails newで作成する際に_5.2.3_などのように入力すれば個別に指定できるため、ディレクトリ毎に指定も可能となる。

nodeblew をインストール

Railsを動かすにはJavaScriptが必要だが、通常のJSではなく、サーバーサイドで動作するNode.jsが必要(なんだよね、確か) で、nodebrewというNode.js用のバージョン管理ツールがあるのでそれをインストールしていく。

brew install nodebrew

nodebrewのバージョン確認、利用できるコマンドも確認可能

% nodebrew -v

インストールできるNode.jsのバージョン確認コマンド

% nodebrew ls-remote
// バージョンを指定してインストールする場合
% nodebrew install-binary {version}
% nodebrew install-binary v13.0.0

// 最新版をインストールする場合
% nodebrew install-binary latest

// 安定版をインストールする場合
% nodebrew install-binary stable

インストールされたnodejsのバージョン確認

% nodebrew ls
=> v13.0.0
=> current: none

インストール直後は使用するバージョンが有効になっていないので

% nodebrew use v13.0.0
% node-v
=> v13.0.0
=> current: v13.0.0

1行目のコマンドで有効化、2行目のバージョン確認コマンドで4行目のようにバージョンが表示されていれば有効化されている
nodeが使えるように環境パスを通す必要がある。

$ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.zprofile

シェルがbashの場合は最後違うので注意。また、追記リダイレクト>>ではなく普通のリダイレクト>をしてしまうと既存の書き込みに上書きをして消してしまうことがある為、注意が必要。環境変数を設定したので

% source ~/.zprofile

で変更を反映するか、ターミナルを再起動すること。
 
 
※ Homebrewから直接nodejsをインストールする場合のコマンド

% brew install nodejs

Node.jsが導入できたかの確認コマンド

% node -v

 
 
※ Linux OS使用時、サーバー上から取得したプログラムをパイプ機能を使ってPerlというプログラミング言語で実行する場合のコマンド

% curl -L git.io/nodebrew | perl - setup

環境変数の設定

% echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.profile

PATHという名前の環境変数に値を代入することで設定している。 上記例では.profileと言うファイルに追記リダイレクトを使用することで設定内容を編集している。.profileはシェルの起動時に自動的に実行されるファイル。
この場合もパスを通したら

% source ~/.profile

sourceコマンドで.profileを再起動することなく再度読み込ませて、変更を反映させる。

npm のバージョン確認

% npm --version

npmではpackage.jsonと言うファイルで依存関係のあるパッケージをインストールできたりタスクも管理できる。


npm、Node.jsの記事書いてからいくつかの記事やスクールのカリキュラムを参考にザッと書き出してみました。
あまり環境構築は何度もやらないので忘れそうですが、仮想環境バンバン作って壊して環境構築慣れしてみるのも面白いのかな?(笑)

したらな❗️ 👋