netatalk が上書きされた!

秋

先日 netatalk を OpenSSL 対応にして自分でビルドした。で、それをインストールして使っているたのだけど、何の気なしにパッケージのアップデート&アップグレードをしたら… netatalk がアップデートされちゃって元に戻ってしまった… する?って聞かれたんだけど、パンパンって return を連打していたので…。
でも、なんで? 同じバージョンなんじゃないの? 同じならアップグレードされないんじゃないの?

paraches@debian:/etc/apt$ sudo apt-get upgrade
パッケージリストを読みこんでいます... 完了0%
依存関係ツリーを作成しています... 完了%     
以下のパッケージはアップグレードされます:
  netatalk
アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
814kB 中 0B のアーカイブを取得する必要があります。
展開後に 389kB のディスク容量が解放されます。
続行しますか? [Y/n] 
(データベースを読み込んでいます... 現在 41659 個のファイルとディレクトリがインストールされています。)
netatalk 2.0.2-3 を(.../netatalk_2.0.2-3_powerpc.deb で)置換するための準備をしています...
Stopping AppleTalk Daemons: afpd papd timelord atalkd.
netatalk を展開し、置換しています...
netatalk (2.0.2-3) を設定しています ...
設定ファイル /etc/default/netatalk を新規にインストールしています ...
設定ファイル /etc/pam.d/netatalk を新規にインストールしています ...
Starting AppleTalk services (this will take a while):  atalkd papd afpd.

paraches@debian:/etc/apt$ 

泣いていても仕方がないのであれこれ調べてみた。pin を使ってアップグレードされないようにするとか、hold がなんたらとか…。でも、ちょっと気になったのはビルドの作業の時に debchange でパッケージに変更したという印を残さなかったこと。これをしていたら、オリジナルのパッケージと違うからアップグレードされなくなるんじゃないの?


というわけで、debchange をちゃんとしてビルドをやりなおしてみた。
今回は netatalk のソースをちゃんと apt-get source netatalk で落としてきた。で、早速 netatalkディレクトリに入って debchange を行う…

paraches@debian:~/myTest/netatalk/netatalk-2.0.2$ sudo debchange -i
sudo: debchange: command not found

あれ??? debchangeってまだ入ってなかったんだ。それじゃ落としてこよう。

paraches@debian:~/myTest/netatalk/netatalk-2.0.2$ sudo apt-get install debchangeパッケージリストを読みこんでいます... 完了0%
依存関係ツリーを作成しています... 完了%     
E: パッケージ debchange が見付かりません

ん? そのものの名前のパッケージじゃないの! どこに入ってるんだろう???
と、悩んであちこち探して結局 devscripts に入っているらしいと…

paraches@debian:~/myTest/netatalk/netatalk-2.0.2$ sudo apt-get install devscripts
パッケージリストを読みこんでいます... 完了0%
依存関係ツリーを作成しています... 完了%     
提案パッケージ:
  devscripts-el cvs-buildpackage debian-keyring dupload dput gnuplot
  patchutils wdiff
以下のパッケージが新たにインストールされます:
  devscripts
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
201kB のアーカイブを取得する必要があります。
展開後に追加で 717kB のディスク容量が消費されます。
取得:1 ftp://ring.hosei.ac.jp stable/main devscripts 2.8.14 [201kB]
201kB を 0s で取得しました (278kB/s)
未選択パッケージ devscripts を選択しています。
(データベースを読み込んでいます... 現在 105561 個のファイルとディレクトリがインストールされています。)
(.../devscripts_2.8.14_powerpc.deb から) devscripts を展開しています...
devscripts (2.8.14) を設定しています ...

さて、これで良いのかな?

paraches@debian:~/myTest/netatalk/netatalk-2.0.2$ debchange -i
debchange: Changelog unmodified; exiting.

ちゃんと起動した。changelog を vi で編集する画面になるのね。とりあえず何もしないで quit しちゃったけど、自動的にバージョンが振られたり自分のメールアドレスが入ったり、なんかそれらしくてカッコイイ。結局、OpenSSL support. という一文だけ入れて debchange は終了。


で、パッケージをビルドしてみると…なにやらバージョンが上がってる。

paraches@debian:~/myTest/netatalk$ ls
netatalk-2.0.2            netatalk_2.0.2-4.dsc
netatalk_2.0.2-3.diff.gz  netatalk_2.0.2-4_powerpc.changes
netatalk_2.0.2-3.dsc      netatalk_2.0.2-4_powerpc.deb
netatalk_2.0.2-4.diff.gz  netatalk_2.0.2.orig.tar.gz

元は 2.0.2-3 だったのに新しいのは 2.0.3-4 になってる。良いのか?バージョン上がっちゃって?
ま、とりあえずこれをインストールして動作を確認。ちゃんと動作する。


で、ここでまたアップデート&アップグレードをやってみる。これでまた元に戻っちゃったら悲しいな〜。

paraches@debian:~/myTest/netatalk$ sudo apt-get update
ヒット ftp://ring.hosei.ac.jp stable/main Packages
ヒット ftp://ring.hosei.ac.jp stable/main Release              
ヒット ftp://ring.hosei.ac.jp stable/main Sources              
ヒット ftp://ring.hosei.ac.jp stable/main Release              
ヒット http://security.debian.org stable/updates/main Packages 
ヒット http://security.debian.org stable/updates/main Release
パッケージリストを読みこんでいます... 完了%
paraches@debian:~/myTest/netatalk$ sudo apt-get upgrade
パッケージリストを読みこんでいます... 完了0%
依存関係ツリーを作成しています... 完了%     
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
paraches@debian:~/myTest/netatalk$ 

大丈夫だった!良かった良かった。めでたしめでたし!


と、思ったのだけど、良く良く考えてみると、自分のところで勝手に新しいバージョンを作って入れた状態なので、本家(オリジナル?)のバージョンが 2.0.2-4 に上がったらどうなるんだ? やっぱり上書きされちゃうんだろうか? されるんだろうな〜。そしたらまた OpenSSL 対応にしてビルドしてインストールか。面倒だな〜。でも、新しくなるってことは何か修正があるってことだから、新しいのでまたビルドはどっちにしろ必要ってことかな。ま、たいした手間じゃないし、良いか。