使いものにならない初期状態の Mac をある程度使えるまでにもってくまで

最近諸事情があって MacBook Air を変えました。はい、 Time Machine なんて使ってませんでした。
もうまっさらですよ。やる気もまっさら。
Homebrew と Homebrew Cask でだいたいインストールしたところで心が折れてしばらくターミナル環境整えてませんでした。
メモ書きはしてたんですけどねー。
はい、怠慢ですね。
家で何か作業しようとすると腰が痛くなるしデスクトップに座るのも腰が痛くてつらいし、
ベッドに横たわりたくなるし何もする気が起きなくてお酒飲みたくなってしまうので、
無理やり外に出てスタバでドヤリングしながら文章書いてる次第です。

最近開発環境まともに整える必要が出てきて重い腰を上げてやってる次第です。

今度買うのは MacBook Pro 15 インチがいいなあ。。。
13 インチ 8GB の MBA でもけっこう非力です。
Windows VM なんて動かしたらもうそれで終わりですよ。
最近は Google Apps が幅を効かせているからある程度はいけますが、
やっぱりオフィス系の文章は開けないと使いものにならないし、
Office for mac 2011 とかあんなの Office のまがい物だからね?

さて愚痴が長くなってしまいました。
Mac を買って使えるようにするまでどうしたか、その記録です。
また同じ轍を踏まなくていいように。
つーか Time Capsule 買えよって話か。
ドットファイルとか設定ファイル GitHub に移行しようかな・・。

以下は随時更新する予定

あ、 BlogLinkClipper 使ってください。
お願いします。(宣伝)

References

Related Posts

  1. Mac OS X の tmux でクリップボードを使えるようにした(pbcopyとか) – 戦場のプログラマー
  2. 僕の iTerm2 + zsh のキーバインド定義 – 戦場のプログラマー
  3. Yosemiteにして直面した困ったことつらつら書いていく – 戦場のプログラマー
  4. MacにiTerm2+Powerlineを今更ながら入れてみた – 戦場のプログラマー
  5. Mac OS X Mavericksでawscliをインストールする – 戦場のプログラマー
  6. Macのzshでawscliの補完を有効化する – 戦場のプログラマー
  7. Amazon Route53の設定管理ツールのRoadworkerを使ってみた – 戦場のプログラマー

Yosemiteにして直面した困ったことつらつら書いていく

随時書き込んでいきます。
対策は暇があるときに考える。

brew doctor が失敗する

% brew doctor
Error: No such file or directory - /Library/Developer/CommandLineTools/usr/bin/clang
  1. incorrect clang path on Yosemite · Issue #29830 · Homebrew/homebrew
  2. Yosemite(OS X 10.10)においてHomebrewが使えない問題を解決する – Qiita

Powerline の Ricty フォントが消滅してうまく表示されない

f:id:wnoguchi0727:20141021210932p:plain

Mac に Homebrew でクリップボード共有機能搭載版の vim をインストールする

Mac 標準搭載の現行のバージョンはこう。

% vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Dec 19 2013 15:19:49)
Compiled by root@apple.com
Normal version without GUI.  Features included (+) or not (-):

そして有効になっていない。

% /usr/bin/vim --version | grep clipboard
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
-xterm_clipboard -xterm_save

Homebrew で入れよう。

brew update
brew install vim

ついでに gist コマンドが更新されていたので brew upgrade gist しといた。 gist -l 便利。

端末を立ち上げ直す。
ただし /etc/paths をいじってあるのが前提。

% vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Aug 22 2014 07:37:47)
MacOS X (unix) version
Included patches: 1-335
Compiled by Homebrew
Huge version without GUI.  Features included (+) or not (-):

有効になってるか確認。

% vim --version | grep clipboard
+clipboard       +iconv           +path_extra      -toolbar
+eval            +mouse_dec       +startuptime     -xterm_clipboard

~/.vimrc に以下の記述を追加。

set clipboard+=unnamed

OK!

後日談(重要)

いつのまにか delete キーが効かなくなってたことに気づいた・・・。
すげー焦った。自前で set backspace しないといけないらしい。

set backspace=indent,eol,start

References

  1. MacのVimでHomebrewを使ってクリップボード連携を有効にする – Qiita
  2. インサートモード時にバックスペースが効かないのに気づいた – TrashSUITE

HomebrewでUTF-8-MAC問題を解決したSubversionをインストールする(1.7系、非1.8系)

現時点でHomebrewで提供されている最新バージョンのSubversion 1.8.10はUTF-8MAC問題を解決する --unicode オプションに対応していない。
なので 1.7 系をインストールする。

% brew info svn
subversion: stable 1.8.10 (bottled)
https://subversion.apache.org/
Not installed
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/subversion.rb
==> Dependencies
Build: pkg-config ✔, autoconf ✔, automake ✔, libtool ✘, scons ✘
Required: sqlite ✘, openssl ✘
==> Options
--java
Build Java bindings
--perl
Build Perl bindings
--ruby
Build Ruby bindings
--universal
Build a universal binary
--with-python
Build with python support
==> Caveats
svntools have been installed to:
/usr/local/opt/subversion/libexec
  • まずはsvnコマンドのロケーションを確認する。
    また、事前に /etc/paths/usr/local/bin が優先的に設定されていることを確認しておく。
% which svn
/usr/bin/svn
brew tap homebrew/versions
  • インストールするものが --unicode-path オプションが有効であることを確認する。
% brew info subversion17
subversion17: stable 1.7.14
http://subversion.apache.org/
Not installed
From: https://github.com/homebrew/homebrew-versions/blob/master/subversion17.rb
==> Dependencies
Build: pkg-config ✔, scons ✘
Required: neon ✘, sqlite ✘, openssl ✘
==> Options
--java
Build Java bindings
--perl
Build Perl bindings
--ruby
Build Ruby bindings
--unicode-path
Include support for OS X UTF-8-MAC filename
--universal
Build a universal binary
--with-python
Build with python support
  • よしインストール。
brew install subversion17 --unicode-path
  • 端末を立ち上げ直す。できたかな?
[wnoguchi@noguchiwataru-no-MacBook-Pro] ~
% which svn
/usr/local/bin/svn
[wnoguchi@noguchiwataru-no-MacBook-Pro] ~
% svn --version
svn, version 1.7.14 (r1542130)
compiled Aug 19 2014, 23:56:41
Copyright (C) 2013 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/
The following repository access (RA) modules are available:
* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
- handles 'http' scheme
- handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
- with Cyrus SASL authentication
- handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
- handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
- handles 'http' scheme
- handles 'https' scheme

References

  1. homebrewでのutf-8-mac対応svnインストール – namutakaの日記
  2. HomebrewでSubversion17をインストールする際のunicode-pathオプションでのエラー対処 – BEFOOL blog
  3. Homebrewで日本語ファイル名問題(UTF-8-MAC)にパッチをあてたSubversionをインストールする – 豆無日記

HomebrewでインストールしたputtygenでPuTTY形式(ppk)のOpenSSH形式に変換しようとするとエラーになる

最近自分の中のナレッジを整理してる。
WindowsGUIでやるのもいいけど、ppk形式の鍵もコマンドラインでOpenSSH形式に変換できたほうがいいですよね、
というか、それしか選択肢がない日が絶対来ると思う。

ということでMacで puttygen コマンドで方法なんですが。
いつものようにHomebrewでインストールしようとしたらハマったのでメモ。

  • まずはインストール。
brew install putty

OpenSSH形式からPuTTY形式(ppk)に変換する方法

これはうまくいく

puttygen -O private secure-private-key.pem -o secure-private-key.ppk

PuTTY形式(ppk)からOpenSSH形式に変換する方法

% puttygen -O private-openssh test.ppk -o test.pem
Enter passphrase to load key:
Assertion failed: (random_active), function random_byte, file ./unix/../sshrand.c, line 313.
zsh: abort      puttygen -O private-openssh test.ppk -o test.pem

エラー。。。

This is a known issue in 0.63. You must brew with –HEAD to build from Putty‘s svn, which has a fix for the bug.
Putty: puttygen: Assertion failed · Issue #25734 · Homebrew/homebrew

解決方法はいくつかあったけどあまりHomebrewのやり方から逸脱したくなかったので前者を採用。

% brew reinstall putty --HEAD                                                   (git)-[master]
==> Reinstalling putty
==> Installing dependencies for putty: halibut, automake
==> Installing putty dependency: halibut
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/halibut-1.0.mavericks.bott
######################################################################## 100.0%
==> Pouring halibut-1.0.mavericks.bottle.tar.gz
🍺  /usr/local/Cellar/halibut/1.0: 4 files, 1.0M
==> Installing putty dependency: automake
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/automake-1.14.1.mavericks.
######################################################################## 100.0%
==> Pouring automake-1.14.1.mavericks.bottle.tar.gz
🍺  /usr/local/Cellar/automake/1.14.1: 127 files, 2.5M
==> Installing putty
==> Checking out svn://svn.tartarus.org/sgt/putty
svn: E000060: Unable to connect to a repository at URL 'svn://svn.tartarus.org/sgt/putty'
svn: E000060: Can't connect to host 'svn.tartarus.org': Operation timed out
Error: Failed to download resource "putty"
Failure while executing: svn checkout -q --force svn://svn.tartarus.org/sgt/putty /Library/Caches/Homebrew/putty--svn-HEAD
[wnoguchi@noguchiwataru-no-MacBook-Pro] ~/Documents/repos/github/doc

つながらん・・・。

日を改めたらつながって再インストールできました。
たまにサーバ自体が死んでいて失敗するときもあるようだ。

Mac OS X Mavericksでawscliをインストールする

家で余ってたMBAのセットアップ。
ついでに jq もインストールする。
以前は環境変数の設定周りがごちゃごちゃしてた気がするんだよな・・・。

前提条件

  • デフォルトのpythonは無視したい(homebrewで入れる)
  • zsh
  • /etc/paths を少しいじってる(/usr/local/bin/python が使われるようにして
    る)

インストール

意外とあっさり入った。

brew install python
pip install awscli
brew install jq

デフォルトで入っているpythonとのバージョン比較(3014/07/29現在)

[noguchiwataru@noguchiwataru-no-MacBook-Air] ~
% python --version
Python 2.7.8
[noguchiwataru@noguchiwataru-no-MacBook-Air] ~
% /usr/bin/python --version
Python 2.7.5

設定

アクセストークンはIAMから発行すること。
間違ってもAWSアカウント直で発行しないこと。死ぬ。
また、出力フォーマットはjqで整形できるのでJSONが望ましい。

% aws configure
AWS Access Key ID [None]: your_access_key_id
AWS Secret Access Key [None]: your_secret_access_key
Default region name [None]: ap-northeast-1
Default output format [None]: json

以下のようにすると設定ファイルが作成されていることがわかる。

% ls -F ~/.aws/
config

中身はこんな感じ。

[default]
output = json
region = ap-northeast-1
aws_access_key_id = your_access_key_id
aws_secret_access_key = your_secret_access_key

動作確認

次のコマンドが動作すればOK。

% aws ec2 describe-instances | jq '.'

補完機能を有効にする

zsh

一番最後の行に以下の1行を入れる。
一番最後じゃないと動かなかった気がする。
たぶんデフォルトでパスが通っている場所においてあると思う。

# ~/.zshrc
# (snip)
source aws_zsh_completer.sh

source ~/.zshrc

bash

~/.bashrc じゃだめなので注意。

# ~/.bash_profile
complete -C aws_completer aws

source ~/.bash_profile

References

  1. Configuring the AWS Command Line Interface
  2. Macのzshでawscliの補完を有効化する – 戦場のプログラマー