pdiff を無効にする

これは、Debian/Ubuntu JP Advent Calendar 2013の 2 日目を意図して書かれた記事です。昨日は、岩松さんによるmultiarch アーキテクチャ用に apt-line を設定するでした。

debian のデフォルトでは etch 以降から、apt のパッケージリスト取得を差分単位で行うようになっています。

ところが、通信量の観点では「一度取得したデータを二度とらなくていいよねー」と合理的に思えるのですが、
差分が増えると、細かいファイルを大量にサーバにリクエストするため、ダウンロードの完了まで、余計に時間がかかる傾向があります。

特に、利用状況が下記にあてはまるなら、都度かなり待たされることになっているのではないでしょうか。

  • パッケージリストが頻繁に更新される sid/testing を使っている
  • 毎日 apt-get update するわけではない

「あーそれ自分とこだわー」と思い当たるところがあれば、試しに次回のタイミングで、こんなオプションをつけて実行してみましょう。

apt-get update -o Acquire::Pdiffs=false

さて、違いは体感できましたか?

環境によっては、デフォルトのままの方が早かったり、あまり違いが感じられないケースもあるでしょうから、そういう場合は変にいじらずデフォルトのままにしておくといいでしょう。

実際に差分形式だと遅いわー、という場合は、毎回オプションをつけるのも面倒だと思いますので、設定ファイルに追加して、忘れてしまいしょう。/etc/apt/apt.conf.d/01pdiffs などのファイルを作成して

Acquire::PDiffs "false";

と書いておけば、毎回パッケージリストを丸ごと取得しなおすようになります。

Apt のパッケージリスト取得形式の変更方法でした。明日は誰かな?