Macの環境設定まとめ
Big Surで環境構築
社用のMacbook Pro (15inch 2018)をBig SurにUpdateして数週間。よく固まるようになってしまったのです。そんな訳で、再インストールを決意!私物のMacBook (Retina, 12-inch, Early 2016)も合わせて環境を構築することとした。
取り敢えずインストール
(上の手順があるので実際はやってないです)
インストールの詳細はそれぞれ参照ってことで省略。
アプリはリカバリーで戻ってくると思っていたけど、Homebrewまで戻ってきてた。
結構色々戻ってくるなーと関心したり。調子が悪くならないことを祈ろう。
17時過ぎ。時間かかり過ぎた。仕事できてない(泣)
結局
Macの調子が日々悪くなって、新たに届いた次第。
このメモを見ながら構築できたのですごく役にたったけど。まだまだ改善の余地はあるので今後も環境関連を追加記述して行きます。
Python
標準の2系もあるけど、多数のバージョンを切り替えて使いたい。
そんな訳で、まずは
pyenvをインストール
% brew install pyenv
pyenvの環境設定
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
設定反映のため
% source ~/.zshrc
インストール可能なvarを確認
% pyenv install -list
各種VerのPythonをインストール
% pyenv install 3.9.0
現時点ではインストールできず、俺はこの方法でインストールした。
きっとそのうち対応されると思う。% pyenv versions
* system (set by /Users/ken/.pyenv/version)
3.8.6
3.9.0
インストールできていることを確認して
% pyenv global 3.9.0
% python -V
Python 3.9.0
切り替わることも確認。
Node.js
これも複数のVerを使い分ける必要がある訳で、まずは
nodebrewをインストール
$ brew install nodebrew
確認してみる
% nodebrew -v
nodebrew 1.0.1
Usage:
nodebrew help Show this message
nodebrew install <version> Download and install <version> (from binary)
nodebrew compile <version> Download and install <version> (from source)
nodebrew install-binary <version> Alias of `install` (For backword compatibility)
nodebrew uninstall <version> Uninstall <version>
nodebrew use <version> Use <version>
nodebrew list List installed versions
nodebrew ls Alias for `list`
nodebrew ls-remote List remote versions
nodebrew ls-all List remote and installed versions
nodebrew alias <key> <value> Set alias
nodebrew unalias <key> Remove alias
nodebrew clean <version> | all Remove source file
nodebrew selfupdate Update nodebrew
nodebrew migrate-package <version> Install global NPM packages contained in <version> to current version
nodebrew exec <version> -- <command> Execute <command> using specified <version>
Example:
# install
nodebrew install v8.9.4
# use a specific version number
nodebrew use v8.9.4
nodebrew(Node.js)の環境を設定
% nodebrew setup
Fetching nodebrew...
Installed nodebrew in $HOME/.nodebrew
========================================
Export a path to nodebrew:
export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================
そしてPATH設定を追加
export PATH=$HOME/.nodebrew/current/bin:$PATH
ここからNode.js本体のインストールです。
ますはインストール可能なバージョンを確認しましょう。
% nodebrew ls-remote
v0.0.1 v0.0.2 v0.0.3 v0.0.4 v0.0.5 v0.0.6
v0.1.0 v0.1.1 v0.1.2 v0.1.3 v0.1.4 v0.1.5 v0.1.6 v0.1.7
v0.1.8 v0.1.9 v0.1.10 v0.1.11 v0.1.12 v0.1.13 v0.1.14 v0.1.15
v0.1.16 v0.1.17 v0.1.18 v0.1.19 v0.1.20 v0.1.21 v0.1.22 v0.1.23
v0.1.24 v0.1.25 v0.1.26 v0.1.27 v0.1.28 v0.1.29 v0.1.30 v0.1.31
v0.1.32 v0.1.33 v0.1.90 v0.1.91 v0.1.92 v0.1.93 v0.1.94 v0.1.95
v0.1.96 v0.1.97 v0.1.98 v0.1.99 v0.1.100 v0.1.101 v0.1.102 v0.1.103
v0.1.104
(以下省略)
インストール可能なバージョンが出力されます。
Node.jsをインストールする。
nodebrew install <バージョン番号>
です。バージョン番号はls-remoteで取得できるものから選択します。
また、以下の設定も可能です。
コマンド | 意味 |
---|---|
nodebrew install latest | 最新版をインストール |
nodebrew install stable | 安定版をインストール |
たとえば |
% nodebrew install latest
Fetching: https://nodejs.org/dist/v15.5.0/node-v15.5.0-darwin-x64.tar.gz
######################################################################### 100.0%
Installed successfully
% nodebrew install stable
Fetching: https://nodejs.org/dist/v14.15.3/node-v14.15.3-darwin-x64.tar.gz
######################################################################### 100.0%
Installed successfully
インストール済みのバージョンを確認
% nodebrew list
v14.15.3
v15.5.0
current: none
current: none
は有効化された(使用する)Verの設定がないということ
有効化する
nodebrew use <バージョン番号>
listで得ることができたインストール済みのバージョン番号から使用するものを設定する。
% nodebrew use v14.15.3
use v14.15.3
実際機能するNode.jsのバーションを確認する
% node -v
v14.15.3
また
% nodebrew ls
v14.15.3
v15.5.0
current: v14.15.3
となっている。
Node.jsのアンインストール
nodebrew uninstall <バージョン番号>
参考
nodeenv
複数のバージョンを同時に使用したい。こちらなら出来そうなので変更してみる。
インストール
$ git clone git://github.com/nodenv/nodenv.git ~/.nodenv
環境設定
.zshrcに追加
export PATH="$HOME/.nodenv/bin:$PATH"
eval "$(nodenv init -)"
plug-inのインストール
-
nodenv install
nodenv uninstall
が使えるようになる。
- nodenv環境下のインストール可能バーションを更新する。
$ git clone https://github.com/nodenv/node-build.git ~/.nodenv/plugins/node-build
$ git clone https://github.com/nodenv/node-build-update-defs.git ~/.nodenv/plugins/node-build-update-defs
nodenv init
が必要(手っ取り早くShellの再起動)
確認してみる。
$ nodenv
nodenv 1.4.0+3.631d0b6
Usage: nodenv <command> [<args>]
Some useful nodenv commands are:
commands List all available nodenv commands
local Set or show the local application-specific Node version
global Set or show the global Node version
shell Set or show the shell-specific Node version
install Install a Node version using node-build
uninstall Uninstall a specific Node version
rehash Rehash nodenv shims (run this after installing executables)
version Show the current Node version and its origin
versions List installed Node versions
which Display the full path to an executable
whence List all Node versions that contain the given executable
See `nodenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/nodenv/nodenv#readme
インストール可能なバージョンの確認
nodenv install --list
$ nodenv install --list
0.1.14
0.1.15
0.1.16
0.1.17
0.1.18
0.1.19
(以下省略)
インストール
nodenv install <バージョン番号>
$ nodenv install 14.17.3
Downloading node-v14.17.3-darwin-x64.tar.gz...
-> https://nodejs.org/dist/v14.17.3/node-v14.17.3-darwin-x64.tar.gz
Installing node-v14.17.3-darwin-x64...
Installed node-v14.17.3-darwin-x64 to /Users/yamadaken/.nodenv/versions/14.17.3
設定
nodenv versions
インストール済みバージョンの確認
nodenv global <バージョン番号>
使用するnodeの設定(全体)
nodenv local <バーション番号>
指定ディレクトリ下で使用するnodeの設定
$ nodenv global 14.17.3
$ nodenv versions
12.22.3
* 14.17.3 (set by /Users/yamadaken/.nodenv/version)
$ nodenv local 12.22.3
$ nodenv versions
* 12.22.3 (set by /Users/yamadaken/work/ats-firebase/.node-version)
14.17.3
.node-version
というファイルができている。localの設定の正体。
参考
yarn
yarnのインストールも忘れずに
各バージョン毎に必要。
% npm install -g yarn
Golang
流行りものは試すにかぎるわけです。
これもいろんなVerがあるわけなので、ますコレ。
goenvのインストール
$ brew install goenv
確認してみる。
% goenv -v
goenv 1.23.3
環境設定
# go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$PATH
# goenv
export GOENV_ROOT=$HOME/.goenv
export PATH=$GOENV_ROOT/bin:$PATH
export PATH=$HOME/.goenv/bin:$PATH
eval "$(goenv init -)"
設定反映のため
% source ~/.zshrc
goのインストール
まずはインストール可能なVerを確認します。
% goenv install -l
Available versions:
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0
1.7.1
1.7.3
1.7.4
1.7.5
1.8.0
1.8.1
1.8.3
1.8.4
1.8.5
1.9.0
1.9.1
1.9.2
1.9.3
1.9.4
1.9.5
1.9.6
1.9.7
1.10.0
1.10beta2
1.10rc1
1.10rc2
1.10.1
1.10.2
1.10.3
1.10.4
1.10.5
1.10.6
1.10.7
1.11.0
1.11beta2
1.11beta3
1.11rc1
1.11rc2
1.11.1
1.11.2
1.11.3
1.11.4
1.12beta1
インストールは
goenv install <Ver番号>
です。たとえばこんな感じ
% goenv install 1.11.4
Downloading go1.11.4.darwin-amd64.tar.gz...
-> https://dl.google.com/go/go1.11.4.darwin-amd64.tar.gz
Installing Go Darwin 64bit 1.11.4...
Installed Go Darwin 64bit 1.11.4 to /Users/ken/.goenv/versions/1.11.4
インストール済みVerの確認
% goenv versions
1.11.4
1.8.7
使用するVerを指定する。
goenv global <Ver番号>
またディレクトリ毎に使用するVerを変更できます。
goenv local <Ver番号>
例えばこんな感じ。
% goenv global 1.11.4
% go version
go version go1.11.4 darwin/amd64
動作確認
あとまわしw
Rust
これも流行りものですね。
インストール
とりあえず、公式通りに
% curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
途中で
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
>
は、とりあえず 1) Proceed with installation (default)
を選択。
インストールは正常終了。
環境設定
~/.zshenvに自動的にPATH設定が入ります。
source "$HOME/.cargo/env"
インストール確認
これによると
-
rustc
Rustのコンパイラ -
cargo
Rustのパッケージマネージャ -
rustup
Rustのインストーラ
とのことで、確認。
% rustc --version
rustc 1.49.0 (e1884a8e3 2020-12-29)
% rustup --version
rustup 1.23.1 (3df2264a9 2020-11-30)
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: The currently active `rustc` version is `rustc 1.49.0 (e1884a8e3 2020-12-29)`
% cargo --version
cargo 1.49.0 (d00d64df9 2020-12-05)
infoが出るのはきになりつつ。
vim
色をつける
syntax on
これでとりあえずカラフルになる。
色々できるのでそのうち試そう。
Google Cloud SDK
インストール
% curl https://sdk.cloud.google.com | bash
対話型インストーラーというらしい。
.zshrcに必要な環境変数などが追加される。確認
% gcloud -v
Google Cloud SDK 322.0.0
bq 2.0.64
core 2021.01.05
gsutil 4.57
Cloud SQL Auth Proxy
認証など
% gcloud auth login
Firebase CLI
インストール
% curl -sL https://firebase.tools | bash
確認
% firebase -V
9.2.1
Java
Javaって色々ありまして
本家(Oracle)か、AdoptOpenJDK(OpenJDK)で、他を選ぶ理由はほぼないかなと。インストール
JDK11の場合
% brew install adoptopenjdk/openjdk/adoptopenjdk11 --cask
インストール済みJDKを確認
% /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
11.0.9.1 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 11" /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
1.8.0_275 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
設定
## JDK8
# export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
## JDK11
export JAVA_HOME=`/usr/libexec/java_home -v 11`
実際動いているVerを確認
% java --version
openjdk 11.0.9.1 2020-11-04
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9.1+1)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9.1+1, mixed mode)
dotfile
複数の環境を持っていたりすると便利だと思ったので導入してみようと思う。
基本的にはdotfilesってディレクトリ下に環境を作り込んでGitに保存、共有。
無論そのままでは使えんので Makefileでdot.ファイルを$HOMEにおいたりとかをする。
Homebrewや他のパッケージも自動的に登録しちゃう感じということで。
色んな人の設定、が公開されているので今の俺用にアレンジをしながら色々準備をしてみよう。
ここまでのことのほとんどが自動化されるはず。
ちょっと面倒だけど、ちょいちょい準備していこう。
結果を公開したほうが良いか思案をしつつ。
とりあえず作ってみる。
$ mkdir ~/dotfiles
こんな感じでディレクトリを掘って
インストーラー的なものを軽く作ってみた。
試行錯誤中なのですが...最小限ということで。
#!/bin/bash
DOTPATH=$HOME/dotfiles
DOT_FILES=(.zshrc .zshenv .vimrc)
for file in ${DOT_FILES[@]}
do
ln -sf $DOTPATH/$file $HOME/$file
if [ $? -eq 0 ]; then
printf " %-25s -> %s\n" "\$DOTPATH/$file" "\$HOME/$file"
fi
done
case ${OSTYPE} in
darwin*)
# Mac用の設定
## iTerm shell integration
## https://iterm2.com/documentation-shell-integration.html
## https://www.rasukarusan.com/entry/2019/04/13/180443
curl -L https://iterm2.com/misc/install_shell_integration.sh | bash
;;
linux*)
# Linux用の設定
;;
esac
.zshrc
.zshenv
.vimrc
をとりあえずsymbolic linkで
iterm 用の設定をちょっとだけ。
(Macのみってどう描くのか試してみる意味で)
現状はこんなところです。
この状況で公開。
今後色々追加していこうと思います。
githubの認証問題
ある日のお仕事で
% git pull
hint: Pulling without specifying how to reconcile divergent branches is
hint: discouraged. You can squelch this message by running one of the following
hint: commands sometime before your next pull:
hint:
hint: git config pull.rebase false # merge (the default strategy)
hint: git config pull.rebase true # rebase
hint: git config pull.ff only # fast-forward only
hint:
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
Username for 'https://github.com':
唐突にこうなった。
UserNameとPasswordを入力。でもダメ。
コマンド的にfetch
もpull
もダメ。
困った。
Keyを作り直してみたけど状況変わらず。
結局、リポジトリへのアクセスをhttps
からssh
に変更することで解消した。
git config
コマンドで直せそうだけど俺は単純に
プロジェクトルートにある .ssh/config
を修正で対応した。
[remote "origin"]
- url = https://github.com/user/project.git
+ url = git@github.com:user/project.git
納得いかんのです。気持ち悪い。
お仕事用なので...あとでプライベートの方も確認しておこう。