====== macOS ====== ===== 環境構築 ===== === クリーン再インストール === * 電源起動時に電源ボタン押しっぱなしにする * オプションというのが出るのでオプションを選択して macOSユーティリティにゆく * ディスクユーティリティから Macintosh HD を選択してボーリュームマイナスボタンを押して消す.\\ 「ボリュームグループを消去」を選べば良い * 消去が終わったら「macOS を再インストール」を選ぶ * OSインストールしたら AppleID サインインなどせず始める. * 以下のスクリプトを実行したらサインイン無しで環境構築できる.
↓古いコードが折り畳まれている
# 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

# 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 コマンドでやっていく ==== * [[https://fnwiya.hatenablog.com/entry/2015/11/06/155255|参考]] === 変更前設定を保存 === 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'' と同じにしておく PROMPT='%F{34}%n@%m%f:%F{32}%~%f$ ' export LSCOLORS=gxfxcxdxbxegedabagacad alias ll='ls -LGF' alias ls='ls -GF' ==== tmux ==== 色を反映させるには次のようにする。 set-option -g default-terminal screen-256color set -g terminal-overrides 'xterm:colors=256' ==== bash ==== デフォルトでは ''.bashrc'' を読んでくれないので以下のように ''.bash_profile'' を作るのが良い.<- bashデフォルト時代の話? 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 # パッケージをインストールする brew install # インストールしたパッケージのアップデート brew upgrade # パッケージのアンインストール brew uninstall # インストールしたパッケージ(=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 ダウンロード === * [[https://support.apple.com/ja-jp/HT211683|旧バージョンの 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+R alt(option)? ) * monterey 消す -> 再起動される * 電源ボタン押して強制的に 電源OFF * 起動時電源ボタン長押しで Installing Big Sur する。 * Big Sur がインストールされる === ボリュームの追加 === * ディスクユーティリティ > 表示 > すべてのデバイスを表示 * Machintosh HD を選択した状態で ボリューム+ する * 名前を付けて追加 === 新しいほうのOSを準備 === * システム環境設定 > ソフトウェア・アップデート でアップデートするとダウンロードされる * どこにインストールするかのときに「すべてのディスクを表示」して選ぶ ====== 未整理メモ ======