dtcpのインストール

dtcpは、現在、FreeBSD, NetBSDおよびOpenBSDで動作することが報告されています。

□FreeBSD ports または NetBSD pkgsrc からのインストール

FreeBSDではports/net/dtcpに、NetBSDではpkgsrc/net/dtcpにありますので、 portsあるいはpkgsrcからインストールするのが良いでしょう。

dtcpはqpopperに含まれるqpopauthコマンドを認証データベースの保守に使用するため、 mail/qpopperに依存があります。 qpopauthは、若干機能に制限がありますが、 dtcpで提供されるdtcpauthコマンドでも代用できます。 また、dtcpsを使う予定がないのなら、 qpopperはインストールしたくないかもしれません。 FreeBSD portsではqpopperに依存しないようにできます。 FreeBSDでqpopperをインストールしたくない場合は、

DTCP_CLIENT_ONLY=YES
を指定してインストールすると良いでしょう。

□自分でmakeする場合のインストール

portsやpkgsrcを使わずにインストールする場合でも、 基本的に、make && make installで大丈夫だと思います。 しかし、 OSによってはdtcps.rb, dtcpc.rbおよびdtcpauth.rbの一部を書き換える必要があります。 デフォルトでは、 dtcps.rbではFreeBSD 4.6-RELEASE以降およびNetBSD 1.6以降用になっていますので、 それ以外のOSの場合は、 以下の定数をお使いのOSに合わせて修正する必要があるかもしれません。 dtcpc.rbおよびdtcps.rbで変更すべき定数は以下の通りです。
TUNIF = "gif0"
トンネルに使用するインタフェース
TUNIF_CLONING = true
仮想インタフェースの作成/削除 (ifconfig create/destroy) が使用できるかどうか
TUNNEL_CREATE = 'ifconfig %s tunnel %s %s'
トンネル作成時に使用するコマンド
TUNNEL_DELETE = 'ifconfig %s deletetunnel'
トンネル削除時に使用するコマンド
ROUTE_METHOD = ROUTE_IFP
経路設定時に使用するコマンドの種別
ROUTE_CHANGE
route add -inet6 #{dest} ::1
route change -inet6 #{dest} ::1 -ifp #{tunif}
ROUTE_INTERFACE
route add -inet6 #{dest} -interface #{tunif}
ROUTE_IFP
route add -inet6 #{dest} ::1 -ifp #{tunif}
その他
自分のトンネル・インタフェースのlink-localアドレスに向ける

次に、qpopauthを使用する場合、 APOPパスワードが格納されるデータベースについてdtcps.rbに設定します。 デフォルトでは、 FreeBSDの場合portsからインストールされるqpopperの設定に、 NetBSDの場合pkgsrcからインストールされるqpopperの設定に、 それぞれ、合わせてあります。 異なる場合は、適宜変更してください。

POPAUTHDB = '/usr/local/etc/qpopper/pop.auth'
データベースのパス
POPAUTHUID = 'pop'
データベースの所有者
dtcpauth.rbにも同様の定数がありますので、dtcpauthを使用する場合は、 合わせて変更してください。

また、起動スクリプトはインストールされません。 NetBSD用の起動スクリプトを用意しておきましたので、 dtcpcdtcps という名称で/etc/rc.dにコピーしてください。 実行属性を付けるのをお忘れなく。 それ以外のOSでdtcpsあるいはdtcpcをデーモンモードで動作させたい場合は、 dtcps.shとdtcpc.shをOSに合わせて別途コピーする必要があります。

なお、dtcpはRubyで書かれていますので、 Rubyがインストールされている必要があります。 portsあるいはpkgsrcからインストールした場合、 Rubyが事前にインストールされていなくても、 依存に従って勝手にインストールされますので、気にする必要はありません。 しかし、portsあるいはpkgsrcを使用しないで自分でインストールする場合は、 注意してください。 RubyをNetBSDのpackageでインストールする場合は、最低限、 lang/ruby-baseとsecurity/ruby-digestが必要です。


All Rights Reserved, Copyright (C) 2004 Hajimu UMEMOTO
Last Modified Jun 8, 2004
ume@mahoroba.org