目次
macOS
環境構築
クリーン再インストール
- 電源起動時に電源ボタン押しっぱなしにする
- オプションというのが出るのでオプションを選択して macOSユーティリティにゆく
- ディスクユーティリティから Macintosh HD を選択してボーリュームマイナスボタンを押して消す.
「ボリュームグループを消去」を選べば良い - 消去が終わったら「macOS を再インストール」を選ぶ
- OSインストールしたら AppleID サインインなどせず始める.
- 以下のスクリプトを実行したらサインイン無しで環境構築できる.
<html> <hr/> ↓古いコードが折り畳まれている <details> <pre> # For Mac with M1 processor
TARGET_PACKAGES=(wget emacs gcc) CHECKED_PACKAGES=(${TARGET_PACKAGES} gfortran) check_flag=1
## Install Homebrew which brew >/dev/null 2>/dev/null if [ $? -ne 0 ]; then
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
if [ "$(uname -a | sed 's/ /\n/g' | tail -n1)" = "arm64" ]; then
echo 'if [ "$(uname -a | sed '\''s/ /\n/g'\'' | tail -n1)" = "arm64" ]; then' >> /Users/$USER/.zprofile
echo ' eval $(/opt/homebrew/bin/brew shellenv)' >> /Users/$USER/.zprofile
echo 'fi' >> /Users/$USER/.zprofile
source /Users/$USER/.zprofile
fi
fi
## Check installing homebrew if [ `which brew >/dev/null 2>/dev/null; echo $?` -ne 0 ]; then
echo "Homebrew is not installed." 1>&2 exit 1
fi
bash “$(dirname $0)/setup_homebrew_install_packages.sh”
#### code #### bash setup_homebrew_install_packages.sh
# For Homebrew
GCC_VERSION=“10”
TARGET_PACKAGES=(wget emacs gcc@${GCC_VERSION}) CHECKED_PACKAGES=(wget emacs gcc gfortran) check_flag=1
## Check installing homebrew if [ `which brew >/dev/null 2>/dev/null; echo $?` -ne 0 ]; then
echo "Homebrew is not installed." 1>&2 exit 1
fi
BREW_ROOT=`brew –prefix`
## Install each package echo “Install packages” for package in ${TARGET_PACKAGES[@]}; do
echo ${package}
done for package in ${TARGET_PACKAGES[@]}; do
brew install ${package}
done
## Use GCC instead of Clang if ! [ -f “${BREW_ROOT}/bin/gcc” ]; then
ln -s ${BREW_ROOT}/bin/gcc-${GCC_VERSION} ${BREW_ROOT}/bin/gcc
if [ $? -ne 0 ]; then
echo "Symbolic link of GCC cannot be created." 1>&2
exit 1
fi
fi if [ “`readlink ${BREW_ROOT}/bin/gcc`" != "${BREW_ROOT}/bin/gcc-${GCC_VERSION}” ]; then
echo "gcc command may use Clang or default GCC instead of GCC installed by Homebrew." 1>&2
fi
## Check whether each packages is installed or not. echo “” echo “” echo “Check packages” for package in ${CHECKED_PACKAGES[@]}; do
${package} --version >/dev/null 2>/dev/null
if [ $? -ne 0 ]; then
echo "${package} is not installed." 1>&2
check_flag=0
fi
done
echo “” if [ ${check_flag} -eq 1 ]; then
echo "Completed!"
else
echo "Some packages are not installed correctly."
fi </pre> </details> <hr/> </html>
- setup_homebrew_m1_mac.sh
# For Mac with M1 processor ## Install Homebrew which brew >/dev/null 2>/dev/null if [ $? -ne 0 ]; then /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" if [ "$(uname -a | sed 's/ /\n/g' | tail -n1)" = "arm64" ]; then echo 'if [ "$(uname -a | sed '\''s/ /\n/g'\'' | tail -n1)" = "arm64" ]; then' >> /Users/$USER/.zprofile echo ' eval $(/opt/homebrew/bin/brew shellenv)' >> /Users/$USER/.zprofile echo 'fi' >> /Users/$USER/.zprofile source /Users/$USER/.zprofile fi fi ## Check installing homebrew if [ `which brew >/dev/null 2>/dev/null; echo $?` -ne 0 ]; then echo "Homebrew is not installed." 1>&2 exit 1 fi # For Homebrew GCC_VERSION="11" TARGET_PACKAGES=(wget emacs gcc@${GCC_VERSION}) CHECKED_PACKAGES=(wget emacs gcc gfortran) check_flag=1 ## Check installing homebrew if [ `which brew >/dev/null 2>/dev/null; echo $?` -ne 0 ]; then echo "Homebrew is not installed." 1>&2 exit 1 fi BREW_ROOT=`brew --prefix` ## Install each package echo "Install packages" for package in ${TARGET_PACKAGES[@]}; do echo ${package} done for package in ${TARGET_PACKAGES[@]}; do brew install ${package} done ## Use GCC instead of Clang if [ -f "${BREW_ROOT}/bin/gcc" ]; then rm "${BREW_ROOT}/bin/gcc" fi ln -s ${BREW_ROOT}/bin/gcc-${GCC_VERSION} ${BREW_ROOT}/bin/gcc if [ $? -ne 0 ]; then echo "Symbolic link of GCC cannot be created." 1>&2 exit 1 fi if [ "`readlink ${BREW_ROOT}/bin/gcc`" != "${BREW_ROOT}/bin/gcc-${GCC_VERSION}" ]; then echo "gcc command may use Clang or default GCC instead of GCC installed by Homebrew." 1>&2 fi ## Check whether each packages is installed or not. echo "" echo "" echo "Check packages" for package in ${CHECKED_PACKAGES[@]}; do ${package} --version >/dev/null 2>/dev/null if [ $? -ne 0 ]; then echo "${package} is not installed." 1>&2 check_flag=0 fi done echo "" if [ ${check_flag} -eq 1 ]; then echo "Completed!" else echo "Some packages are not installed correctly." fi
頑張ってやる設定
ホスト名の変更
- システム環境設定 > 共有 > コンピュータ名
ライブ変換について
- Catalina以前では「システム環境設定」→「キーボード」→「入力ソース」→「ライブ変換」
- Big Sur 以降は自動確定しないようになったのでそんなに問題ない
「入力ソース」(ここでスクロールできることに注意)
ライブ変換・タイプミスを修正・推測候補表示を外せば良い
defaults write com.apple.inputmethod.Kotoeri JIMPrefLiveConversionKey -bool false
defaults delete com.apple.inputmethod.Kotoeri JIMPrefLiveConversionKey
キーの入力を速くする
カーソルキーで移動するときにつらいのでキーのリピート入力の速度を上げたほうが良い。
defaults write -g InitialKeyRepeat -int 15 defaults write -g KeyRepeat -int 2
Dockを隠す
- 「システム環境設定」→「Dockとメニューバー」→「Dockを自動的に表示/非表示」のチェックボックスをONにする
- 「最近使ったアプリケーションをDockに表示」
defaults write com.apple.dock autohide -bool true
defaults delete com.apple.dock autohide
画面解像度の設定
- 「システム環境設定」→「ディスプレイ」で解像度のラジオボタンを「変更」にして「スペースを拡大」
- 輝度を自動調整とTrue Tone を消す
defaults でやるのは難しそう。
ターミナルの背景色を変更
- プロファイル Pro を複製。mine を作る。
- 「ターミナル」→「環境設定」→「一般」→「起動時に開く」をBasicからmineにする
- Osaka 等幅24 がフォントとしては良い。
- ウィンドウサイズも全画面にして、列と行を設定しておくと、ターミナル起動時に全画面となるので嬉しい
ターミナルからすべてのディレクトリにアクセスできるようにする
ゴミ箱の削除とか、そういうことが初期設定ではできないので、設定を変更する必要がある。
環境設定 → セキュリティとプライバシー → プライバシー → フルディスクアクセス
ターミナルのチェックを入れる。
Finder拡張子表示
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
Finder 隠しファイル表示
defaults write com.apple.finder AppleShowAllFiles -bool true
Bluetoothをメニューバーに表示
環境設定 → Bluetooth → メニューバーにBluetoothを表示
バッテリーパーセント表示
環境設定 → Dockとメニューバー → バッテリー → 割合(%)を表示
タイムゾーン設定
環境設定 → 日付と時刻 → 時間帯
サウンド表示
環境設定 → サウンド → メニューバーにサウンドを表示 「常に」
タップでクリック
環境設定 → トラックパッド → 「ポイントとクリック」 → 「タップでクリック」
defaults コマンドでやっていく
変更前設定を保存
defaults read > hoge.txt defaults -currentHost read > foo.txt
変更
GUI で設定変更してみる
変更後設定を保存
defaults read > fuga.txt defaults -currentHost read > bar.txt
差分を確認
まずは差分を見る。
diff hoge.txt fuga.txt diff foo.txt bar.txt
それっぽい単語のありそうな箇所の行番号をみる。
cat fuga.txt | grep -n 単語
近傍を確認すると、名前空間がわかるはず。(例は123行目から456行目までを表示)
cat fuga.txt | sed -n '123,456p'
以下のコマンドを実行すれば設定変更ができるんだなと言うことがわかる。
defaults write com.apple.piyopiyo bazbaz -bool true
ただし反映には以下みたいにその機能を担当しているプログラムを再起動しなくてはいけない。
killall 何らかのプログラム
デフォルト設定に戻すには delete するだけ。
defaults delete com.apple.piyopiyo bazbaz
名前空間が Apple Global Domain のときだけ defaults コマンドに -g オプションが必要。
知識
CUI を動かすためには CommandLineTools が必要。 これは2通りのインストール方法があるっぽい。
- CommandLineTools のみのインストール
- Xcode に付属してくる場合のインストール
その他
zsh
色つけ。bash の force_color_prompt と同じにしておく
- ~/.zshrc
PROMPT='%F{34}%n@%m%f:%F{32}%~%f$ ' export LSCOLORS=gxfxcxdxbxegedabagacad alias ll='ls -LGF' alias ls='ls -GF'
tmux
色を反映させるには次のようにする。
- ~/.tmux.conf
set-option -g default-terminal screen-256color set -g terminal-overrides 'xterm:colors=256'
bash
デフォルトでは .bashrc を読んでくれないので以下のように .bash_profile を作るのが良い.← bashデフォルト時代の話?
- .bash_profile
if [ -f ~/.bashrc ]; then . ~/.bashrc fi
ショートカット
terminal
- 行頭に戻る : control + a
- 行末に進む : control + e
- タブ切り替え→ : control + tab
- タブ切り替え← : control + shift + tab
- 現在地から行末まで切り取り : control + k
- 現在地から行頭まで切り取り : control + u
- ペースト : control + y
- あんまり重要でない
- 1単語戻る : opt + ←
- 1単語進む : opt + →
homebrew
homebrewは外部のリポジトリからもパッケージのインストールができるようになっている. caskはデスクトップアプリなどが豊富なリポジトリ. homebrew本家に吸収された.
# 更新情報の取得 (=apt update) brew outdated # 更新情報の取得 (=apt upgrade) brew update # パッケージを探す brew search <text> # パッケージをインストールする brew install <text> # インストールしたパッケージのアップデート brew upgrade # パッケージのアンインストール brew uninstall <text> # インストールしたパッケージ(=formula)の一覧 brew list brew list --versions # 古くなったパッケージの削除 brew cleanup
homebrew自体の再インストール
アンインストール
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
リポジトリ
- リポジトリの一覧
brew tap - 追加
brew tap hoge - 削除
brew untap hoge - 使えなくなっているもの検知
cask
このようにインストールする
brew install hogehoge --cask
以下リスト
brew install visual-studio-code --cask brew install google-chrome --cask brew install firefox --cask
brew install microsoft-powerpoint --cask brew install microsoft-excel --cask brew install microsoft-word --cask
brew install google-drive --cask
brew install zoom --cask
- Adobe CC は brew で入れるのがめんどい。自分でAdobeに行って入れる
- chrome に関しては、定期的に
sudo rm -rf /Applications/Google\ Chrome.app
して再インストールしたほうが良さそう。内部からアップデート適用するよりもクリーンな状態に保てる。
High Sierra
- 命令が足りないので OpenBLAS の一部がコンパイルできない。そのせいで色々なパッケージが update できないまま放置される。
I edited file /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/openblas.rb
and added "NO_AVX512=1" in line 43 to
system "make", "CC=#{ENV.cc}", "FC=gfortran", "libs", "netlib", "shared", "NO_AVX512=1"
Then reinstalling openblas.
M1 mac での Python環境
従来通り pyenv で処理系も切り替えできるようにしたい。 Anaconda, Miniconda は M1 mac では pyenv からは入れられない。 同じようなものに Miniforge というのがあるのでこちらを使うのが良い。
ただし python3 のバージョンは最低で 3.8 っぽい?(python3.6環境の構築は難しそう)
pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc echo 'eval "$(pyenv init -)"' >> ~/.zshrc source ~/.zshrc
miniforge
pyenv install --list | grep miniforge pyenv install miniforge3-4.10.1-5 pyenv global miniforge3-4.10.1-5 echo '. /home/horiuchi/.pyenv/versions/miniforge3-4.10.1-5/etc/profile.d/conda.sh' >> ~/.zshrc source ~/.zshrc
障害対応
CommandLineTools の系統
Xcode 付属のものは
xcodebuild -version
でエラー無く実行可能。
単体のものは
'xcodebuild' requires Xcode
エラーが出る。
複数OSバージョンのデュアルブート
Monterey と Big Sur をデュアルブートしてみる。
M1 mac は出荷時の OS に復元することはできない。
インストールメディアを作成してダウングレードすることしかできない。
旧バージョンの OS ダウンロード
- 旧バージョンの macOS を入手する のページで Big Sur をダウンロードする。
- monterey では big sur のインストールはできません的なやつが出るが無視して良い
インストールメディアの作成
/Applications/Install macOS Big Sur.appがあるはず。- USB を挿しておく。
- USB のパスを確認
ls -la /Volumes - メディア作成を実行
sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia \ --volume /Volumes/USB_exFAT
インストール
- 電源オフして、電源ボタン押しっぱ起動でユーティリティいく(Intelは
command+Ralt(option)? ) - monterey 消す → 再起動される
- 電源ボタン押して強制的に 電源OFF
- 起動時電源ボタン長押しで Installing Big Sur する。
- Big Sur がインストールされる
ボリュームの追加
- ディスクユーティリティ > 表示 > すべてのデバイスを表示
- Machintosh HD を選択した状態で ボリューム+ する
- 名前を付けて追加
新しいほうのOSを準備
- システム環境設定 > ソフトウェア・アップデート でアップデートするとダウンロードされる
- どこにインストールするかのときに「すべてのディスクを表示」して選ぶ
