Mojave インストールあれこれ


2018/10/18

心機一転、mojaveをインストールします。
使用しているmacは、MacBook air 2013 Mid 13inch
インストール前は high sierraでした

#インストールまで
Command+option+Rで起動
ディスクユーティリティで起動ディスクを消去。
消去して大丈夫かな？と一抹の不安が。

macOSを復元
あれ？mojave出てこないやん、、、、、
どうしたものかと思いつつ、ここで止めたら起動できるのだろうかと心配に。
一旦このまま進めて、あとでmojaveを入れることに。
先にアップデートすべきだったかな。

一旦high sierraを入れたものの、誤ってFileVaultをオンにしたままにしてた
Mojave入れられないやん。
オフにしたいのだが、暗号化進行中で、終わるのが24時間後とか、、、

こうなったら、外部インストールしかない！
古いUSBメモリを引っ張り出してきて、mojaveをダウンロードし、
このUSBに突っ込んで、起動可能にする。

Option押しながらリブートし、
USBインストールメディアから実行。
ようやくmojaveまでたどり着いた。

初期設定画面で、それぞれ設定。
またFileVaultの設定が、、、
絶対有効にしないぞ。
というか、なんでこれデフォルトでオンになってるんだ、、、

とりあえず、ログインはできた
Appstore見てもOSアップデートは特になし。

#一般設定
タッチパッドのスクロール方向が気に入らないので、
システム環境設定→トラックパッド→スクロールとズームのスクロール方向:ナチュラルをオフ。
どうでもいいけど、バッテリーの残り具合は知りたいので、バッテリーマークをクリックし、
割合を表示。

##プリンタドライバ
キャノンのmg6330を使用しているので、ドライバをインストール。
意外と時間かかるな。
印刷テストも実施。yahoo以外のページが思いつかない笑。
##ウイルス対策
うちはNuroなので、おまけでカスペルスキーがついてる。
わざわざお金かける必要ないので、これでおk！
若干ロシアに疑いが無くもないけど、、、
アクティベーションコードを入れて終了。

#バックアップ関連
timemachineを設定
1TBのHDDがあったので、これをバックアップに使用。


#開発関係
##Xcode
10.0をインストール。ダウンロードが長すぎない？
→ダウンロードではなく、インストールに時間がかかってた模様、、、
二時間はかかったような

##home brew
Xcode commanline toolって入れなくてもよくなってたのね。
例によってrubyコマンドを実行

```
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```
と思ったら、途中でcommanline toolのインストールが動いてる、、、、
やっぱ必要なんじゃん。

```
$ brew doctor
```
実行して問題なし

##python関係
###anaconda
まず、pyenvをインストール

```
$ brew install pyenv
```
.bash_profileに以下を追加

```
$ echo 'export PYENV_ROOT="${HOME}/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="${PYENV_ROOT}/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
```
anacondaをインストール

```
$ pyenv install anaconda3-5.2.0
$ pyenv global anaconda3-5.2.0
```
自分のhomeにのみ入るのね

途中、emacsで編集している最中に、control+spaceで入力切替になっちゃうので、
キーボード→ショートカット→入力ソース→前の入力ソースをオフに。

##redis
pythonとは直接関係ないけど、key-valueストアの試しに使用。

```
$ brew install redis
#常時起動するようにしておく
$ brew services start redis
#redisをpythonから使用するライブラリ
$ pip install redis
```

##Bottle
フレームワークのお試し

```
$ pip install bottle
```

##twisted
非同期フレームワーク
こっちはpython2しか動かない模様なので、python2をインストール

```
$ pyenv install 2.7.15
#なんかエラーになった。zlib拡張がコンパイルできなかったとか、、、
#xzが必要なのかな、、、、
$ brew install xz
#変わらず、、、、
```
どうやら以下の記述が必要とのこと。

```
# ~/.env-exporter
# about zlib
export CFLAGS="-I$(xcrun --show-sdk-path)/usr/include"
```
すぐに適用する。

```
$ source ~/.env-exporter
$ pyenv install 2.7.15
```

ようやくうまくいった。

# Jupiter notebook

補完が効く様に一部パッケージを追加

```
$ conda install -y -c conda-forge jupyter_contrib_nbextensions
```

## anaconda その2
どうやら、anaconda上では、パッケージ管理にcondaを使う方が良いらしい。
anaconda3-5.1.0を入れて、そちらで試してみる

```
$ pyenv install anaconda3-5.1.0
$ pyenv global anaconda3-5.1.0
#conda をアップグレード
$ conda update conda
$ conda install redis-py
$ conda install twisted
#このままだと、twistedが動かない
$ conda install service_identity 
```

これでもクライアントコードがエラーになる。
python2じゃないとダメか....

さて、bottleのインストールをしようとしたら、
bottleが見つからない....

下記を参考にさせてもらいました。
[Pythonメモ](https://devlights.hatenablog.com/entry/2017/12/09/183715)

```
#以下の様にサーチ先を追加
$ conda config --append channels conda-forge
#.condarcに conda-forgeが追加された
```

anaconda-3.5.1でも
jupyterで補完が効く様に一部パッケージを追加

```
#.condarcにサーチ先が追加されているので、今度は以下の様で良い。
$ conda install jupyter_contrib_nbextensions
```

## ms office インストール(2018/10/26)
10月からインストール数の制限がなくなり、同時使用数5に変更になった。
macでも使用することもあると思うので、インストール実施。
最後の1分が一時間たっても終わらない。断念。

## fabricを追加
```
$ conda install fabric
```

適当にfabfile.pyを作成して、

```
$ fab -H localhost iso(定義した関数)
No idea what 'iso' is!
```

なんか動かないぞ....
2.7.15でやってみるか。

```
$ pyenv global 2.7.15
$ pip install fabric
$ fab -H localhost iso(定義した関数)
No idea what 'iso' is!
```
一緒やん、、、、
anaconda-3.5.1.0にスイッチして、fabric3を入れることに。

```
$ pyenv global anaconda-3.5.1.0
$ conda uninstall fabric
$ conda install fabric3
$ fab -H localhost iso(定義した関数)
```

やっと動いた、、、、、

# Mac システム環境設定変更
リモートログインを可能にする。
システム環境設定→共有→リモートログインに次のユーザのみに自分を追加
リモートログインをオンに。


## kerasインストール
numpyも更新される模様

```
$ conda install keras

## Package Plan ##

  environment location: /Users/○○○/.pyenv/versions/anaconda3-5.1.0

  added / updated specs: 
    - keras


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    _tflow_select-2.3.0        |              mkl           3 KB
    termcolor-1.1.0            |           py36_1           7 KB
    protobuf-3.6.0             |   py36h0a44026_0         604 KB
    keras-base-2.2.4           |           py36_0         457 KB
    astor-0.7.1                |           py36_0          43 KB
    tensorboard-1.11.0         |   py36hdc36e2c_0         3.1 MB
    tensorflow-base-1.11.0     |mkl_py36h70e0e9a_0        83.3 MB
    keras-preprocessing-1.0.5  |           py36_0          52 KB
    blas-1.0                   |              mkl           5 KB
    numpy-1.14.2               |   py36ha9ae307_0         3.9 MB
    keras-applications-1.0.6   |           py36_0          49 KB
    gast-0.2.0                 |           py36_0          15 KB
    grpcio-1.12.1              |   py36hd9629dc_0         1.5 MB
    absl-py-0.5.0              |           py36_0         146 KB
    libprotobuf-3.6.0          |       hd9629dc_0         3.8 MB
    tensorflow-1.11.0          |mkl_py36h44b7a51_0           4 KB
    keras-2.2.4                |                0           5 KB
    markdown-3.0.1             |           py36_0         107 KB
    ------------------------------------------------------------
                                           Total:        97.1 MB

The following NEW packages will be INSTALLED:

    _tflow_select:       2.3.0-mkl                
    absl-py:             0.5.0-py36_0             
    astor:               0.7.1-py36_0             
    blas:                1.0-mkl                  
    gast:                0.2.0-py36_0             
    grpcio:              1.12.1-py36hd9629dc_0    
    keras:               2.2.4-0                  
    keras-applications:  1.0.6-py36_0             
    keras-base:          2.2.4-py36_0             
    keras-preprocessing: 1.0.5-py36_0             
    libprotobuf:         3.6.0-hd9629dc_0         
    markdown:            3.0.1-py36_0             
    protobuf:            3.6.0-py36h0a44026_0     
    tensorboard:         1.11.0-py36hdc36e2c_0    
    tensorflow:          1.11.0-mkl_py36h44b7a51_0
    tensorflow-base:     1.11.0-mkl_py36h70e0e9a_0
    termcolor:           1.1.0-py36_1             

The following packages will be UPDATED:

    numpy:               1.14.0-py36h8a80b8c_1     --> 1.14.2-py36ha9ae307_0

Proceed ([y]/n)? y
```

## webをソースにする
pandas-datareaderが必要そうなので、インストール

```
conda install pandas-datareader
```

## goをインストール

```
brew go install
```

# Xcodeをアップデート (2019/01/31)
Xcodeを10.1にアップデート
相変わらず、インストールに時間かかるよね、、、

## brewの更新および、emacsの更新

```
$ brew update
# cask を使える様に
$ brew cask
# brew tap が走る。→ レポジトリとして　home-brew/caskが追加された
$ brew cask install emacs
# 完了
```

## go 再び
goenvでバージョン管理したいので、一旦goをアンインストール

```
$ brew uninstall go
$ brew install goenv
#.bashrc_profileに以下を追加
export PATH="$HOME/.goenv/bin:$PATH"
eval "$(goenv init -)"
###
$ source .bashrc_profile
### 最新版を取ってくる
$ goenv install 1.11.4
### 上記のバージョンを指定
$ goenv global 1.11.4
#.bashrc_profileに以下を追加
export GOPATH=${HOME}/go
export PATH="$HOME/.goenv/bin:${GOPATH}/bin:$PATH"
```
#emacs関連
init.elに以下を追加

```
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))
```
これがないと、go-modeが入れられない、、、、

```
M-x package-install go-mode
M-x package-install company-go
```

#chrome

caskを使う。
caskroom/caskを使える様に

```
brew tap caskroom/cask
brew cask install google-chrome
```

#カスペルスキー

pythonでライブラリからwebサイトに接続する過程で、SSLエラーが多発。
以前もあった様な気がするけど、無視してたな、、、、
httpsの監視をオフにしたら解決したっぽい。

#Visual Studio for Mac
https://docs.microsoft.com/ja-jp/visualstudio/mac/installation?view=vsmac-2019

上記に従ってインストール。
AndroidとMac用のモジュールもインストールした。

#cmake (2019/05/09)
ビルドに使うもの

```
brew install cmake
```

#javaインストール(2019/05/12)
最近は、あまり使わないけどな、、、、
でもとりあえずいれとくか。

```
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 3 taps (homebrew/core, homebrew/cask and caskroom/cask).
==> New Formulae
imapsync
==> Updated Formulae
aliyun-cli        faas-cli          istioctl          lxc               skaffold
bwfmetaedit       frugal            jhipster          micronaut         socat
calicoctl         geeqie            joplin            netpbm            ttyd
cfn-lint          gexiv2            juju              oniguruma         ucloud
checkbashisms     glooctl           kotlin            opencoarrays      utf8proc
conan             gtk-doc           kubeprod          postgresql@9.6    wtf
doctl             i2pd              libnice           pygobject         yarn
exiv2             imagemagick       libpq             serverless        youtube-dl

==> Satisfying dependencies
==> Downloading https://download.oracle.com/java/GA/jdk12.0.1/69cfe15208a647278a19ef0990e
######################################################################## 100.0%
==> Verifying SHA-256 checksum for Cask 'java'.
==> Installing Cask java
==> Moving Generic Artifact 'jdk-12.0.1.jdk' to '/Library/Java/JavaVirtualMachines/openjd
Password:
🍺  java was successfully installed!
```
#Ansible

インストール

```
$ brew install ansible
```
依存関係で、一緒に入れられたのが、libyaml、openssl、gdbm、readline、sqllite、python。
このうち、openssl、readline、sqlliteは既存のmacOSと競合するため、/usr/local/bin内にパスができず、使えない。使いたいならそれぞれ、pathを設定すること、らしい。
python3.7.3までインストールされた模様。
こちらは、/usr/local/binに存在するのだけど、pyenvの範囲外になってしまった。

conohaで使用している、pythonが2.7のため、一旦アンインストールする。
ansibleが依存していた、python3も削除。

```
$ brew uninstall ansible
$ brew uninstall python #(python3ではなく、pythonになっている)
```

conohaに入っている、python2.7.5を入れようとしたら、ビルドエラー、、、、
うーん、しょうがない、すでにいれている2.7.15を利用することにする。

```
$ cd ~/ansible
$ pyenv local 2.7.15 #このディレクトリのみ、2.7.15を利用
$ pyenv install ansible
$ pyenv rehash #これをしないと、コマンドでansibleが使えない。気づかずに、はまった、、、
```
#Mac本体
最近スリープモードからの復旧に時間がかかることが気になりだしたので、解消する。
現在の設定

```
System-wide power settings:
Currently in use:
 lidwake              1
 autopoweroff         1
 standbydelayhigh     86400
 autopoweroffdelay    28800
 standbydelaylow      10800
 standby              1
 proximitywake        1
 ttyskeepawake        1
 hibernatemode        3
 powernap             1
 gpuswitch            2
 hibernatefile        /var/vm/sleepimage
 highstandbythreshold 50
 womp                 1
 displaysleep         10
 networkoversleep     0
 sleep                1 (sleep prevented by sharingd)
 acwake               0
 halfdim              1
 tcpkeepalive         1
 disksleep            10
```
以下のように変更

```
sudo pmset -a standbydelay  259200
```

今更ながらVenturaをいれたことによるbrew周りのオペレーション(2023/08/14更新)　
coreとcaskをuntap

```
$ brew update
Installing from the API is now the default behaviour!
You can save space and time by running:
  brew untap homebrew/core
  brew untap homebrew/cask
Already up-to-date.
$ brew untap homebrew/core
Untapping homebrew/core...
Untapped 3 commands and 6694 formulae (7,288 files, 737.9MB).
$ brew untap homebrew/cask
Untapping homebrew/cask...
Untapped 4263 casks (4,381 files, 347.2MB).
```