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 対応にしてビルドしてインストールか。面倒だな〜。でも、新しくなるってことは何か修正があるってことだから、新しいのでまたビルドはどっちにしろ必要ってことかな。ま、たいした手間じゃないし、良いか。