rcmdnk's blog

Amazon.co.jp: Reattach: Another October: デジタルミュージック

masはMacでApp Storeのアプリを コマンドラインからインストールすることが出来るコマンドです。

このコマンドをターミナルマルチプレクサのtmuxの中から 実行するとそのままでは正しく動かないので注意が必要です。

mas

masについて詳しくはこちら。

Homebrewで

$ brew install mas

で入れられます。

$ mas list
495705418 Volume Reset
497799835 Xcode
430173763 Degrees
409183694 Keynote
408981434 iMovie
458998390 Farensius
992115977 Image2Icon
487505968 Photobricks
451732904 App Language Chooser
568494494 Pocket
560851219 Should I Sleep
409201541 Pages
539883307 LINE
682658836 GarageBand
495945638 Wake Up Time
409203825 Numbers

とかするとApp Storeからインストールしたアプリケーション一覧を示してくれます。 (左の番号はApp StoreでのアプリのID。)

mas in tmux

これをtmuxを立ち上げてその中で実行すると、

$ mas list
No installed apps found

と何も見つけられません。

これはMacではサービスがそれぞれ名前空間の中に存在する様になっていますが、 そのサービスが居る名前空間とその下のものにしかアクセス出来ないようになっています。 masはApp Storeのサービスを使いますが、 tmuxが立ち上げるサービスが別の低いレベルで作られるため、 tmux内からだとmasでApp Storeの情報にたどり着けない、というが問題な様です。

同様にtmuxでOSのクリップボードにアクセスしようとpbpastepbcopyを 使おうとすると機能しないこともあるとのこと。

reattach-to-user-namespace

この問題を解決してくれるのが reattach-to-user-namespaceと言うコマンドです。

Homebrewでインストールできて、

$ brew install reattach-to-user-namespace

で入ります。

使い方はreattach-to-user-namespaceに使いたいコマンドを引数としてそのまま 渡せばOK。

$ reattach-to-user-namespace mas list

とすればtmux内からでもきちんとApp Storeのアプリの情報が取れます。

必要であれば.bashrc等に

if [ "$TMUX" != "" ];then
  alias mas="reattach-to-user-namespace mas"
fi

とかしておけばそのままmasで使えます。 (pbcopy等も同様。)

GNU screenでも同様の問題が起こることもあるみたいですが、 今使ってるものでは起こっていません。 Homebrewでソースからコンパイルして入れてるわけですが、 あててるパッチはUTF関連の物と一部コンパイル時に出るwarningを抑える様なものだけなので これに関するパッチは入ってないとは思うのですが。

元々入ってる物にはこれも含めて色々なパッチがあたっているみたいです。

Homebrew-fileのアップデート

元々これはHomebrew-fileのIssueで教えてもらったことだったんですが、 これに関するアップデートを入れました。

brew-fileを使ってinit等でリストを作る際 App Storeのアプリリストを作るのにmasを使いますが、 tmux内で実行された場合にはreattach-to-user-namespace を使ってコマンドをラップする様にしました。

reattach-to-user-namespaceがインストールされてない場合には 自動でインストールするようにもなっています。 なので特に気にせずそのまま使えます。

これまでtmux内で実行してた人はApp Storeのリストに No installed apps foundという文字が出て、 それがエラーの原因になってたりしたかもしれません。 何も無い時にこれがリストに載ってしまうのは単なるバグなのでこれも治しました。 Keynote等、元から入ってる物も含まれるので 基本何も無い、と言う状態は余りないとは思いますが。

Sponsored Links
Sponsored Links

« Evernoteの無料改悪で端末2台のみでしか使えなくなる様になる 'IDE'の検索ランキングでVimがEmacsを大幅に上回る »

}