tigのコンパイル失敗

会社のマシンふるいもんだからDebian(lenny)になってる。このあたりはまあ社内でも充分認識しているのだけど、やはり規模の大きさという事もあってなかなかバージョンアップできない。

どういう時に困るかというと、アプリケーションが古くて最新機能が使えない、といったことが多々起こる。それ以前にプログラミング言語の関数が古すぎ、とかいった話ももちろんあるのだけど。

で、だいたいはどうするかというとGNU系のツールは自分でコンパイルして使っていたりする。今日はtigなんかをコンパイルしてみたのだけど、早速失敗した。

参考記事は以下の2つ

http://d.hatena.ne.jp/sasaplus1/20130520/1369025283
http://dqn.sakusakutto.jp/2013/06/tig_undefined_reference_to_mkstemps.html

しかしながら2番めの記事にあるようなエラーがでて、かつ解決しなかった。

おそらくlibncursesw.hがDebian Lennyに含まれていない事が問題だと思うのだが

やった実行コマンドは以下の通り。

make configure
./configure --prefix=${HOME}/gnu --enable-widec --enable-iconv --with-shared --with-ncursesw=/usr/include/ncurses
make
gcc -g -O2 -I/usr/include/ncursesw -DHAVE_CONFIG_H '-DTIG_VERSION="1.2.1-58-g00979ec-dirty"' '-DSYSCONFDIR="/home/myname/gnu/etc"'  -L/usr/lib/ tig.o util.o io.o graph.o refs.o -lncursesw -o tig
tig.o: In function `open_blob_editor':
/home/myname/work/tig/tig.c:5637: undefined reference to `mkstemps'
collect2: ld returned 1 exit status
make: *** [tig] エラー 1
make gcc -g -O2 -MMD -MP -MF .deps/tig.d -DHAVE_CONFIG_H '-DTIG_VERSION="1.2.1-58-g00979ec-dirty"' '-DSYSCONFDIR="/home/myname/gnu/etc"' -c -o tig.o tig.c gcc -g -O2 -MMD -MP -MF .deps/util.d -DHAVE_CONFIG_H '-DTIG_VERSION="1.2.1-58-g00979ec-dirty"' '-DSYSCONFDIR="/home/myname/gnu/etc"' -c -o util.o util.c gcc -g -O2 -MMD -MP -MF .deps/io.d -DHAVE_CONFIG_H '-DTIG_VERSION="1.2.1-58-g00979ec-dirty"' '-DSYSCONFDIR="/home/myname/gnu/etc"' -c -o io.o io.c gcc -g -O2 -MMD -MP -MF .deps/graph.d -DHAVE_CONFIG_H '-DTIG_VERSION="1.2.1-58-g00979ec-dirty"' '-DSYSCONFDIR="/home/myname/gnu/etc"' -c -o graph.o graph.c gcc -g -O2 -MMD -MP -MF .deps/refs.d -DHAVE_CONFIG_H '-DTIG_VERSION="1.2.1-58-g00979ec-dirty"' '-DSYSCONFDIR="/home/myname/gnu/etc"' -c -o refs.o refs.c gcc -g -O2 -DHAVE_CONFIG_H '-DTIG_VERSION="1.2.1-58-g00979ec-dirty"' '-DSYSCONFDIR="/home/myname/gnu/etc"' tig.o util.o io.o graph.o refs.o -lncursesw -o tig tig.o: In function `open_blob_editor': /home/myname/work/tig/tig.c:5637: undefined reference to `mkstemps' collect2: ld returned 1 exit status make: *** [tig] エラー 1

どうしてもここでエラーがでてしまう。今日はここまで。

tmuxがmac上で動かない

ずっと前から気になってはいたのですけど、こないだようやく改善できたので一応メモ。
Linuxだと問題がないけど、Mac だとtmux を起動した瞬間 exit してしまっていた。

何かなと思ってどうしても気になったので調べていたら、どうやら.tmux.confに追記した以下の行が問題あったみたい

# set -g default-shell /usr/local/bin/zsh

いついれた設定だったか忘れたけど、これだけで解決