Powerlineと諸ツールのインストール
Powerlineはシェルやエディタなどのステータスラインをリッチに機能的にしてくれるツールです。見た目もかなりかっこ良くなります。
必要な情報を表示することができ作業が捗リマス!!ただ意外と導入の手順が多く四苦八苦したので、導入までの道のりを書き留めておきます。
説明の環境はGNU/Linux debian8ですが、他のディストリビューションやMacでも参考になるかもしれませぬ。
pythonをインストールする
おそらくほとんどの環境でpython入っているかと思います。
Powerlineはこの記事を書いた時点ではpython2.6以降、もしくはpython3.2以降で動くそうですので、入っているpythonのバージョンを確認してみてください。
$ python
Python 2.7.9 (default, Mar 1 2015, 12:57:24)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>exit()
もし入っていないならインストールをしてください。
パッケージ管理システムpipのインストール
pipとはpythonで書かれたプログラムのパッケージ管理システムだそうです。知らなんだ。
Powerlineはpythonで書かれておりpipで管理されておるとのことで最初にpipを入れます。
かーるちゃんでインストーラをダウンロードします。
$ curl -O https://bootstrap.pypa.io/get-pip.py
インストーラを起動します。
$ sudo python get-pip.py
ここまでは簡単。
フォントのダウンロード
公式ドキュメントでのフォント
公式では以下のフォントが紹介されてます。
PowerlineSymbols.otf
このフォントはPowerlineが装飾につかう記号やマークが入ったフォントです。
このフォントを使うのもいいのですが、すこし設定が面倒です。そこでPowerline用に調整された欧文フォントを使うのが楽かと思います。
Powerline用のフォント
Powerlineの対応フォントがgitにあります。以下のコマンドでカレントディレクトリにフォントが複数ダウンロードされます。
git clone https://github.com/powerline/fonts.git
このフォントの中から好きなものをインストールしてください。
@MINOは見やすかった「Roboto Mono for Powerline
」を選びました。
フォントインストール
フォントのインストールはグローバルに入れる方法とユーザ毎に入れる方法があります。
グローバル(全ユーザ共通)インストール
debianなら以下のディレクトリにフォントが入っています。おそらくopentypeやtruetypeなどがディレクトリに仕分けられていると思います。
/usr/share/font/opentype
/usr/share/font/truetype
今回ダウンロードしたフォントはopentypeやtruetypeも混在していますので、ちゃんと整理したい場合はそれぞれのディレクトリに入れるのがいいでしょう。
Arimoフォント(truetype)をコピーする
$sudo cp -r ~/fonts/Arimo /usr/share/font/truetype
フォントリストを更新にするために以下のコマンドを打ちます
$ fc-cache -fv
これでシステムのユーザみんなが使えるようになります。
-fv
オプションはフォントリストの初期化をするオプションです。付けておいたほうが安心です。
ユーザ毎インストール
ユーザディレクトリ直下の.fonts
というディレクトリに(ない場合は作って)ダウンロードしてきたフォントを放り込んでしまいます。
gitcolneを行ったのがホームディレクトリの場合(ダウンロードしたものを全部コピー)
$ cp -r ~/fonts/* .fonts
フォントリストを更新にするコマンド
$ fc-cache -fv ~/.fonts/
ただし、この方法はユーザのみに有効なので、複数のユーザを使う環境ではグローバルに入れたほうがいいかもしれません。
powerline本体と各種ツールのインストール
フォントを準備したら本体とツールをインストールしていきます。
Powerlineはお天気とか時間とかバッテリーの状態とかさまざな情報を表示するので、さまざなツールと連携して動いています。それもあって本体以外のツール導入が多く、意外と面倒なのだと思いますが、苦労する甲斐はあると思いマス。
apt-get
は@MINOが使用しているdebianのパッケージコマンドなので、各位のお使いの環境のパッケージコマンドに置き換えてください。
$ pip install --user git+git://github.com/powerline/powerline
$ sudo apt-get install socat
$ sudo pip install psutil
$ sudo pip install pyuv
これらのコマンドでインスト−ルしているものは以下です。一応説明書きしていますが、@MINOの知識ではわからない領域なので間違っていたらごめんなさい。
ツール | 役目 |
---|---|
powerline | powerline本体 |
socat | ネット万能ツール。tcp/udpパケットをいろいろ弄くることができる |
psutil | プロセスとシステム使用率(CPU、メモリ)を実行する上での情報を取得するためのインタフェースを提供するモジュール |
pyuv | libuvのpython実装。非同期のファイルシステムへのアクセス等を提供するライブラリ |
Powerlineではいくつかの機能を提供しているのですが、その機能を実現するために必要になるツールです。
公式ドキュメントでは以下の4つのインストールも言及されていますが、@MINOの環境では先にインストールしていたのか(記憶ない)今回のPowerline導入には必要ありませんでした。
ツール | 役目 |
---|---|
mercurial | 分散バージョン管理ソフト |
pygit2 | GitリポジトリをPythonで操作する為のライブラリ |
bzr | 分散バージョン管理ソフト |
i3-py | i3バインド用ライブラリ |
i3-pyに関してはi3(ウインドウマネージャの種類の1つ)をつかっていないなら必要ないと思います。
もしPowerline導入工程になんらかの障害がでるようでしたら上記のツールのインストールも必要かもしれません。
pipでインストールをする場合のエラー
どうもpipでのインストールエラーはハマりどころのようで多くの方がなにかしら足りないと言われてしまうようです。
python-devが無い
psutilをインストールしようとすると
fatal error: Python.h: そのようなファイルやディレクトリはありません
といったようなエラーがでてしまいインストールが失敗するかもしれません。案の定@MINOは失敗しました。
これはどうやらpythonデベロッパツールが入っていない為に起こるエラーのようです。 なのでpython-devを入れましょう。
@MINOの場合、debianに入れてある(というか最初から入っていた)pythonのバージョンが2.7だったので、python2.7-devを入れると良いようです。
場合によってはpython3を入れてる人もいるかもしれません。
入れてあるpythonのバージョンに合わせたpython-devをいれてください。
debianでpython2.7-devをインストール
$ sudo apt-get install python2.7-dev
libtool(libtoolize)やautomake(aclocal)が無い
これらはいずれも自動設定にかかわるライブラリのようです。
ちょっと知識が足らなくてあまりわかっていませんが、@MINOの環境ではpyuvをインストール時にlibtoolizeが無いと言われ、それを解決したあとにaclocalが無いと言われました。
最初のインストール時のエラー(ログ抜粋)
autogen.sh: 43: autogen.sh: libtoolize: not found
libtool(libtoolize)をインストール後のエラー(ログ抜粋)
autogen.sh: 44: autogen.sh: aclocal: not found
libtoolizeはlibtool、aclocalはautomakeをインストールすることで入るようです。以下はdebianの場合です。
$ sudo apt-get install automake
$ sudo apt-get install libtool
@MINOの環境ではこの2つを入れることでインストールが正常に終わりましたが、他にもエラーが出るかもしれません。
pipの標準出力のインストールログにもエラー内容が詳しく出ますので念入りに読むことで何が足りないのかが解ると思います。
パスを通す
やっとこさインストールがおわったらパスを通します。
powerline関係の実行ファイルは
~/.local/bin
に入っているかと思います。ここのパスを通します。
@MINOはbashなので~/.bashrc
に以下を追加しました。 お使いのシェルに合わせて設定してください。
#powerline
export PATH=~/.local/bin/:$PATH
bashでのpowerline使用
.bashrc設定
powerlineをbashで使うためには~/.bashrc
にpowerline-daemon
を起動させるように記述しておきます。
そしてbash用のスクリプトの読み込みも記述します。
powerline-daemon -q¬
. ~/.local/lib/python2.7/site-packages/powerline/bindings/bash/powerline.sh
変更した~/.bashrc
を読み込みます。
$ souce .bachrc
これでプロンプトがリッチになるかと思います。
例はbashの場合ですが、 ~/.local/lib/python2.7/site-packages/powerline/bindings
以下のはいくつかのシェル用のスクリプトがありますので、それぞれお使いのシェルや環境に合わせて設定してください。
tmuxでのpowerline使用
.tmux.conf設定
tmuxの設定ファイルである.tmux.confに
以下を追加します。
run-shell "powerline-daemon -q"
source ".local/lib/python2.7/site-packages/powerline/bindings/tmux/powerline.conf"
これでtmuxを再起動させるとステータスラインがリッチになっていると思います。
vimでのPowerline使用
プラグインを使う
公式ドキュメントには2つ方法が説明されていますが、プラグインを使うのが圧倒的に楽です。
vimrc
にて
まずはパスを設定
set rtp+=~/.local/lib/python2.7/site-packages/powerline/bindings/vim
そしてプラグイン管理ツールにてインストール
vandleの場合
Bundle 'powerline/powerline', {'rtp': 'powerline/bindings/vim/'}
NeoBundleの場合
NeoBundle 'powerline/powerline' , {'rtp': 'powerline/bindings/vim/'}
これでvimを再起動させるとプラグインをインストールするか聞かれ、入るとステータスラインが変わるはずです。
dein.vimの場合
call dein#add('powerline/powerline' , {'rtp': 'powerline/bindings/vim/'})
これでvimを再起動させるとプラグインをインストールするか聞かれ、入るとステータスラインが変わるはずです。
後記
とりあえずの導入編でした。なかなか手順がいっぱいあり面倒で心が折れそうでしたが、なんだか環境がかっこ良くなってよかったです。