[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Translated]mirror/ftpmirror
野上@東大(院)・情報棟相談員 です。
お久しぶりです。いろいろあって2年間以上debian-wwwから遠ざかってました。修
士1年で、これからどんどん忙しくなるのですが、少しずつ復帰出来ればと思ってい
ます。
今回、ftp.ecc.u-tokyo.ac.jpでdebianのmirrorをするとき担当者になってしまっ
たのですが、そのとき1ページ訳したので投稿します。
# ところで、翻訳結果は、cvs.debian.or.jpにcommitする形で提出しても良いもので
# すか? (卒業研究の時にcvsの使い方をようやく覚えたので…)
--
野上大介
東京大学大学院総合文化研究科広域科学専攻広域システム系・丹羽研究室
dnogami@xxxxxxxxxxxxxxxxxxxx(Univ.)
me@xxxxxxxx(PC/Messenger)
#use wml::debian::template title="Debian アーカイブのミラーを構築する"
#use wml::debian::toc
#use wml::debian::translation-check translation="1.37"
#include "$(ENGLISHDIR)/releases/woody/release.data"
<toc-display/>
<p>ミラーが構築出来たとき、<a href="list">ミラーのリスト</a>に追加して
もらいたいなら、<a href="submit">Debian に登録</a>する必要があります。
提出は<A href="submit">簡単なウェブのフォーム</a>を使って行うことが出来ます。
<p>問題や問い合わせは<email mirrors@debian.org>へ送ってください。</p>
<toc-add-entry name="what">ミラーするためにすべきこと</toc-add-entry>
<p><a href="./">ミラーページ</a>に、ミラーに使えるアーカイブが掲載されて
います。
<br>
ユーザは、 Debian をネットワーク経由でインストールするときや、 CD を作成する
とき( jigdo を使って)、インストール済みのシステムを更新するときに debian/
アーカイブを探します。
いくつかの米国でミラーすることが出来ない足手まどいのパッケージに興味のある
ユーザは、 debian-non-US/ を探します。
<br>
debian/ アーカイブは非常に巨大ですが、 debian-non-US/ アーカイブは
比較的小さいです。もっと正確な情報を知りたいときは
<a href="size">ミラーサイズ</a>をご覧ください。</p>
<p>注意: debian-non-US/ アーカイブは debian/ アーカイブの上位集合では
<strong>ありません</strong>。 むしろ、任意の追加物です。</p>
<p>debian-cd/ アーカイブは全てのミラーサーバーで一致するものではありません。
あるのサイトでは CD のイメージを構築するための jigdo のテンプレート
( debian/ アーカイブのファイルと組み合わせて使います)を持ち、
あるサイトではすでに構築された CD イメージを持ち、
あるサイトではそれら両方を持っています。
<br>
このことについて詳しい情報を知りたい場合には、
<a href="$(HOME)/CD/mirroring/">CD イメージのミラーサイトになるには</a>
をご覧ください。</p>
<p>debian-archive/ アーカイブは本当の<em>アーカイブ</em>であり、
古かったり、陳腐化したバージョンの Debian を持っています。
これはごく一部の少数のユーザにしか興味を持たれないでしょう。</p>
<p>The debian-security/ アーカイブは Debian セキュリティチームによる、
セキュリティに関する更新を持っています。
これはすべての人にとって興味深いアーカイブに聞こえますが、セキュリティ更新は
散発的なものであるため、それをミラーしようとすると、とても頻繁に更新する
必要がある(あるいは<a href="push_mirroring"> push ミラー</a>を使う)ことに
なるため、我々はミラーをおすすめしません。
その代わり、 Debian は security.debian.org の高い可用性を維持するため
あらゆる努力を惜しみません。</p>
<toc-add-entry name="wherefrom">どこからミラーするか</toc-add-entry>
<p>多くの人たちは <code>ftp.debian.org</code> が Debian のパッケージの
標準的な場所であり、ここからミラーするのがいちばん良いと考えるでしょう。
しかし、これは<strong>正しくありません</strong>。<code>ftp.debian.org</code>
は、内部の Debian サーバーから更新されるいくつかのサーバーのうちの単なる
1つでしかないのです。</p>
<p><a href="list-full">全てのミラーのリスト</a>にあるサーバーのうち、
'<kbd>Type: Push-Primary</kbd>' タグを持っているサーバーはいずれも
ミラー元として適しています。</p>
<p><em>Push-Primary</em>ミラーサーバーの間ではミラーに関して考慮されている
ため、違いは全くありません。逆に、多くの人々が ftp.debian.org を使ったなら
(そして望ましいことではないのですが、多くの人々はそうしています)、
これは寄付された帯域を必要もないのに無駄に消費していることになります。</p>
<toc-add-entry name="how">ミラーの方法</toc-add-entry>
<p>推奨されるミラー方法は
<a href="http://packages.debian.org/stable/net/rsync.html">rsync</a>です。</p>
<p>注釈: 小さなサイトでミラーするときには <kbd>wget</kbd> がうまく働きますが、
これは rsync ほど設定可能ではないため、この仕事には向きません。</p>
<h3>匿名 rsync</h3>
<p>アーカイブのミラーのため、この<a href="anonftpsync">スクリプト</a>を
使うことが出来ます。スクリプトの中の指示に従ってミラーを設定してください。</p>
<p>違う方法を好む人のためのアドバイスをいくつか挙げます:</p>
<ul>
<li>rsync には最低限これらのオプションをつけてください: <kbd>--recursive --times
--links --hard-links --delete</kbd>.
<li>もしディスクに余分なスペースがあれば、<kbd>--delete-after</kbd>
オプションを使うことで、更新時に起こるいくつかの一時的な問題を
避けることが出来ます。
<li>もし、全てをミラーするのに十分なディスクスペースがない場合は、
<kbd>--exclude</kbd> オプションを使ってアーカイブの一部をミラーから
除外することが出来ます。一般にアーカイブにはあなたの望まない
いくつかのアーキテクチャが含まれています。ここでは、<em>全ての</em>
アーキテクチャを除外する例を挙げます。
<br>
<:
print "<code>--exclude binary-$_/ --exclude *_$_.deb</code><br>\n"
foreach (sort keys %arches);
:>
<a href="#partial">一部分のミラーリングの章</a>もチェックしてください。
<li>rsync がミラーを終了したとき、あなたのサーバの名前を取ったファイル名の
タイムスタンプファイルを <code>project/trace/</code> サブディレクトリに
追加してください。これは、
<kbd>date -u > .../debian/project/trace/<var>your.server</var></kbd>
を日常の rsync が終わったときに実行すると言うことです。また、
debian-non-US をミラーしているなら、
<kbd>date -u > .../debian-non-US/project/trace/<var>your.server</var></kbd>
を、 non-US の毎日の rsync のあとに実行してください。
</ul>
<h3>push mirror から認証付きの rsync で同期する</h3>
<p>Push mirroring とは、 rsync を使ったミラーの形式で、アーカイブの変更が
ミラーに到達する時間を最小化するために開発されたものです。
ミラー元のサーバは、ミラー先のクライアントに更新を通知するために ssh を
使います。</p>
<p>Push mirroring は、複数のサーバー(たとえば、 <tt>ftp.us.debian.org</tt>
のようにDNS ラウンドロビンを用いたエイリアスになっているサーバー)が同期を
取り続けるのに必要です。我々はこれを、第 1 段目と第 2 段目のミラーに
用いています。この方法は、"一般の"ミラーに対しては、設定に多くの努力が
必要となるため、良く調整された cron job に比べて実質的に効果が上がりません。</p>
<p>この手法は ssh が単一のコマンドだけを実行出来るように設定されているので
きわめて安全です。また、ミラーは`取り寄せ式'のままであり、偽物の push ミラー
を経由したアーカイブによって汚染される可能性も<strong>ありません</strong>。
いくつかのミラーの管理者達は、この方法が彼らのサーバに侵入口を開くものと
言う恐れから、この方法をミラーに使うのをいやがりました。この恐れは全く
<strong>正しくありません</strong>。</p>
<p>この方法がどのように働くか、なぜこの方法が安全か、そして push mirror
を設定する方法について、これ以上の詳しい説明を知りたい場合は、
<a href="push_mirroring">完全な説明</a>をご覧ください。</p>
<h3>匿名 FTP</h3>
<p>匿名 FTP は長い間標準的な手法でしたが、 rsync の有利さのために
軽視されています。</p>
<p>もし rsync を使えないいくつかの切実な理由がある場合は、
"<a href="http://packages.debian.org/mirror">mirror</a>" プログラムを
使うと便利でしょう。なお、 Debian ミラーの <kbd>project/trace/</kdb>
サブディレクトリにある正式なミラートレースファイルが維持する手間を
省けるのは ls-lR ファイルに頼っているからと言うことを忘れないでください。
</p>
<toc-add-entry name="partial">一部分のミラー</toc-add-entry>
<p>すでに<a href="size">大きなサイズになっている Debian のアーカイブ</a>を
考えると、必要な部分だけミラーしたいと思う人がいることも考えられます。
もし何かを除外したいのなら、アーキテクチャを除外してください。</p>
<p><a href="anonftpsync">anonftpsync</a> を使う場合、 EXCLUDE 変数を編集する
ことで実現出来ます。また、特別に書かれた
<a href="http://packages.debian.org/unstable/net/debmirror.html">debmirror</a>
(Joey Hess と Joerg Wendland によって書かれました)の様なスクリプトを
使うことも出来ます。 もし、これらに追加すべき何かがあるのなら、それらの
作者に連絡を取ってください(連絡先はスクリプト自身の中に記載されています)。</p>
<p>我々は <tt>project/</tt> ディレクトリや <tt>doc/</tt> ディレクトリ、
その他のサブディレクトリを除外しないように勧めます。たいてい、これらの
ディレクトリはサイズが小さいけれども、ユーザーにとって便利であるからです。</p>
<toc-add-entry name="when">ミラーすべき時間</toc-add-entry>
<p>メインアーカイブは 24 時間おきに更新されています。</p>
<p>ミラーは一般に 00:00 UTC 頃に更新を始めますが、これは固定された
時間ではありません。この何時間かあとに毎日ミラーすることをおすすめします。
事実、 leaf からミラーしている場合には、 <kbd>project/trace/</kbd>
サブディレクトリにあるタイムスタンプファイルをチェックする必要があります。
タイムスタンプファイルはサイトの名前がつけられ、その中には最後のミラー
更新完了時の時刻が含まれているはずです。その時刻から2,3時間後を(安全の
ために)足して、それらをミラーしてください。</p>
<p>ミラーを毎日動かす一番簡単な方法は cron を使う方法です。詳しくは
<kbd>man crontab</kbd> をご覧ください。</p>
<p>もしあなたのサイトが push メカニズムで駆動しているなら、あなたは
このことに心配する必要は一切ないことを覚えておいてください。</p>
<toc-add-entry name="settings">推奨される追加の設定</toc-add-entry>
<p>もし、 Debian のミラーを HTTP 経由でも利用可能にするのなら、
以下の設定をあなたの Apache の設定の
<code><Directory <var>/path/to/your/debian/mirror</var>></code>
ブロックにに追加してください(図々しいですが、もちろん、あなたが
Apache を使っているとして)。 <var>/path/to/your/debian/mirror</var>
とある場所はあなたがミラーをおいているディレクトリの実際の名前にして
ください:</p>
<pre>
Options +Indexes +SymlinksIfOwnerMatch
IndexOptions NameWidth=* +SuppressDescription
DirectoryIndex .
</pre>
<p>これはディレクトリの一覧が使える様にし、シンボリックリンクを追いかけ
られるようにします。ディレクトリの一覧ではファイル名が不完全になることは
なく、説明(大抵は存在しない)も表示されません。</p>