yuuho.wiki

カオスの欠片を集めて知恵の泉を作る

ユーザ用ツール

サイト用ツール


tips:macos:start

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通りのインストール方法があるっぽい。

  1. CommandLineTools のみのインストール
  2. 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 ダウンロード

インストールメディアの作成

  • /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を準備

  • システム環境設定 > ソフトウェア・アップデート でアップデートするとダウンロードされる
  • どこにインストールするかのときに「すべてのディスクを表示」して選ぶ

未整理メモ

tips/macos/start.txt · 最終更新: 2022/11/22 03:43 by yuuho