kkAyatakaのメモ帳。

誰かの役に立つかもしれない備忘録。

apt-cygの調整 その2

Cygwinのバージョンは以下。

  • 1.7.25 (32-bit)

Cygwinでgitをビルドしようとしたけど、なんかうまくいかんなぁ...と思ったら、m4のインストールで失敗してました。

$ apt-cyg install m4
...
... `m4-1.4.17-1.tar.xz' へ保存完了 [273968/273968]

Unpacking...

bunzip2: (stdin) is not a bzip2 file.
tar: これは tar アーカイブではないようです
tar: 前のエラーにより失敗ステータスで終了します
...
Package m4 installed

当初、原因が分からずsetup.exeからのインストールで解決したんですが、よくみると、xzファイルの取り扱いで失敗しています。

最後に「installed」とでたり、再度インストールしようとすると「already installed」になっていたりと、紛らわしいですが、インストールはされていません。

これも、apt-cygの対応不足みたいで、以下のページにいろいろとまとまっています。

それと、公式もgithubに移ったようですが対応はされて無いみたいです...

派生品が(いろいろと)出ているようなので、適宜拾ってくればよさそうです。

といいつつ、手直ししてみる

上記のWikiを見る限り、完全な状態にするのは手に余るのですが、解凍部分の修正だけでもできないかなぁと試したのが以下。

360行目(GitHub版とGoogle Code版は該当行数が異なる)からファイルの解凍が始まっているので、xzファイルの対応を追加します。

細かく理解せずに書いているので使用はお勧めしませんが、まあ、動いているようです。

echo "Unpacking..."
case "$file" in
  *\.xz)
    cat $file | xz -dv | tar > "/etc/setup/$pkg.lst" xvf - -C /
    ;;
  *)
    cat $file | bunzip2 | tar > "/etc/setup/$pkg.lst" xvf - -C /
    ;;
esac

書いといてなんですが、以後のメンテの問題もあるので、GitHubからメンテされてそうなForkを選んだほうがよいです。