2014/09/27

[作業記録, Debian] tmux をビルドした

早速ダウンロード・ビルド

git clone git://git.code.sf.net/p/tmux/tmux-code tmux-tmux-code

./configure
-bash: ./configure: No such file or directory

あ、configure ない。 README 見よう。

...(抜粋)
    $ git clone git://git.code.sf.net/p/tmux/tmux-code tmux
    $ cd tmux
    $ sh autogen.sh
    $ ./configure && make

autogen が必要みたい。

sh autogen.sh
autogen.sh: 16: autogen.sh: aclocal: not found
aclocal failed

aclocal とな。 automake がいるのか。というか入れてなかったっけ?

sudo aptitude install automake
sh autogen.sh
./configure
checking for library containing event_init... !!!configure: error: "libevent not found"!!!

こんどは libevent だ。

sudo aptitude install libevent-dev
./configure --prefix=/home/mikoto/opt/tmux
make -j8
make install

うん、できたっぽい。作業記録なので動作確認は割愛。あと、ビルドのためのパッケージはほぼすべてインストール済みだったのでそれも省略。

2014/09/20

[Debian, Ruby]Debian(wheezy) に rbenv で ruby2.1.3 をインストール

これだけ。

# 必要パッケージ取得
sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev rbenv ruby-build

# rbenv 初期設定
rbenv init
echo eval "$(rbenv init -)" >> .bashrc

# 2.1.3 のパッケージ URL を指定したファイルを作成
vim 2.1.3
cat ./2.1.3
install_package "yaml-0.1.4" "http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz"
install_package "ruby-2.1.3" "http://ftp.ruby-lang.org/pub/ruby/2.1/ruby-2.1.3.tar.gz"

# 2.1.3 インストール
rbenv install ./2.1.3

# ruby コマンドで 2.1.3 が呼び出されるようにする。
rbenv global 2.1.3

2014/09/19

[Mikutter] UserConfig に連想配列を格納して、設定画面から変更できるようにしたい

UserConfig に連想配列を格納して、設定画面から変更できるようにしたかったので挑戦してみた。

実現方針は下記。

  • 設定画面の設定値を連想配列に紐付ける
  • 連想配列に変更があったら UserConfig を更新する

設定画面の設定値を連想配列に紐付ける

Settings の各関数にリスナを渡せるので、リスナ内で連想配列に出し入れするよう頑張ってもらう。

select は、 3.0.5 の時点ではリスナを渡せない。 3.0.6 くらいでフィックスされるのではないだろうか。

連想配列に変更があったら UserConfig を更新する

UserConfig[key] で取得できる値はコピーなので、 格納した連想配列に変更があった場合には連想配列自体を入れ替える。

上述のリスナの set 処理の最後に、連想配列をごっそり入れ替える処理を入れる感じ。

コードと、その結果の設定は下記の通り。

設定項目がゴチャッとしてきたらそれなりにわかりよくなるのではないでしょうか。

書きながら思ったけど、何かやるたびに連想配列全体のコピーが走るんだな、これ。 性能が気になる場合は、更新・取得にさらなる工夫が必要ですね。

参考文献