Macの環境構築をやった話
環境構築をするための情報整理
必要な環境は以下。
- .sshフォルダを旧環境から持ってきて使えるようにする
- パッケージ管理システムを入れる
- Node.jsバージョン管理ツールを入れる
- Gitへのアクセス
- Rubyを使えるようにする
旧環境からバックアップしていた.sshフォルダを使えるようにする
SSH公開鍵、秘密鍵の入っている.sshフォルダを配置後、試しにSSH接続をしてみたらWarningが出た。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/Users/username/.ssh/filename' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/username/.ssh/filename
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
秘密鍵のファイルのパーミッションが開きすぎていてのエラー。
このままだと他人にアクセスされてしまうと注意された。
ファイルのパーミッションを変更すれば良さそう、以下のコマンドを実行。
$ chmod 0600 ~/.ssh/filename
無事にアクセスできた。
パッケージ管理システムを入れる
結局、旧環境と同じHomebrewに落ち着いた。
なんやかんやと一番使いやすいかもしれない。
公式サイトにある以下のコマンドを入れれば完了。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Node.jsバージョン管理ツールを入れる
旧環境ではnodenv
使ってたけど、今回はちまたで良いと言われているn
を入れてみた。
公式サイトの手順に沿ってやればOK。
Homebrewを使ってインストール
$ brew install n
これで終わった、めっちゃ簡単・・・
念のため、Homebrewで管理されているものを確認。
$ brew list
==> Formulae
ca-certificates n openssl@1.1 starship
わかりにくい😂
けどちゃんと入ってます。
$ n -V
v8.0.1
nodeの指定バージョンのインストール
インストールしたいバージョン番号を追記するだけ。
$ n 10.15.3
ところが怒られた。
installing : node-v10.15.3
mkdir : /usr/local/n/versions/node/10.15.3
mkdir: /usr/local/n/versions/node/10.15.3: Permission denied
Error: sudo required (or change ownership, or define N_PREFIX)
/usr/local/
にフォルダがないのと、フォルダを作る権限がないため。
ターミナルでやるならsudo
指定する。
今回はFinderで隠しフォルダを表示させた上で/usr/local/
にアクセス。
n
フォルダも作成されていないので、n
フォルダを作成。
再度、バージョン指定インストールを実行すると以下のように成功する。
installing : node-v10.15.3
mkdir : /usr/local/n/versions/node/10.15.3
fetch : https://nodejs.org/dist/v10.15.3/node-v10.15.3-darwin-x64.tar.xz
installed : v10.15.3 (with npm 6.4.1)
ダウンロード可能なリモートのバージョン一覧を表示
最新の推奨版(サポート公式リリース)
$ n ls-remote lts
最新版(公式リリース)
$ n ls-remote latest
コアバージョン指定
10
に絞ってリスト表示したい場合。
$ n lsr 10
$ n lsr 10
Listing remote... Displaying 20 matches (use --all to see all).
10.24.1
10.24.0
10.23.3
10.23.2
10.23.1
10.23.0
10.22.1
10.22.0
10.21.0
10.20.1
10.20.0
10.19.0
10.18.1
10.18.0
10.17.0
10.16.3
10.16.2
10.16.1
10.16.0
10.15.3
すべてのバージョン指定
$ n --all lsr
nodeのバージョン切り替え
n
でインストールしているnodeのバージョン切り替えをするには、n
コマンドのみ。
$ n
node/10.15.3
node/10.16.3
node/14.3.0
ο node/14.5.0
Use up/down arrow keys to select a version, return key to install, d to delete, q to quit
説明もついてる、とても親切。
上下キーで使いたいバージョンへο
を動かす。
ここから抜ける場合はQ
キーを押す。
フォルダごとのバージョン指定
ちなみに、プロジェクトフォルダごとのバージョン指定は、.node-version
ファイルがあれば自動的に対応してくれる。
Gitへのアクセス
GitLabは、初回のアクセス時にUsernameとPasswordを入れればその後はつながるようになった。
GitHubが、2021年8月からターミナルからのパスワード接続ができなくなっていたのでパーソナルアクセストークンを作る必要が。
詳しい説明はGitHubのヘルプにある。
GitHubの管理画面から
Settings > Developer settings > Personal access tokens
にアクセス。
Generate new token
で新しいトークンを作成。
あとは、わかりやすい名前入れたり、設定したり。
scopes
はrepo
に入れとけば良さそう。
全部設定できたらGenerate token
ボタンを押下。
パーソナルアクセストークンが作成されて表示される。
Rubyを使えるようにする
案件でRubyの環境が必要なため構築。
現状確認。
$ which gem
/usr/bin/gem
$ which ruby
/usr/bin/ruby
rbenvでrubyを管理する
rbenv
を管理するためanyenv
を入れる。
まずはbrew経由でanyenv
をインストール。
$ brew install anyenv
anyenv
でインストールできるリストを確認。
$ anyenv install -l
anyenv
の初期化処理。
$ anyenv init
.zshrc
に以下を記入してパスを通す。
eval "$(anyenv init -)"
export PATH="$HOME/.anyenv/bin:$PATH"
シェルを再起動。
$ exec $SHELL -l
anyenv
のセットアップ。
$ anyenv install --init
途中で確認を求められたらそのまま続行。
Completed!
まで表示されたら完了。
anyenvでrbenvをインストール
続いてrbenv
をインストール。
$ anyenv install rbenv
rbenv
がインストールされたことを確認。
$ rbenv -v
rbenv 1.2.0-6-g304cb7b
rbenv
を使用してruby
のバージョンを指定してインストール。
$ rbenv install 3.0.3
$ rbenv versions
* system
3.0.3
system
のバージョンが選択されているので、バージョンを指定。
$ rbenv global 3.0.3
$ rbenv versions
system
* 3.0.3 (set by /Users/username/.anyenv/envs/rbenv/version)
これでglobal
でのバージョンが3.0.3
になった。
gem
とruby
がどこを見ているのかパスを確認。
$ which ruby
/Users/username/.anyenv/envs/rbenv/shims/ruby
$ which gem
/Users/username/.anyenv/envs/rbenv/shims/gem
おわりに
ここまでで、コーディングを行える最低限の環境は整ったかと思います。
はじめて環境構築をした時よりもすんなりとできあがった気がする・・・
個人的には、あとWordPressのローカル環境構築がありますがこちらもどこかで記事に残しておきたい。
私の記事は、自分の記憶定着とアウトプットのために書いています。
言葉遣いなどお気になさらぬよう、お願いします。
なにか間違いとかアドバイスなどいただけましたら泣いて喜びます。
ではまたどこかで・・・。
Discussion