カテゴリー : Mac

Mac OS X El Capitan にアップグレードしたら hub コマンドが動かなくなったけど brew upgrade hub したら解決した

Mac OS X El Capitan がリリースされてそれなりに時を経たので、会社で使ってる Mac も El Capitan へアップグレードしました。

タイトルで終わってますが El Capitan にアップグレードしたら hub コマンドが動かなくなったのですが brew upgrade hub したら解決したので、似たようなエラーに悩まされた方は brew upgrade するといいですよ。

hub コマンドのエラー事例

いつも通り hub コマンドで github の pull-request を作成しようと思ったら、見たことのないエラーが発生しました。

$ hub pull-request -h myGitHubRepo:`git symbolic-ref --short HEAD`
/usr/local/bin/hub:75:in `initialize': wrong number of arguments (9 for 1) (ArgumentError)
	from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1030:in `new'
	from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1030:in `proxy_uri'
	from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1017:in `proxy?'
	from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:868:in `connect'
	from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:862:in `do_start'
	from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:851:in `start'
	from /usr/local/bin/hub:473:in `perform_request'
	from /usr/local/bin/hub:588:in `perform_request'
	from /usr/local/bin/hub:437:in `post'
	from /usr/local/bin/hub:371:in `create_pullrequest'
	from /usr/local/bin/hub:1760:in `pull_request'
	from /usr/local/bin/hub:1586:in `run'
	from /usr/local/bin/hub:2514:in `initialize'
	from /usr/local/bin/hub:2518:in `new'
	from /usr/local/bin/hub:2518:in `execute'
	from /usr/local/bin/hub:2569:in `<main>'

ネットで調べてみたところ 「hub のバージョンが古いと動かないので brew upgrade hub するといいよ」という内容を書いている isuue を見つけたのでそれ通り対応してみたら解決しました。

$ brew list | grep hub
hub
 
$ hub --version
git version 2.1.3
hub version 1.12.2
 
$ brew upgrade hub
==> Upgrading 1 outdated package, with result:
hub 2.2.3
==> Upgrading hub
==> Downloading https://homebrew.bintray.com/bottles/hub-2.2.3.el_capitan.bottle.tar.gz
######################################################################## 100.0%
==> Pouring hub-2.2.3.el_capitan.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
 
zsh completion has been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
🍺  /usr/local/Cellar/hub/2.2.3: 9 files, 10.3M

OS アップグレードは何かしらハマりますね。

brew update で fatal: cannot create directory at ‘.github’: Permission denied というエラーが出たときの対応方法

Mac で brew update を実行したら、

$ brew update
fatal: cannot create directory at '.github': Permission denied
Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master

というエラーメッセージが表示されたときの対応方法をご紹介します。

/usr/local ディレクトリの permission を変更

fatal: cannot create directory at ‘.github’: Permission denied というエラーメッセージが表示されるのは /usr/local ディレクトリの permission が無いのが原因です。

chown コマンドで所有者を自分に変更しましょう。

$ ls -la /usr/local
total 112
drwxr-xr-x   24 root     wheel    816 Oct 28 08:47 .
$ sudo chown $(whoami):admin /usr/local
$ ls -la /usr/local
total 112
drwxr-xr-x   24 myname  admin    816 Oct 28 08:47 .

Homebrew の GitHub repository を master へ更新

cd `brew --prefix`
git fetch origin
git reset --hard origin/master

最後に Homebrew をアップデート

$ brew update
$ brew -v
Homebrew 0.9.9 (git revision 145155; last commit 2016-04-23)
Homebrew/homebrew-core (git revision bd06; last commit 2016-04-23)

以上です。

[Mac] ionice コマンドをインストールする手順

Mac で ionice コマンドを使えるように、インストールする手順をご紹介します。

curl -O https://raw.github.com/elmarb/ionice/master/ionice.c
gcc ionice.c -o ionice
sudo install -o root -g wheel ionice  /usr/local/bin/

ionice コマンドを使うと、低負荷で大量なファイルを copy することができるようです。

Linux は便利なコマンドがたくさんあって奥深いですね。

参考情報

Mac で HDD や SSD のディスクスピードテストができるアプリ「Disk Speed Test」

カスタマーレビュー

起動できませんでした

レビュー : BLATAPI
OS 10.6.6以降をサポートしているとなっていますが 起動すらできませんでした。
当方 OS 10.6.8を使用しています。
ライブラリ(libc++.1.dylib)の読み込みエラーが原因ですが ちょっと調べたところ Appleのサポートが切れているっぽい?

旧いOSを使っているのでしょうがないですが残念でした。

SSDの寿命に悪影響かも。

レビュー : Hirojkovic
新しく購入したMacBookの性能を試そうとテスト実施。
いちおう1GBから5GBまで負荷容量を選べるのですが、
実際に5GBで試してみると延々とひたすら読み書きを続けます。
読み書き回数に制限のあるSSDではこれが命取りになりかねないので、
自分で計測をストップすることをおすすめします。

Thunderboltがいらないことを証明してくれた

レビュー : budoo
USB3.0の外付けSSDの検証に使用。
ReadもWriteも400MB/s出ていたので、Thunderboltを使うまでもないことが分かった。
まぁThunderboltならもっと出てるだろうけど、USB外付けケースを2000円せずに買えたことを考えると、費用対効果は薄いだろう。
iMac内蔵FusionDriveも検証したけど、そこまでは出てなかった。
SDカードに至っては10MB/sにも届かず…
無料でドライブ選択の迷いを払拭してくれたんだから、これ以上ありがたいことはない。

参考情報

[Mac App] タイマーアプリ「Alinof Timer」がシンプルで使いやすい

Mac 向けのタイマーアプリ「Alinof Timer」がシンプルで使いやすかったのでご紹介します。

タイマーの設定画面

タイマーの設定画面

タイマー動作時の画面

タイマー動作時の画面

社内 MTG の発表時間が1人当たり1分30秒と決められているのですが、それを計測するのに重宝しています。

[Mac] YouTube に音声ファイルをアップロードするために FFmpeg を使って mp3 を mp4 に変換する

YouTube に音声ファイルをアップロードするために Mac で mp3 と画像ファイルを合成して、動画ファイル mp4 に変換する方法をご紹介します。

FFmpeg のインストール

まず、HomeBrew を使って FFmpeg をインストールします。

FFmpeg は動画と音声を変換することのできるフリーソフトウェアです。

brew install ffmpeg

音声ファイル mp3 + 画像ファイル jpg => 動画ファイル mp4

入力ファイルとして、

  • 画像ファイル: image.jpg
  • 音声ファイル: audio.mp3

を準備しておいて、下記のコマンドを実行すると out.mp4 という動画ファイルが作成できます。

ffmpeg -loop 1 -i image.jpg -i audio.mp3 \
-c:v libx264 -tune stillimage \
-c:a aac -strict experimental -b:a 192k -pix_fmt yuv420p \
-shortest out.mp4

最初は音声ファイルを動画ファイルに変換してくれるアプリを探していたのですが、良いアプリが見つからす CLI 上で作業しました。

とてもカンタンだったのでアプリとか探さずに最初から FFmpeg を使うべきでしたね・・・。


参考情報

[Mac] ウイルスに感染して search-quick.com がデフォルトページに設定されてしまう

知人から「Mac がウイルスに感染して search-quick.com がデフォルトページに設定されてしまうので助けて!」という相談を受けました。

下記のYahoo!知恵袋へ投稿されている相談内容と似たようなケースです。

まず、下記の2つを試してもらいました。

さらに、AdwareMedic というアプリを使ってもらって、解決できたみたいです。

この知人は Adobe Flash Player のアップデートみたいな偽サイトに引っ掛かったみたいです。

怪しいアプリや広告などには気をつけたいですね。

[Mac] Yosemite で brew コマンドが動かないときの解決方法

Mac OS X Yosemite で brew コマンドを実行しようとするとエラーが発生しました。

エラー内容

% brew -h
/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory
/usr/local/bin/brew: line 21: /usr/local/Library/brew.rb: Undefined error: 0

brew コマンド復活の手順

まず、下記のように ruby の path を 1.8 から current へ変更します。

git diff
 
diff --git a/Library/brew.rb b/Library/brew.rb
index 4fa22b4..ee05650 100755
--- a/Library/brew.rb
+++ b/Library/brew.rb
@@ -1,4 +1,4 @@
-#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -W0
+#!/System/Library/Frameworks/Ruby.framework/Versions/current/usr/bin/ruby -W0
 # encoding: UTF-8
 
 std_trap = trap("INT") { exit! 130 } # no backtrace thanks

次に brew の git repository へ移動して、修正内容を commit します。

cd $(brew --prefix)
git add .
git commit -m 'Change the path for ruby'
brew update

最後に git commit をしておかないと brew update したときに下記のようにエラーでアップデートできません。

% brew update
 
error: Your local changes to the following files would be overwritten by merge:
	Library/Formula/mongodb.rb
Please, commit your changes or stash them before you can merge.
error: Your local changes to the following files would be overwritten by merge:
	Library/brew.rb
Please, commit your changes or stash them before you can merge.
Aborting
Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master

brew update で盛大に conflict したときは手元の修正は捨てて、

git reset --hard HEAD
git merge -Xtheirs origin/master

してしまえば OK です。


参考情報

[Mac] -bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

Mac の Terminal アプリから外部サーバへ ssh すると -bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory という Warning メッセージが表示されました。

$ ssh codenote.net
-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

この状態だと mongo shell に入るときもエラーが発生するので export LC_ALL=C する必要があってちょっと面倒なんですよね。

$ mongo mydb
Failed global initialization: BadValue Invalid or no user locale set. 
Please ensure LANG and/or LC_* environment variables are set correctly.

Set locale environment variables on startup のチェックボックスを外せば Warning メッセージは表示されなくなります。

Terminal-Profiles-Set-locale-env

僕は Mac の言語設定を日本語から英語に変更したタイミングでこのようなエラーが発生するようになりました。

同じような問題に悩まされた方は Terminal アプリの設定を確認してみるといいかもしれません。

[Mac] QuickTime Player での画面録画の手順

Mac の QuickTime Player を使って画面を録画する手順をまとめました。

事前準備

Sony の USB マイクを Mac に接続します。

Amazon.co.jp: SONY エレクトレットコンデンサーマイクロホン PCV80U ECM-PCV80U: 楽器

QuickTime Player で画面を録画する

  1. QuickTime Player を起動する
  2. [ファイル] – [新規画面収録] をクリックする
  3. [画面収録] ウィンドウにて [マイク] から UAB-80 を選択する
    QuickTimePlayer-1
  4. 赤丸の録画ボタンをクリックする
  5. クリックするとフルスクリーンで収録されます。… というメッセージが表示される
    QuickTimePlayer-2

    • フルスクリーン収録: クリック
    • 部分収録: ドラッグ
  6. メニューバーの ■ ボタンをクリックして収録を停止する
    QuickTimePlayer-3
  7. 収録停止後、 Command + S でファイルを忘れずに保存する

以上です。


参考情報

Mac標準ソフトQuickTimeで、パソコン画面を音声込みで動画録画する方法