TERM HOWTO

Patrick Reijnen

patrickr@bart.nl

藤井真吾 - 日本語訳

sfujii@super.win.or.jp

JCC04050@niftyserve.or.jp

v1.2, 15 July 1995

　この HOWTO は、シリアルラインを多重化しネットワーク接続を可能にする
Michael O'Reilly の優れたソフトウェア、TERM を使うことによる混乱をいく
らかでも緩和するためのものです。どの点からみても、TERM に付属する文書は
大変良いもので、この HOWTO はそれらに代わるものではありません。この文書
の目的は、TERM がどのように動いているのかという背景や、いくつかのさらな
る一般的なネットワークサービスを TERM のもとで動かす手順を提供すること
です。この文書は TERM を知るための全てをカバーしていないことを指摘して
おかねばなりません。これを読んだあと、TERM のマニュアルページで、ここに
含まれていない情報を読んで下さい。

    Note: この文書はかなり以前に書かれたものなので、いまどきの Linux 環
    境にはあてはまらない箇所があります。 (JF Project)
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Table of Contents
1. 法的条件
   
    1.1. 著作権について
    1.2. 宣言
   
2. イントロダクション
   
    2.1. この文書
    2.2. TERM とは何か？
   
3. TERM はどのように動くのか
   
    3.1. 用語の定義など
   
4. セットアップ
   
    4.1. 何が必要か
    4.2. 概念の説明
    4.3. TERM の構築
    4.4. client.a, libtermnet.a, libtermnet.sa, libtermnet.so
    4.5. 環境変数の設定
    4.6. TERM のテスト
    4.7. TERM とコミュニケーションプログラム
    4.8. 透過的なリンクを作る
    4.9. linecheck を実行する
    4.10. TERM を実行してみる
    4.11. TERM を終了する
    4.12. パーティションから TERM を削除する
    4.13. コネクションを最適化する
    4.14. トラブルシューティング
   
5. TERM クライアント
6. X と TERM
7. tredir
   
    7.1. tredir can bite!
    7.2. Stupid tredir tricks
   
8. tudpredir
9. 作業の自動化
10. ソフトを TERM とともに使えるようにする
   
    10.1. ソースの移植とコンパイル
    10.2. Termify
   
11. Term クライアント
   
    11.1. ftp サイトから入手可能な Term クライアント
    11.2. termnet パッケージ
    11.3. 望まれてはいるがまだサポートされていないもの
   
12. Term とセキュリティ
   
    12.1. trsh
    12.2. txconn と xauth
    12.3. sxpc, xhost と xauth
   
13. 覚えておくこと
14. TERM のバージョンと信頼性
15. Term スピード表
16. ネット上で見つかるヒントとトリック
17. その他のこと
18. 謝辞

1. 法的条件

1.1. 著作権について

　この文書は、あらゆる形式で無料で配布することができます。この文章の一
部だけを配布することもできますが、著作権表示が含まれていることと、完全
な HOWTO 文書ではないことを読者に分かるようにして下さい。また、完全な文
書がどこで手に入るかを示すべきでしょう。特に、商用の配布についても事前
の承諾なしに可能ですが、そのような利用に関しては私にお知らせ下さい。

　この HOWTO は、著作権表示と、「宣言」がそのまま残されている限りどのよ
うな言語にも翻訳して結構です。また、誰が翻訳したのかを明確にして下さい
。

This document may be distributed freely as a whole in any form and free
of charge. Parts of this document may be distributed, provided that
this copyright message is included and the reader is informed that this
is not the full HOWTO document. Furthermore, there is to be a pointer
as to where the full document can be obtained. Specifically, it may be
included in commercial distributions, without prior consent. However, I
would like to be informed of such usage.

This HOWTO may be translated into any language, whatsoever, provided
that you leave this copyright statement and the disclaimer intact, and
that a notice is appended stating who translated the document.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.2. 宣言

　私は、最大限に正しくそして新しい情報を入れましたが、この文書に含まれ
る情報がデータの喪失を招かないとは保証できません。この HOWTO に含まれる
情報に関しては「無保証」です。また、私はこの HOWTO に含まれる情報を利用
することによって生じたあらゆる損害について責任を持ちません。

While I have tried to include the most correct and up-to-date
information available, I cannot guarantee that usage of the information
in this document does not result in loss of data. I provide NO WARRANTY
about the information in this HOWTO and I cannot be made liable for any
consequences for any damage resulting from using information in this
HOWTO.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2. イントロダクション

2.1. この文書

　この HOWTO は、シリアルラインを多重化しネットワーク接続を可能にする
Michael O'Reilly の優れたソフトウェア、TERM を使うことによる混乱をいく
らかでも緩和するためのものです。どの点からみても、TERM に付属する文書は
大変良いもので、この HOWTO はそれらに代わるものではありません。この文書
の目的は、TERM がどのように動いているのかという背景や、いくつかのさらな
る一般的なネットワークサービスを TERM のもとで動かす手順を提供すること
です。この文書は TERM を知るための全てをカバーしていないことを指摘して
おかねばなりません。これを読んだあと、TERM のマニュアルページで、ここに
含まれていない情報を読んで下さい。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2.2. TERM とは何か？

　TERM は Michael O'Reilly (michael@iinet.com.au) によって書かれ、Bill
Riemers (bcr@physics.purdue.edu) によってメンテナンスされており、シリア
ルライン上で同時に複数のコネクションを張ることを可能にします。＝例えば
、モデムでデータをダウンロードしている時に、同じモデムコネクション上で
(また別の)リモートシステムを使って作業することが可能です。TERM はまた、
シリアル接続上で X クライアントを開くために使うこともできます。tredir
ユーティリティと tudpredir ユーティリティで TERM はほとんど全ての「古典
的」TCP/IP と UDP のネットワークサービスを提供することができます：メー
ル、ニュース、ftp 、telnet 、xarchie などなど。ある意味で、TERM は SLIP
や PPP のような他のシリアルプロトコルに大変よく似ています。TERM の利点
は、それが完全にユーザレベルでできることで、システム管理者やネットワー
ク管理者の手を借りる必要がないことです。

　SLIP や PPP と違って、あなたのマシンは独自の IP アドレスを持ちません
。入って来るトラフィックは全てリモートホストに向けられ、TERM によってそ
れらがあなたのローカルコンピュータにリダイレクトされてきます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

3. TERM はどのように動くのか

　TERM を試す前に、この章全てと、パッケージとともに提供される
INSTALLATION ファイルを最初に読むことを強くおすすめします。さらに、TERM
と (term)test についてのマニュアルページにも目を通して下さい。きっと簡
単に、素早く作業をすることができるでしょう。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

3.1. 用語の定義など

　あなたが何らかのターミナルサーバを通してシステムにダイアルすることを
仮定します。私はここでローカルとリモートという言葉をそれぞれ自宅と、ネ
ットワークにつながったシステムの意味で使います(何か別の意味で使わない限
りは :-)。

　TERM は、ネットワーク接続されていないけれどもシリアルラインを通してネ
ットワーク接続されたマシンにつながっているローカルマシンに、ネットワー
クサービスを提供します。ネットワークサービスを要求する、ftp や telnet
のようなプログラムをどのように起動するか見てみましょう。これらのプログ
ラムは、ネットワークサービスを要求するシステムコールを発行します。オペ
レーティングシステムは、これらのサービスをネットワークインターフェース
を通じて行います(例えば、イーサネットを通じてパケットを送ったり受けたり
する)。SLIP や PPP は、モデムラインをネットワークインターフェースにする
ことによってこれを行い、これはイーサネットによるものと原理的に変わりま
せん。つまり、これらのプロトコルが、他のマシン同様にモデムによってつな
がったマシンをネットワークの一部分にするということです。このことは、ネ
ットワークのノードとなることによるすべての管理の負担がかかるということ
です(さらに言うなら、モデムも管理の対象とせねばなりません)。

　SLIP や PPP のようなネットワークコネクションがないとき、一般的にはど
うしたらいいでしょう？ネットワークに繋がったマシンにダイアルして、メー
ルやニュースを読みましょうか。もしファイルが必要になったら、まず kermit
やその他のコミュニケーションプログラムを使って、最初にリモートマシンに
送ったりまたローカルマシンにダウンロードすることになります。これはちょ
っと面倒です。それは特に、モデムリンクを使う作業が同時にたった一つしか
できないことによっています。TERM のアイデアは基本的にはこのプロセスを自
動化し、多重化することです。TERM はローカルとリモートの両方で起動され、
モデムラインを通じて二つのプロセスが互いに通信します。ネットワークサー
ビスが必要になったら、ローカルの TERM デーモンに要求を出すと、それはネ
ットワークにつながったリモートのマシン上の TERM デーモンに転送されます
。結果はモデムラインを通じて返ってきます。

　具体的にするために、あなたが ftp でファイルを取得したいとしましょう。
まず、あなたは TERM と会話できる ftp のバージョンが必要になります。あな
たはこの termftp を普通の ftp のように、'termftp nethost.gov' のように
起動します。しかしこの特別なバージョンはそのネットワークリクエストをカ
ーネルの代わりにローカルの TERM デーモンに出します。ローカルの TERM デ
ーモンはモデムラインを通じてリモートの TERM にこのリクエストを転送し、
リモートの TERM は nethost.gov への ftp コネクションを張ります。そして
データをモデムリンクを通じて送り返すのです。TERM は同時に異なる多数の作
業を進行させるのに十分な性能を持っています。そのためあなたは同じモデム
リンクを使っていくつもの異なるネットワークセッションを張ることができる
のです。例えば、termftp で転送を行っている最中に termtelnet を使って離
れた別のホストにログインしている、といった具合です。

　これが抽象的に過ぎたとしても(よくわからなくても)気にしないでください
。このセクションを抜けるための重要な部分は、モデムの両端で二つの TERM
が走っているということなのです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4. セットアップ

4.1. 何が必要か

　TERM を構築して使い始める前に、カーネルに TCP/IP のサポートを組み込ん
であることを確認しましょう。さらに、ループバックインターフェースも使え
るようになっていることも確認してください。そうしたら、このセクションの
残りに進むことができます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.2. 概念の説明

　新しい TERM のバージョンでは新しい二つの概念が TERM に導入されました
。これら二つの概念については、次の二つのサブセクションで解説します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.2.1. 共有

　バージョン 1.16 から他のユーザと TERM コネクションを共有するという概
念が導入されました。これは、共有の機能を導入すると、あなたが使っている
ものと同じ TERM コネクションを他の人たちも使えるようになることを意味し
ます。すなわち、あなたが TERM コネクションを通じてリモートマシン上で作
業中(ローカルマシンから trsh で入っていたとしましょう)、ローカルマシン
にいるもう一人の人が、同じ TERM コネクションを使って同時に世界のどこか
の ftp サイトからファイルを彼のもとに ftp してくることができるのです。

　この機能を切っておく(つまり、TERM をプライベートモードで起動する)と、
あなたと、そしてあなただけ(われわれは root をカウントに入れません :-)
が TERM コネクションを利用できます。

　もちろん、あなたの使っているのと同じ TERM コネクションを他の人たちに
利用させたい側だけに共有 TERM をインストールしたいと思うでしょう。その
ため、もし他の人たちがあなたのローカルマシンにログインアカウントをもっ
ていて、それをリモートネットワークのどこかから使いたいというような場合
、あなたはリモート側の TERM で共有機能を導入することになります。このよ
うな方法をとると、これらすべての人たちがあなたのマシンに同じ TERM コネ
クションを互いに、そしてあなたと共有してログインすることができます(注意
：最初の例では、TERM コネクションのローカル側で共有機能を導入しておく必
要があったのです。)

　root としてインストールする際の注意：root として TERM をインストール
する際には、最初に 'term' というメンバーのいないグループを /etc/group
に以下のような行を追加して作っておく必要があります(コンパイルの前に)。

    term::16:root                                                      

　または、グループ ID 16 番がすでに使われてしまっていたら別の未使用のも
のを使ってください。

　コンパイルとインストールが終わったら TERM とそのクライアントを 'term'
に SGID してください:

    chgrp term <term_client>                                           
    chmod g+s <term_client>                                            

 　さらに、TERM 対応の他のプログラムも 'term' に SGID しておかねばなり
ません。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.2.2. フル TERM ネットワーク

　TERM バージョン 2.0.0 から、フル TERM ネットワークという記述が使われ
るようになりました。外界とのコネクションが TERM コネクションだけしかな
い場合、フル TERM ネットワークを使うことになり、あなたはフル TERM ネッ
トワークを入れて TERM を構築するべきでしょう。このような場合、共有ディ
レクトリに termnet というファイルが置かれます。これは TERM に外界とのコ
ネクションが TERM を通じてしか行われないことを TERM に知らせるためのも
のです。

　TERM コネクションに加えて何らかのネットワークコネクションがある場合、
TERM 対応プログラムは最初にこのネットワークコネクションを通じて仕事を完
了しようとします。これに失敗すると、TERM が起動され TERM コネクションを
通じて仕事を完了しようとします。このことをもっと明確にするために、いま
TERM 対応 telnet が使われた例を考えます。この telnet は TERM と共にでも
、そうでなくても動作します。

    telnet localhost                                                   

 は接続のために TERM を使いません。しかし、

    telnet zeus.cs.kun.nl                                              

 は他のタイプのネットワークコネクションがない限り TERM を使います。

　フル TERM ネットワークは嘘のホストネームを使うことを意味します。つま
りリモートホストのものが使われるわけです。さらには、bind(0) が常にリモ
ートホストで動作するようになります。本質的には、このことによって TERM
が走っていても TERM を通さない多くのプログラムは利用できないことになり
ます。残念ながら、 UDP プログラムやデーモンのほとんどは、この悪いトリッ
クのため TERM のもとでは動作しません。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.3. TERM の構築

　もしあなたがラッキーなら、これは make を起動するだけです。しかしおそ
らくほとんどの場合、それ以上のことをする必要があるでしょう。新しいバー
ジョンの新しい機能のために、TERM のバイナリを作る作業はちょっと複雑にな
っています。バイナリを得るために二つの方法があります。

　TERM を構築するためのこれらの方法をすべてカバーするためにこのセクショ
ンは 3 つのパートに分かれます。

 

 1. TERM の構築、バージョン 2.0.0 以上
   
 2. TERM の構築、バージョン 1.16 から 1.19 まで
   
 3. TERM の構築、バージョン 1.15 まで
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.3.1. TERM の構築、バージョン 2.0.0 以上

　最初に、上の「フル TERM ネットワーク」についてのセクションを読んだか
どうか確認してください。

　TERM バージョン 2.0.0 かそれ以上では、TERM のバイナリとクライアントを
作るために多くの方法があります。これらのすべては root であっても一般ユ
ーザであっても実行可能です。

 

 1. フル TERM ネットワークを使わずにプライベートモードで TERM を構築す
    る
   
 2. フル TERM ネットワークを使ってプライベートモードで TERM を構築する
   
 3. フル TERM ネットワークを使わないで共有モードで TERM を構築する
   
 4. フル TERM ネットワークを使って共有モードで TERM を構築する
   
　これらのバージョンの TERM では、configure スクリプトを用いる新しいコ
ンパイル方法が導入されました。configure は起動されると何のオペレーティ
ングシステムに TERM をインストールしようとしているのか、ソースディレク
トリは利用可能か、ランタイムオプションをつけるかどうかなどをチェックし
ます。そこで見つけたことをもとにして、configure は TERM のパッケージに
含まれる Makefile.in を使って Makefile を作ります。

　configure のオプションのうち重要な２つは --root と --user で、これは
TERM のインストールが root として行われるのか、一般ユーザとして行われる
のかを規定します。TERM のインストールには、あなたの望むように、他のオプ
ションも指定できます(例えば標準的でない path)。

 

 1. フル TERM ネットワークを使わずにプライベートモードで TERM を構築す
    る
   
    　この方法で TERM を構築するには、次のようなコマンドを実行する必要
    があります (root としてか、一般ユーザとしてかの両方)： 
   
        ./configure --root または --user                        
        make install installman                                 
   
     　これはバイナリを構築し、それらのバイナリとマニュアルページをイン
    ストールします。
   
 2. フル TERM ネットワークを使ってプライベートモードで TERM を構築する
   
    　この方法で TERM を構築するには、次のようなコマンドを実行する必要
    があります (root としてか、一般ユーザとしてかの両方)： 
   
        ./congfigure --root または -user                        
        make installnet installman                              
   
     　これはバイナリを構築し、それらのバイナリとマニュアルページをイン
    ストールします。
   
 3. フル TERM ネットワークを使わないで共有モードで TERM を構築する
   
    　この方法で TERM を構築するには、次のようなコマンドを実行する必要
    があります (root としてか、一般ユーザとしてかの両方)： 
   
        ./configure --root または --user                        
        make share installman                                   
   
     　これはバイナリを構築し、それらのバイナリとマニュアルページをイン
    ストールします。
   
 4. フル TERM ネットワークを使って共有モードで TERM を構築する
   
    　この方法で TERM を構築するには、次のようなコマンドを実行する必要
    があります (root としてか、一般ユーザとしてかの両方)： 
   
        ./configure --root または --user                        
        make share installnet installman                        
   
     　これはバイナリを構築し、それらのバイナリとマニュアルページをイン
    ストールします。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.3.2. TERM の構築、バージョン 1.16 から 1.19 まで

　これらのバージョンの TERM を構築するために、以下の方法の中から選ぶこ
とができます。

 1. 一般ユーザとして、プライベートモードで TERM を構築する
   
 2. 一般ユーザとして、共有モードで TERM を構築する
   
 3. root として、プライベートモードで TERM を構築する
   
 4. root として、共有モードで TERM を構築する
   
　いかに、TERM のコンパイルの時に共有機能を導入したり、切ったりする方法
について説明します。

 1. あなたは一般ユーザで(root アクセスがなく)、他のユーザと TERM コネク
    ションを［共有したくない］とします。
   
    　TERM コネクションを他のユーザと共有したくないユーザは、TERM を構
    築するために以下のようにします： 
   
        make DO=install OS-type                                 
        make installman                                         
   
     　TERM の後、そのクライアントとマニュアルページが構築されインスト
    ールされます。
   
    　さらに、あなたは '$HOME/.term' というディレクトリを作る必要があり
    ます。これは、TERM が 'termrc' ファイルを探すためのディレクトリです
    。
   
 2. あなたは一般ユーザで(root アクセスがなく）、TERM コネクションを他の
    ユーザと［共有したい］とします。
   
    　TERM コネクションを共有したいユーザは、このようにします： 
   
        make DO=installshare USERSHARE=$HOME/term OS-type       
        make installman                                         
   
     　TERM の後、そのクライアントとマニュアルページが構築されインスト
    ールされます。
   
    　さらに、パーミッション 'drwxrwxr-x' をもったディレクトリ '$HOME/
    term'(デフォルト)が必要です。最低でも、このディレクトリの中に TERM
    がそのコネクションに使うソケット('tmp/private/socket=')が見つかるで
    しょう。
   
 3. あなたは root で、他のユーザと TERM コネクションを［共有したくない
    ］とします。
   
    　TERM コネクションを共有可能にしたくない root は TERM を構築するた
    めに以下のようにします： 
   
        make DO=install OS-type                                 
        make installman                                         
   
     　TERM の後、そのクライアントとマニュアルページが構築されインスト
    ールされます。
   
    　さらに、パーミッション 'drwxr-xr-x' をもったディレクトリ '/usr/
    local/lib/term'(デフォルト)が必要です。最低でも、このディレクトリの
    中に TERM がそのコネクションに使うソケット('tmp/private/socket=')が
    見つかるでしょう。
   
 4. あなたは root で、TERM コネクションを［共有したい］とします。
   
    　最初に、上の「共有」のセクションを読んだことを確認してください。
   
    　TERM コネクションを共有したい root は以下のようにします： 
   
        make DO=installshare OS-type                            
        make installman                                         
   
     　TERM の後、そのクライアントとマニュアルページが構築されインスト
    ールされます。
   
    　さらに、パーミッション 'drwxrwxr-x' をもち TERM グループに所有さ
    れたディレクトリ '/usr/local/lib/term'(デフォルト)が必要です。最低
    でも、このディレクトリの中に TERM がそのコネクションに使うソケット
    ('tmp/private/socket=')が見つかるでしょう。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.3.3. TERM の構築、バージョン 1.15 まで

　これらのバージョンの TERM の構築にはこのコマンド以外に必要ありません
。 

    make DO=install OS-type                                            
    make installman                                                    

 　この後、TERM と、そのクライアントとマニュアルページがうまく構築され
てインストールされ、使えるようになっているでしょう。

　さらに、ディレクトリ '$HOME/term' を作ることが必要です。このディレク
トリは、 TERM が termrc ファイルを探すために使います。

　やらなくてはならないことは、Makefile 中のいくつかの PATH とコンパイラ
フラグを変更することだけです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.4. client.a, libtermnet.a, libtermnet.sa, libtermnet.so

　TERM とともに、TERM クライアントのための関数群のライブラリが提供され
ています。

　バージョン 1.16 までは、このライブラリは client.a と呼ばれていました
。TERM のコンパイル時にこのライブラリも構築され、TERM クライアントのコ
ンパイルの時に使われていました。また、別のディレクトリにはインストール
されませんでした。

　バージョン 1.16 からライブラリの名前が libtermnet.a に変わっています
。バージョン 1.19 まではこのライブラリは TERM ディレクトリに作られ、
TERM クライアントのコンパイルに利用されています。これは別のディレクトリ
にはインストールされません。

　バージョン 2.0.0 からは、libtermnet.a に加え libtermnet.so と
libtermnet.sa (シェアドライブラリと exported initialized library)が
TERM パッケージのコンパイルの際に作られるようになりました。パッケージの
すべての部分のインストールの際に、これら３つのライブラリファイルもディ
レクトリ '/usr/local/lib'(デフォルト)にインストールされます。その後、
libtermnet.so.2 から libtermnet.so.2.x.x にリンクが張られます。最後に、
ldconfig がファイル '/etc/ld.so.conf' に書かれたコマンドラインによって
特定されるもっとも新しいシェアドライブラリへの必要なリンクとキャッシュ
(ランタイムリンカ、ld.so が利用するために）を作り、これはもとからあるデ
ィレクトリ('/usr/lib' と '/lib')についても同じです。インストールが正し
く終了するとスタティックライブラリの代わりにダイナミックライブラリを使
うように構築された TERM クライアントがこれら３つのライブラリファイルを
使えるようになります。また、これらのライブラリはあなたの自分のソフトウ
ェアを TERM 対応にするために利用することもできます（以下参照）。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.5. 環境変数の設定

　TERM はユーザによって設定されたいくつかの環境変数を認識します。これら
のうち、私が解説する最初の３つは：

 

 ・ TERMDIR
   
 ・ TERMSHARE
   
 ・ TERMMODE
   
　これらの変数を設定することで TERM の実行方法をコントロールすることが
できます。

　バージョン 1.15 までの TERM では変数 TERMDIR だけが重要です(これらの
バージョンに共有モードはありません)。これらのバージョンでは、TERMDIR は
以下のようにセットするとよいでしょう。 

    setenv TERMDIR $HOME     (csh または tcsh)                         
    export TERMDIR=$HOME     (bash)                                    

 　バージョン 1.16 からは TERM はさらに変数 TERMSHARE と TERMMODE を認
識するようになっています。これらの変数によって、TERM にプライベートモー
ドで走るのか共有モードで走るのかを知らせることができます。ここではプラ
イベートモードと共有モードへの変数の設定法を解説しましょう。

　TERMMODE は以下の３つの値をとります。

 ・ 0 = プライベート
   
 ・ 1 = システム共有
   
 ・ 2 = ユーザ共有
   
 

 1. TERM をプライベートモードで実行するには、変数 TERMDIR と TERMMODE
    を以下のように設定します：
   
    　csh と tcsh では 
   
        setenv TERMDIR $HOME                                    
        setenv TERMMODE 0                                       
   
     　bash では 
   
        export TERMDIR=$HOME                                    
        export TERMMODE=0                                       
   
 2. TERM を共有モードで利用したい場合、変数の設定には二つの方法がありま
    す：
   
     
   
     a. TERM が SUID プログラムとしてインストールされた場合、 TERMMODE
        のみ設定する必要があります。 
       
            setenv TERMMODE 2    (csh または tcsh)              
            export TERMMODE=2    (bash)                         
       
     b. TERM が SGID プログラムとしてインストールされているときには、変
        数は以下のように設定する必要があります。
       
        　csh か tcsh では
       
            setenv TERMMODE 1                                   
            setenv TERMDIR /usr/local/lib/term                  
            setenv TERMSHARE $TERMDIR                           
       
         　bash では
       
            export TERMMODE=1                                   
            export TERMDIR=/usr/local/lib/term                  
            export TERMSHARE=$TERMDIR                           
       
        　このように変数を設定することで、古いクライアント(古いバージョ
        ンの client.a をリンクしたクライアント)の実行が可能になります。
       
        　バージョン 2.0.0 から TERM はさらに変数 TERMSERVER を認識する
        ようになりました。この変数は複数のモデムを持っていて、同時に２
        以上のコネクションを張るときに設定する必要があります。どのコネ
        クションを使うのか特定するために、TERM をサーバネーム付きで起動
        しなくてはなりません： 
       
            nohup term -v /dev/modem1 Connection1 &             
            nohup term -v /dev/modem2 Connection2 &             
       
         　ユーザは使いたいコネクションの名前を変数 TERMSERVER に設定す
        ることになります。
       
            setenv TERMSERVER Connection1    (csh または tcsh)  
            export TERMSERVER Connection2    (bash)             
       
     
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.6. TERM のテスト

　TERM のテストデーモンを構築するために make test (新しいバージョンの
TERM では make termtest)を実行してください。(term)test はあなたのシステ
ム上で二つのコピーとして作動し、trsh と tupload が可能になっているはず
です(試してみてください 

    tupload ./term /usr/tmp                                            

 は '/usr/tmp’に TERM バイナリのコピーを作成します）。ローカルの TERM
の出力は 'local.log'に、リモートのものは 'remote.log'に出力されます。あ
なたは TERM を -d255 フラグをつけてこれらのファイルにデバッグ出力をさせ
ることができ、また、termrc ファイル中でセットすることもできます。

注意：test は ./test と実行し、あなたのシステムの test が実行されてしま
わないようにしてください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.7. TERM とコミュニケーションプログラム

　TERM を使えるようにする前に、kermit や seyon といったコミュニケーショ
ンプログラムを用いてモデム経由の接続を確立しなくてはなりません。コミュ
ニケーションプログラムのドキュメントに、リモートマシンとの接続の確立に
は何をすることが必要なのかが書かれています。

　リモートマシンとの接続が確立し、TERM を起動しようというときに、リモー
トマシンとの接続を切らないでコミュニケーションプログラムを終了、あるい
は中断する必要があります。コミュニケーションプログラムが linecheck や
TERM からキャラクタを奪ってしまわないように、このことが必要です。

　どのように接続を保持し、コミュニケーションプログラムが linecheck や
TERM からキャラクタを奪わないようにするのかについて、以下にいくつかのコ
ミュニケーションプログラムを挙げます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.7.1. Kermit

　kermit を使っているなら、TERM を始めるのは簡単です。ローカルの kermit
プロンプトで suspend と打ち込めばいいのです。Linux のプロンプトに戻った
でしょう。このプロンプトから TERM コネクションを張ることができます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.7.2. Seyon

　あなたが seyon を使っているなら、linecheck や TERM を起動するのに簡単
な方法は Transfer Menu ('$HOME/.seyon/protocols'によってコントロールさ
れています）に登録してしまうことです。

　ファイル '$HOME/.seyon/protocols' に加えてください： 

    "Line check" "$cd /tmp; linecheck"                                 
    "Term" "$term -c off -w 10 -t 150 -s 38400 -l $HOME/tlog"          

 　その後ローカルマシンで linecheck や TERM を実行したければ、Transfer
Menu を選んで、"Line Check" か "Term" アイテムを選択し、"Go" します。

　もちろん、シェルコマンドボタンを使って、ポップアップダイアログボック
スに 'linecheck' や 'term' と打ち込むこともできます。これはさらに自動的
に入力と出力をリダイレクトします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.8. 透過的なリンクを作る

　きっと、あなたはローカルとリモートのホストとの間のモデムコネクション
を確立できるでしょう。一般的には、何らかの種類のターミナルサーバにダイ
アルし、そこからリモートホストに接続することになるでしょう。あなたはさ
らにモデムと会話するために kermit や seyon などのある種のターミナルソフ
ト(著者が使っているため、この文書では例としてkermit を挙げます)を使って
いることでしょう。もしモデムやターミナルソフトで問題が起きたら、
Serial-HOWTO を読んでください；きっと助けになるでしょう。

　リンクを確立し終えたら、それを可能な限り透過的にしたいと思うでしょう
。ターミナルサーバのコマンドをチェックしてください(help か ? から始まる
でしょう)。可能なら８ビットオプションをつけてください。これはシステムへ
のログインの仕方を変えることになるかもしれません。例えば、もしサーバが
rlogin を使っていたら、それを使わなくてはならないし透過的にするためには
それに -8 オプションをつけなければなりません。特に xon/xoff フロー制御
には注意してください。それは好ましくありません。rts/cts (ハードウェア)
フロー制御ができるようにしてみてください。８ビット rts/cts コミュニケー
ションを形成するためにモデムのドキュメントを読む必要があるかもしれませ
ん。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.9. linecheck を実行する

警告：いくつかの文書では、linecheck のコマンドラインオプションが間違っ
た順序で説明されています。私はこれをチェックし、以下のオプションの順序
が正しいことを確認しました。

注意：TERM バージョン 2.3.0 からはコマンドラインにログファイルの名前を
必要としなくなりました。ログファイルは linecheck を起動したディレクトリ
上のファイル 'linecheck.log' にその出力を書き出します。

　Linecheck は TERM とともに供給されるプログラムです。リンクの透過性を
チェックして TERM が正しく動作するために必要な設定の情報を提供します。
linecheck は８ビットのキャラクタ 256 個をそれぞれ送り、それがきちんと送
信されたかどうかを検査します。TERM はリンクを通じて送信できないキャラク
タを設定されなくてはなりませんので、linecheck はそのキャラクタが何なの
かを特定するのです。linecheck は透過的モデムリンクを利用可能な形に確立
してから用います。linecheck を動作させるために、以下のこと行ってくださ
い：

 

 1. リモートシステム上で実行
   
        linecheck linecheck.log                                 
   
 2. ローカルシステムに戻って、コミュニケーションプログラムを中断します
    (上を参照)
   
 3. ローカルシステム上で実行
   
        linecheck linecheck.log > /dev/modem < /dev/modem       
   
　linecheck の実行が終わると、linecheck.log ファイルの終わりにいくつか
数字が出ていることがわかります。これらは、リンクの相手側において termrc
の中でエスケープされなくてはなりません。例えば、私のシステムで、ローカ
ルの 'linecheck.log' に何も書かれておらず、リモートの 'linecheck.log'に
29 と 157 をエスケープするように書かれていたとします。そこで、ローカル
の 'termrc' ではこれらのキャラクタをエスケープし、リモートの 'termrc'
では何もエスケープしません。もし片側でキャラクタをエスケープしたら、反
対側では無視しなくてはなりません。ですからこの例では、リモートシステム
で 29 と 157 を無視しなくてはならないことになります。

　linecheck がハングアップしたら、

    linecheck linecheck.log 17 19                                      

をリモートシステムで、そして

    linecheck linecheck.log 17 19 > /dev/modem < /dev/modem            

をローカルで実行してみてください。これは xon/xoff (フロー制御)をエスケ
ープします。これはソフトウェアフロー制御を行っているときにラインをハン
グアップさせてしまいます。もし、このことでハングアップの問題が解決した
なら、それぞれの 'termrc' で 17/19 をエスケープ／無視する事になります。
もしターミナルサーバがまた別のキャラクタを通さないようになっていたら、
上と同じようにして、それらのキャラクタをエスケープして linecheck を実行
してみてください。linecheck がハングアップしたらこれらのキャラクタを特
定することができます。もしこうなってしまったら、kill して、その後ログフ
ァイルを見てください。最後に送信されたキャラクタが悪いということなので
しょう。これらのキャラクタをエスケープしてもう一度試してみてください。

　最終的に、私のローカルの termrc はこのような行を含みます。

┌──────────────────────────────────┐
│    escape 29                                                       │
│    escape 157                                                      │
└──────────────────────────────────┘

　そして、リモートの termrc はこのような行を含みます。

┌──────────────────────────────────┐
│    ignore 29                                                       │
│    ignore 157                                                      │
└──────────────────────────────────┘

　これはリモートの 'linecheck.log' に 29 と 157 をエスケープするように
書かれていたからです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.10. TERM を実行してみる

　リモートシステムにログインして、(まだやっていなければ)可能な限り透過
的なリンクを張ってください。TERM をリモート側で起動します。私は以下の方
法をとっています： 

    exec term -r -l $HOME/tlog -s 38400 -c off -w 10 -t 150            

 　それぞれのオプションを一つ一つ書き下しましょう(私はこれらのオプショ
ンを termrc に簡単に加えることもできたのです。しかし私は、TERM が作動し
ているときにファイルを編集することを避けるために、このような方法をとっ
ています)。

　exec は現在のシェルを終了して、そこに与えられたプログラムを走らせます
。私はログインシェルをもう一度使う気がないので、exec しています；それは
単にメモリの無駄だからです。リンクのデバッグを行っているときや、確実に
リモートの TERM を kill したい場合には、exec を使うことを望まないかもし
れません。

　-r オプションは、片側だけでつける必要があります。TERM はこれをコネク
ションのリモート側だと判断します(TERM のリモート側はあなたのローカルマ
シンであることも可能であることに注意してください)。もし片側でこのオプシ
ョンを使わないと、 TERM クライアントは自発的にクラッシュします。

　-l $HOME/tlog ：これは、ホームディレクトリのファイル tlog にエラーを
記録します。デバッギングには非常に有効です。これをやらない手はありませ
ん。

　-s 38400 ：私は 14400 ボーの圧縮機能付きモデムを持っています。最適な
圧縮比で、可能な限り速くパイプを通したいのです。さらに遅いモデムでは、
幾分低い値を用いるべきでしょう。もしあなたがシリアルポートとして 16450
uart を持った遅いマシンを使っているのなら、高いボーレートはシリアルポー
トのチップへの過負荷によってデータを失うかもしれません。TERM はこれを修
復するでしょうが、ログファイルに多くのエラーメッセージ(または 0.99pl15
以上のバージョンの linux カーネルからのオーバーランウォーニング）がある
場合、この数値をさらに下げることになるでしょう。

　-c off ：これはデータ圧縮をオフにします。私は圧縮モデムを持っているの
で、二重の圧縮をしたくないのです。

　-w 10 -t 150 ：これも、速いモデムリンクを最適化するためのオプションで
す。私は window を 10 に、timeout を 150 にセットしています。これは
term_setup のマニュアルページの推奨値によるものです。

　コミュニケーションプログラムを中断して(上を参照)ローカルマシンに戻っ
てください。あなたは TERM が動作しているときにそれ(訳注：コミュニケーシ
ョンプログラム)も動作していることを望まないかもしれません。シリアルポー
トを通して TERM とぶつかってしまうかもしれないからです。もしコミュニケ
ーションプログラムを終了してもモデムがハングアップしないようにできるな
らば(DTR がトグルしたとき)、この時点でプログラムを終了してしまうことも
できます。

 　ではローカルで TERM を起動しましょう。私はこれを用いています： 

    term -c off -; $HOME/tlog -s 38400 -w 10 -t 150 < /dev/modem > /dev/modem &

 　TERM にモデムがどこにあるのかを教えてやる必要がありますので、標準入
力と標準出力を '/dev/modem' に向けています(< と > が行っているのがこれ
です)。さらにバックグラウンドで実行しています；このスクリーンで他にやり
たいことができるからです。

　これで TERM は動作するはずです :-)。trsh を実行して、何が起こるか確か
めてください。もしハングアップしたり、リンクが遅く感じるようであればそ
れぞれの側の 'tlog' を見てみてください。タイムアウトやエラーが発生して
いますか？もしそうならば、何かを間違えて設定してしまったことになります
。もう一度(これを読み終えた後で :-)試してみてください。なお、コネクショ
ンがおそろしく速く見える、ということではありません。特に圧縮を使ってい
る場合には−−ちょっとギクシャクした感じになるでしょう。本当のスピード
はファイル転送などの時にわかります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.11. TERM を終了する

　間違いなく、あなたが TERM を使ってたくさんの作業をした後、作業を終え
て TERM コネクションを落とそうと思うでしょう。このためには４つの方法が
あることを理解しなければなりません。

 1. 両方の側の TERM プログラムを kill する。これがコネクションを終了す
    るために勧められるもっとも単純な方法です。
   
 2. より良い方法は以下のコマンドをローカルで実行することです。
   
        echo '00000' > /dev/modem                               
   
    　この方法でうまく TERM コネクションを終了できるでしょう。これはす
    べてのバージョンの TERM で働きます。ゼロの列が少なくとも５個の０を
    含んでいるようにしてください。
   
 3. バージョン 2.0.0 以上の TERM の termrc ファイル中で、 terminate '
    <some string>' という記述を加えられるようになりました。これは TERM
    を終了させる文字列('00000'がデフォルト)を設定します。偶然終了してし
    まうことを避けるため、５文字以上でなければなりません。
   
 4. バージョン 1.14 からは tshutdown というプログラムがあります(実際は
    、バージョン 1.14 ではこれはパッチの形で入手できたのですが、それよ
    り新しいバージョンではパッケージに組み込まれました)。tshutdown の実
    行で TERM コネクションをうまく終了できます。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.12. パーティションから TERM を削除する

　そうですか、これが必要なんですね。TERM を離れたいあなたのために TERM
を削除するステップについて説明します。TERM を削除する課程で以下のステッ
プを踏まねばなりません：

 ・ ディレクトリを内容とともに削除する。TERM をインストールする方法によ
    って、あなたのマシンには以下のディレクトリの中から一つかそれ以上の
    ディレクトリが存在するはずです：
   
        $HOME/.term/termrc                                      
        $HOME/.term/termrc.<server>                             
        $HOME/term/termrc                                       
        $HOME/term/termrc.<server>                              
        /usr/local/lib/term/termrc                              
        /usr/local/lib/term/termrc.<server>                     
        /etc/termrc                                             
        /etc/termrc.<server>                                    
   
    　これらのディレクトリはその中身と共に削除することができます。この
    ためには '/bin/rm -rf'を使ってください。
   
 ・ 'term'グループ。インストールの方法のうちいくつかでは、'term'という
    グループを作る必要がありました。'/etc/group' に'term'エントリがない
    か確認してください。もしあったらそれを削除します。
   
 ・ TERM パッケージと TERM 対応実行可能ファイル。これが TERM の削除では
    もっとも面倒な部分でしょう。TERM パッケージについてくる実行可能ファ
    イルについては、ディレクトリ'/usr/local/bin'かディレクトリ '$HOME/
    bin'を見る必要があります。
   
    　あなたが自分で TERM 対応にした実行可能ファイルについては、私は助
    けになれません。何を削除するべきなのかを知るためにはあなたがどの実
    行ファイルを TERM 対応にしたのかを知る必要があります。デフォルトと
    それらの実行可能ファイルに付属するその他のファイルについて、構成を
    忘れないようにしてください。
   
 ・ ライブラリファイル。これらを削除するためには以下のようにするのが最
    も良いでしょう：
   
        cd /                                                    
        find . -name libtermnet* -exec /bin/rm {}               
   
    　このコマンドはライブラリファイルを見つけて削除します。
   
 ・ インクルードファイル。これに関しても、以下のコマンドを実行するのが
    最も簡単です：
   
        cd /                                                    
        find . -name termnet.h -exec /bin/rm {}                 
   
    　このコマンドはインクルードファイルを削除します。
   
 ・ マニュアルページ。TERM のマニュアルページをインストールしているなら
    、以下のディレクトリのどれかで見つけだせるはずです：
   
        /usr/local/man/man1                                     
        /usr/local/man/cat1                                     
        $HOME/man/man1                                          
        $HOME/man/cat1                                          
   
    　最低でも以下のマニュアルページについて確認しなくてはなりません：
    term, term_clients, term_setup, tdownload, linecheck, trdate,
    trdated, termrc, termtest, tmon, tredir, trsh, tshutdown, tupredir,
    tupload, txcommand 最後に tiptest
   
 ・ テンポラリユーザディレクトリ。これはディレクトリ '/usr/tmp/private'
    とその内容です。
   
　これらの作業によって、TERM に関連するあらゆるものを削除したと確信でき
ることになります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.13. コネクションを最適化する

　TERM を実行させることができたら、最適化を行おうと思うでしょう。リンク
のスピードを測るのによい方法は、ファイルをアップ／ダウンロードしながら
一つのウィンドウで tmon を実行することです。(大きな)テキストファイルと
圧縮されたファイルの両方で試してみてください；プレインテキストは圧縮さ
れたファイルの二倍くらい速いでしょう。いじれるパラメータはボーレート
(-s)、圧縮(-c)、ウィンドウ (-w)、タイムアウト(-t)、そしてリトレイン(-A)
です。

　リトレインパラメータには注意してください。TERM バージョン 1.19 ではリ
トレインパラメータなしのものに比べ 80% から 90% の性能低下がありました
。これが TERM バージョン 1.19 のバグなのか、この問題が TERM バージョン
1.19 だけのものなのかはっきりしていません。

　ボーレート：TERM が毎秒シリアルリンクを通して送ろうとするビット数の最
大の数です。TERM はこれ以上の速さでキャラクタを送ることを避けます。デフ
ォルトはコンピュータのシリアルポートのスピードを使うことですが、電話回
線の状態などでモデムの動作速度がシリアルポートより遅い場合、このスピー
ドは速すぎるかも知れません。ボーレートオプションは、モデムへの出力をバ
ッファリングするシステムで使用するものです。セットアップとチューニング
の時には大きすぎるものよりは、小さなボーレートを使う方がいいでしょう。
高速のリンク(> 38400)では、無制限にするのがおそらく有利でしょう。これは
値 'off' を使うことで実現できます。TERM はそうすると、フロー制御を完全
にカーネルに依存してしまいます。

　圧縮：圧縮モデムを持っていないのなら、これをオンにしたいでしょう。圧
縮モデムを持っているのなら、圧縮はオフにすべきです。でないと二重に圧縮
することになって、一般的には送信するデータを増やしてしまうことになりま
す。圧縮モデムは MNP-5 や V42.bis プロトコルを用いるものです。モデムの
説明書とモデムの接続メッセージを確認してください。

　ウィンドウ：これは、リモートの TERM から承認(または ack)が返ってくる
までにライン上を送ろうとするデータ、あるいはパケットのまとまりの数です
。速いモデムでは、これを大きくすることは利益になるでしょうが、遅いリン
クではこれがリモート側を圧迫するかもしれません。

　タイムアウト：TERM が ack を待つ時間です。ウィンドウを上げたなら、ま
たログファイルにタイムアウトが出たら、これを増やしてみてください。

　14400/V42.bis では、私は -c off -w 10 -t 150 を使っています。tupload
で圧縮ファイルではだいたい 1700 cps を、アスキーファイルでは 3500 cps
を得ています。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.14. トラブルシューティング

　このセクションでは、TERM やそのクライアントの実行で問題が生じた時に何
を確認すべきかについていくつかの考えが示されています。

 

 ・ TERM のディレクトリは整理されていますか？新しいバージョンの TERM で
    は '/usr/local/lib/term' 以下のディレクトリ構造が二度変更されていま
    す。もしこれに気づかなかったら、すべての種類のエラーメッセージを引
    き起こすことにもなります。いちばん良いのは '/usr/local/lib/term' 以
    下を('termrc' はセーブして)削除し、新しい TERM のバージョンをインス
    トールすることです。そうすれば乱雑なディレクトリツリーと格闘せずに
    済みます。
   
 ・ 古いソケットを削除しましたか？ TERM のバージョンを上げるときには
    TERM によって作られたすべてのソケット('socket='と呼ばれます)を削除
    してください。これをしないと奇妙な問題が発生する可能性があります。
    TERM がどのソケットを見張っているかを知るには、"netstat" プログラム
    が使えます。
   
 ・ TERM は sunOS 4.1.3 で正しくコンパイルできませんか？あなたは TERM
    を './configure --user' で設定していますね。コンパイル中に不明な
    '-k' フラグがあるというアセンブラエラーが出ますね。このエラーの理由
    はわかりません。このエラーに対する解決法は TERM をスタティックライ
    ブラリで設定することです。このために、'./configure --user --static'
    を実行する必要があります。その後普通通りにコンパイルしてください。
    今度は TERM は正しくコンパイルされるはずです。
   
 ・ termtest が 'Term: failed to connect to term socket '/root/.term/
    sockettest'' というエラーを発生していますか？ termtest は実行時に実
    行可能な 'term' が termtest と同じディレクトリにあることを前提にし
    ています。termtest を実行する前に 'make install' するのなら、TERM
    のバイナリは '/usr/local/bin'(または他の bin ディレクトリ)に移動さ
    れています。
   
    　これに取りかかるには、バイナリからソースディレクトリにリンクを張
    ります。
   
        ln -s /usr/local/bin/term /usr/src/term-<version_number>/term
   
 ・ 正しいバイナリを実行していますか？ TERM は相当何度もアップデートさ
    れていますし、多くのシステムは異なった、バージョンの流動的なプログ
    ラムを持っています。正しいバージョンを使っていることを確認してくだ
    さい。これは linecheck にも当てはまることに注意してください。bash
    の type -a や whereis コマンドでどのプログラムが走るのかを知ること
    ができます。TERM バージョン 1.11 以降では、スタート時にバージョンナ
    ンバーをプリントアウトします(しかしながらバージョン 1.14 は 1.12 だ
    と言います。ふう。)。
   
 ・ 正しい termrc を正しい場所に置いていますか？あなたの使っている TERM
    のバージョンとインストールの方法(root としてか、ユーザとしてか)によ
    って、ファイルは以下のディレクトリのうちの一つにあるはずです。
   
        $HOME/.term/termrc                                      
        $HOME/.term/termrc.<server>                             
        $HOME/term/termrc                                       
        $HOME/term/termrc.<server>                              
        /usr/local/lib/term/termrc                              
        /usr/local/lib/term/termrc.<server>                     
        /etc/termrc                                             
        /etc/termrc.<server>                                    
   
    　システムによってはあらかじめインストールされた 'termrc' がありま
    す；セットアップする前にそれらが消されていることを確認してください
    。root として作業しているのなら、'/.term' に注意してください。TERM
    は実行中にファイル(実際にはソケット)を作成します。そのために自身の
    ディレクトリを持っているのです('termrc' の頭にドットがついていない
    ことに注意)。
   
 ・ TERM は 'termrc' ファイルを見つけられていますか？どちらの側で TERM
    を起動するときにも、以下のようなメッセージを目にするはずです：
   
        Term version: 2.2.9                                     
        Reading file:  /usr/local/lib/term/termrc               
        Using shared mode                                       
   
    　もし二行目がなかったなら、TERM は 'termrc' ファイルを見つけられな
    かったということになります。インストールの途中で何かうまくいかなか
    ったのでしょう ('termrc' ファイルを使わずに全てのオプションをコマン
    ドラインに入れているのなら別です :-)。'termrc' を見つけられなかった
    側の TERM のサイトで、'termrc' ファイルの場所とパーミッションを確認
    してください。
   
 ・ 'termrc' ファイル中のエントリは正しい文法とスペリングになっています
    か？明らかになっている問題は、いくつかのキャラクタをエスケープした
    り無視したりしたい人たちが 'termrc' ファイルに次のように書くことで
    す：
   
        escape 1,4,30,255                                       
        ignore 1,4,30,255                                       
   
    　TERM は何も言わずこれを受け付けません。escape や ignore の記述の
    最初のキャラクタだけをエスケープ、あるいは無視します。他のキャラク
    タは、何も言わずにないものとして扱います。
   
    　いくつかのキャラクタをエスケープ、あるいは無視しなくてはならない
    場合、それぞれキーワード escape あるいは ignore で始まる別々の行に
    書かなくてはなりません。エスケープ、あるいは無視しなければならない
    キャラクタに幅があるときのみ、以下のような方法をとることができます
    ：
   
        escape 16-29      # escape characters 16, 17, 18, 19    
        escape 23         # 23                                  
        escape 255        # and 255                             
        ignore 16-19      # ignore characters 16, 17, 18, 19    
        ignore 23         # 23                                  
        ignore 255        # and 255                             
   
 ・ 'term' または '.term' ディレクトリが NFS でマウントされていませんか
    ？もし 'term' または '.term' ディレクトリが NFS でマウントされてい
    る場合、Makefile の CFLAGS の行に -DTERM_NFS_DIR フラグをセットする
    必要があります。残念ながら、筆者は sunOS 4.* が走っているマシンでこ
    のフラグによってコンパイルエラーを発生してしまいました。
   
 ・ 全てのファイルやディレクトリが正しいユーザとグループに所有されてい
    て、適切なパーミッションを設定されていますか？インストールの時に設
    定されるので問題にならないはずです。しかし、自分のプログラムを TERM
    に対応させるときには注意が必要です。また、TERM の動作するモード(プ
    ライベートモードか、共有モードか)を変えるときには、ファイルとディレ
    クトリの所有者とパーミッションも適合させる必要があります。
   
 ・ エラー gethostbyname: <hostname>: Non-authoritative `host not
    found', or server failed が発生した場合。
   
    　これを解決するには以下のことを確認してください：
   
     1. ファイル '/etc/hosts' は正しく設定されていますか？ <hostname>
        はあなたのホスト名ではありません(古い SLS のリリースと、いくつ
        かの古い、また新しい Slackware リリースでは、例として
        'darkstar' というホストネームがついています)。ファイルの中のこ
        の部分を修正してください。最低でも以下の行を含まねばなりません
        (書き方はその上に書いてあります)：
       
            # Local Hosts Format:                                           
            # IP_NUMBER              HOSTNAME        ALIASES                
            #                                                               
            # Here is the name of your host, first, followed by any aliases 
            127.0.0.1       localhost       linuxpc.domain  linuxpc         
       
        　もし外界とのコネクションが TERM によるものしかないのであれば
        、ファイル '/etc/hosts' にあるのは上の行だけということもあるで
        しょう。よく訪れる行き先の実際のアドレスを '/etc/hosts' に書か
        ないでください。TERM はこれらが '/etc/hosts' に入っていることに
        よって手間取ることになってしまいます。
       
     2. '/etc/rc*' と '/etc/resolv.conf' が誰でも読み出し可能に(chmod
        ugo+r)なっていますか。
       
     3. 最後に、マシンに TCP/IP ループバックインターフェースがインスト
        ールされていることを確認してください。コマンド 'ifconfig' を実
        行することによってループバックを確認できます。ループバックイン
        ターフェースがインストールされていれば最低でも画面にこのような
        結果を得るはずです：
       
        ┌───────────────────────────────────────┐
        │    lo        Link encap:Local Loopback                                       │
        │              inet addr:127.0.0.1  Bcast:127.255.255.255  Mask:255.255.255.0  │
        │              UP BROADCAST LOOPBACK RUNNING  MTU:2000  Metric:1               │
        │              RX packets:0 errors:0 dropped:0 overruns:0                      │
        │              TX packets:4984 errors:0 dropped:0 overruns:0                   │
        └───────────────────────────────────────┘
       
        　ブート時にどのプロトコルが使用中か確認することもできます。私
        のマシンでは以下のような行が表示されます：
       
        ┌──────────────────────────┐
        │    IP Protocols: ICMP, UDP, TCP                    │
        └──────────────────────────┘
       
        　TCP/IP やループバックインターフェースのインストールについては
        、NET-HOWTO を読んでください。
       
 ・ あらゆる種類の 'timed out' メッセージが TERM のログファイルに記録さ
    れたのですか？これは TERM コネクションが最適化されていないことを意
    味しています。少ない数のメッセージが時々現れる程度なら問題はありま
    せん。これらはまず間違いなくローカルとリモートを結ぶ物理的コネクシ
    ョンに影響を与える一時的な要因によるものです。
   
    　これらのメッセージを常にたくさん受け取る時は、コネクションは相当
    スピードを落とすでしょう。上のセクション「コネクションを最適化する
    」で挙げたパラメータをいじる必要があります。残念ながら、インストー
    ルのこの部分はトライアンドエラーの過程ということになります。コネク
    ションに影響を与える要因はたくさんあるので、いろいろなパラメータに
    ついてどのような数値にしたら良いかというような一般的な決まりはあり
    ません。これらの要因はコネクションによっても、また時間によっても異
    なります。
   
 ・ リダイレクトされたポートを使う通常の FTP が働きませんか？残念なこと
    に、FTP に必要なポート(20 と 21)のリダイレクションでは FTP が働かな
    いというのは明らかになっている問題です。唯一の解決法は TERM 対応の
    　ftp か ncftp を入手することです。これまた残念なことに、いくつかの
    TERM 対応 ftp のバージョンは動作しないように思います。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5. TERM クライアント

　TERM はデフォルトでいくつかのクライアントを提供しています。これには
trsh, tmon, tupload, tredir, txconn そして新しいバージョンでは trdate,
trdated が含まれます。さらに、バージョン 2.0.0 からは tudpredir が利用
可能になり、バージョン 2.1.0 からは tdownload が利用可能です。このセク
ションでは trsh, tmon, tupload, tdownload, trdate そして trdated につい
て扱います。その他についてはそれ自身のセクションがあります。TERM リンク
を確立するまでは TERM クライアントは動作しません。

　tmon はリンクの状態をモニターする簡単なユーティリティです。受信した、
また送信したキャラクタのタイムヒストグラムを表示します。単純に tmon で
起動できます。バージョン 1.11 などでは、間違った(??)情報を表示するバグ
があります。

　trsh は rsh に似ています。引数なしでは、リモートシステムのインタラク
ティブシェルを起動(つまりログイン)します。trsh は TERM を通してリモート
側にアクセスする基本的な方法の一つです。引数を渡すと、trsh はリモートシ
ステムのコマンドとして実行します。例えば

    trsh ls                                                            

はリモートシステムのホームディレクトリのファイルのリストを得られます。

　tupload はローカルからリモートへ、最初の引数で与えられたファイルを転
送します。デフォルトでは、ファイルは、相手側で TERM を起動したのと同じ
ディレクトリに格納されます。ファイルを他のディレクトリに入れるには、そ
の名前を tupload の二つ目の引数として与えます。例えば、もしファイル
'term114.tar.gz' をリモートシステムの '/usr/tmp' にコピーしたいとすると
、このようにタイプします

    tupload term114.tar.gz /usr/tmp                                    

　tupload を使うときは 'tupload a.*' のようにワイルドカードを使うことが
できます。シェルはワイルドカードを展開して、tupload は 'tupload a.1 a.2
......' のように呼ばれます。

　tdownload はリモートからローカルへ、最初の引数で与えられたファイルを
転送します。デフォルトでは、ファイルはローカル側で TERM を起動したのと
同じディレクトリに格納されます。ファイルを別のディレクトリに入れるには
、その名前を tdownload の二つ目の引数として与えます。例えば、ファイル
'term114.tar.gz'をローカルシステムの '/usr/tmp' にコピーしたいとすると
、このようにタイプします

    tdownload term114.tar.gz /usr/tmp                                  

　tdownload を使うときには 'tdownload a.*' のようにワイルドカードを使う
ことはできません。その理由は tdownload を使うときには、ローカルのシェル
にはリモートのディレクトリが見えていないからです。そのため、ローカルの
シェルはワイルドカードを展開できないのです。

　trdate は時刻を設定するユーティリティです。リモートマシンの時刻を読み
とってローカルの時計をリモートに合わせます。これは root で実行されなく
てはなりません。

　trdated は trdate のデーモンバージョンです。'rc.local' で起動されると
デーモンとして実行され、５分(デフォルト)毎に時刻を合わせます。TERM コネ
クションのない時でも、rc.local にセットされると起動します。TERM コネク
ションが張られると、時刻を合わせはじめます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

6. X と TERM

　TERM はネットワーク上のマシンで走っているクライアントから X のウィン
ドウを開くことを可能にします。これは txconn クライアントによってなされ
ます。txconn はネットワークにつながったリモート上で実行されます；単に
txconn と起動するだけです。txconn はバックグラウンドに回って標準出力に
数字を返します；この数字は、クライアントがローカルマシンの X サーバにア
クセスするときに使うディスプレイ番号です。例をあげればはっきりするでし
ょう。私は foo というリモートの TERM ホストに trsh を通してログインして
います。私は以下のことを実行します。

    foo$ txconn                                                        
    Xconn bound to screen 10                                           
    :10                                                                
    foo$                                                               

　では、自分のマシンの X サーバで表示したい X クライアントを走らせるホ
スト上で、こうします。

    setenv DISPLAY foo:10                                              

(bash では export DISPLAY=foo:10 を使うことになります)

    xhost + foo                                                        

あるいは

    xhost +                                                            

をローカルマシンで実行しなければならない場合もあります。今、クライアン
トを起動すると、クライアントはマシン foo のスクリーン 10 番につなごうと
します。が、 txconn がこのスクリーンを見張っていて、X プロトコルのパケ
ットを TERM を通じてローカルホストの X サーバに転送します。すなわち、ウ
ィンドウはローカルマシン上に開くわけです。

　このことは別の向きでも可能です−ローカルマシンでクライアントを実行し
、ウィンドウをネットワーク上のリモートマシンに開くのです；しかしこれを
説明するのは、後で tredir について議論するときまで先送りにします。

X プロトコルはそんなに効率が良くありません；いくらかバンド幅を無駄に使
います。このことはイーサネットでは普通問題になりませんが、モデム経由で
は命とりにもなります。X11R6 は LBX という X プロトコルのバンド幅の低い
バージョンを導入することを想定しています。しかしもし X11R5 を使うのなら
、X プロトコルを圧縮する sxpc というユーティリティを使うことができ、シ
リアルライン上でのレスポンスを改善します。sxpc は TERM とともにどのよう
に動かすかについて触れているので、おすすめできます。sxpc のパッケージに
は xauth の使い方についても説明があるので、なおのことおすすめです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7. tredir

tredir は TERM のもっとも強力なユーティリティのうちの一つで、もっとも重
要なネットワークサービスを TERM リンク上で動作させることを可能にします
。tredir をどうやって使うかを説明する前に、ネットワークサービスについて
の裏側を少し説明しておく必要があるでしょう。以前にもネットワークサービ
スについて触れましたが、それが何であるかにははっきりとは触れませんでし
た。サービスというのはつまり−ネットワークによって提供されるサービスの
ことです。サービスの例としてはマシン間でのログインを提供する telnet や
、マシン間でファイルを転送する File Transfer Protocol, ftp や電子メール
を送る時に使う the Simple Mail Transfer Protocol, smtp などがあります。
それぞれのネットワークサービスにはそれに付随したポート番号があります。
サービスに対するポート番号の割り当ては、インターネットにつながったマシ
ンの中のファイルによって与えられています。

サービスはどのようにして呼び出されるのでしょうか？それぞれのネットワー
クにつながったマシンには inetd というデーモンが走っていて、ネットワーク
ポートへの接続の試みを見張っています。これらのリクエストはネットワーク
からも、ローカルマシンからも来ることがあります。ネットワークサービスは
、適切な inetd ポートに接続することによって得られます。ネットワークリク
エストが出されると、inetd はリクエストが出されたポート番号によってどの
サービスを呼び出すかを知っています。 inetd がそのように設定されていれば
、接続要求に対して適切なサービスを提供します。inetd の設定は、ファイル
'/etc/inetd.conf' によって与えられ、それには inetd が提供するサービスの
リストが載っています。さらに情報を得るには、inetd と inetd.conf のマニ
ュアルページを見て下さい。

telnet (termtelnet でないことに注意)を使ってネットワークサービスと直接
通信することができます。例えば、マシン machine_name 上の sendmail (また
は smtp) デーモンと会話するには、telnet machine_name smtp とするか、
telnet machine_name 25 (25 は '/etc/services' で smtp に割り当て得られ
た番号です)とすることができます。リモートマシンのデーモンから丁寧な挨拶
を受けることでしょう。これはネットワークの問題や tredir によってリダイ
レクトされたポートの確認(以下参照)のために大変有効なトリックです。

tredir は inetd と大変似た働きをします。デーモンとしてバックグラウンド
で実行され、ネットワークポートを見張ってリクエストを待ちます。サービス
に対するリクエストが出ると、inetd がするように、サービスを提供する代わ
りにそのリクエストを TERM リンクを通じてリモート TERM に転送し、リモー
トの TERM はネットワークを通じてリクエストを出し、ローカルのクライアン
トに対してリンクを通じて結果を返します。tredir はネットワーク上のどのマ
シンにもリクエストを転送できますが、デフォルトでは TERM リンクの相手側
のマシンに送ります。tredir は TCP (Transmission Control Protocol)ネット
ワークサービスを TERM リンクを通じてリダイレクトします。

tredir の一般的なコマンドの形式は：

    tredir [this_computer:]port [that_computer:]port                   

例をあげるとはっきりするでしょう。ローカルポートをリモートマシンの
telnet ポートにリダイレクトしてみましょう。このためには、

    tredir 2023 23                                                     

とします。これで、ローカルマシンのポート 2023 につないだ人はリモートマ
シンのポート 23 (telnet) にリダイレクトされます。これがセッションの例で
す；ローカルマシンを mymachine.modem.home 、リモートマシンを netsun と
します。

    $ tredir 2023 23                                                   
    Redirecting 2023 to 23                                             
    $ telnet localhost 2023                                            
    Trying 127.0.0.1...                                                
    Connected to mymachine.modem.home                                  
    Escape character is '^]'.                                          
                                                                       
                                                                       
    SunOS UNIX (netsun)                                                
    login:                                                             

この例は実際に非常に便利です。代わりに netsun で tredir を実行したとし
ます。ネットワークにつながったマシンのリダイレクトされたポートにつなぐ
(telnet を使って)だけで mymachine に telnet できることになります−すな
わち、 telnet netsun 2023 とするのです。

tredir の利用の一般的な本質はネットワーク上のマシンに必要とされるサービ
スをリダイレクトすることです。次の例では、ネットワーク上のニュースサー
バから TERM リンクを通してローカルマシンでニュースを読めるようにします
。ニュースは nntp サービスで提供され、ポート番号は 119 です。全てのきち
んとしたニュースリーダは、設定ファイルか環境変数でどのポート番号を使う
かを設定できるようになっています。これをローカルのポート 2119 に決めま
しょう。では、ニュースサーバを news.domain.org とします。ポート 2119 を
news.domain.org のポート 119 にリダイレクトします；そしてニュースリーダ
には nntp サーバがローカルホストのポート 2119 にあると設定してやります
。利用するニュースリーダにもよるので、ここではニュースリーダの代わりに
telnet を使ってリンクをテストするだけにしましょう。

    $ tredir 2119 news.domain.org:119                                    
    Redirecting 2119 to news.domain.org:119                              
    $ telnet localhost 2119                                              
    Trying 127.0.0.1...                                                  
    Connected to mymachine.modem.home.                                   
    Escape character is '^]'.                                            
    200 news.domain.org InterNetNews NNTP server INN 1.4 07-Dec-41 ready 
    (posting ok).                                                        

ここまで来れば、あとやるべきことはニュースリーダを TERM を通して読める
ように設定することだけです(もしこのようにしてニュースを読むのであれば、
投稿する全ての記事の Reply-To: ヘッダににきちんと届く email アドレスを
セットする必要があります。そうでないと、あなたに連絡をとろうとする人達
はニュースリーダのつける間違った) From: ヘッダを見てメールを出してしま
うでしょう)。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.1. tredir can bite!

最後の例を読んだ賢明なる読者は、なぜポート 2119 をポート 119 にリダイレ
クトしたのかを不思議に思うでしょう−−ニュースリーダのデフォルトがポー
ト 119 ならば、なぜ tredir 119 news.domain.org:119 として、ニュースリー
ダの設定をしないで済まさないのだろうかと。答えは 1024 より小さいポート
は「予約ポート」で、スーパーユーザだけがこれを使うことができます。もし
セキュリティ上の危険を冒して tredir を SUID するか、root として tredir
を実行すれば、予約ポートにリダイレクトして、サービスの変更の混乱を避け
られるでしょう。

予約ポートを使うもう一つの問題はすでに inetd がそれらのポートを見張って
いて、また同時には一つのプログラムしかポートを見張ることはできません。
そのようなポートを使うためには、リダイレクトしたいポートを変更しなくて
はなりません。ぶつかっているサービスの行に # をつけてコメントにしてしま
うのが簡単です。スーパーユーザはそのあと、inetd に HUP シグナルを送って
(kill -1 inetd-pid)、その設定を読み直させなくてはなりません。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.2. Stupid tredir tricks

このセクションでは、もっと一般的な tredir の利用を述べます。すでに nntp
と telnet サービスをリダイレクトする方法については述べました；ここでは
もう少し複雑な例をあげます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.2.1. X windows

前のセクションで、txconn を使ってネットワーク上で走っている X のクライ
アントに、ホームマシンにウィンドウを開かせる方法について述べました。
TERM リンクのリモート側のマシンに、あなたのホームマシンからクライアント
を表示するのに同じテクニックが使えます。しかしリモート側になっていない
ネットワークマシンに X クライアントを表示するにはどうしたらいいでしょう
？答えは、我々が議論してきた他のプログラムと同じように、X が特定のネッ
トワークサービスを使っているということです。X サーバは、ポート = 6000 +
ディスプレイ番号という形の番号で与えられるポートでネットワークリクエス
トを見張っています。例えば、マシンのスクリーン 0 を使っている X サーバ
は、ポート 6000 を見張っています。もしスクリーン 2 を使っているなら、ポ
ート 6002 を見張っているということです。DISPLAY 環境変数を xmachine:n
のようにセットすると、X クライアントは xmachine のポート 6000 + n につ
なごうとします。

このことを、ローカルマシンの X クライアントをだましてリモートのディスプ
レイにウィンドウを開かせるのに使うことができます。ローカルマシンで走る
xterm を、ネットワークのどこかにある xmachine のディスプレイ 0 に開いて
みましょう。最初に、ローカルのディスプレイ番号、2 を選びます(0 を使って
はいけません。ローカルの X サーバがきっと使っているはずだからです。この
ディスプレイを xmachine のディスプレイ 0 に割り当てます。ポート番号で言
うと、このことはローカルポート 6002 をリモートポート 6000 にリダイレク
トすることになります。こうしてみましょう。

    $ tredir 6002 xmachine:6000                                        
    $ setenv DISPLAY localhost:2                                       
    $ xterm                                                            

これで xmachine 上に xterm が開くはずです。しかし DISPLAY を localhost:
2 にセットしたことに注意して下さい。これは、DISPLAY を :2 にセットする
と X クライアントがローカルディスプレイに接続した時にオプションでインタ
ーネットドメインソケットではなく unix ドメインソケットを使うことがある
からです。localhost:2 は TCP コネクションを使うように指示しています。

xmachine とつながっている限り、X リクエストは TERM リンクのリモート側
(remotemachine)から来ることに注意して下さい。ですから、もしコネクション
を認証したいのであれば、xmachine 上で xhost + remotemachine を実行する
か、xmachine からの鍵を使ってディスプレイ番号２についてローカルマシンの
'.Xauthority' を更新するために xauth を使うべきでしょう。

もう一度言いますが、X の接続のスピードをあげるために sxpc というプログ
ラムを使うことができ、そこでリンクを確立するためにどのように tredir を
使うか、 xauth を使ってそれをどのように認証するかについての説明がなされ
ています。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.2.2. TERM とメール

これについて聞きたいですか。電子メールは UNIX システムの中で、きちんと
動作させるのがもっとも難しいものの一つであるという専らの評判です。メー
ルとともに TERM を本当にきちんと動作させるということは、メールがどのよ
うに働いているかを知ることでもあり、それはこの文書の範囲外です。メール
についてさらに知りたいのなら、UNIX システム管理の書籍や rtfm.mit.edu:/
pub/usenet/comp.mail.misc から anonymous ftp で手に入る comp.mail.misc
の FAQ を参考にして下さい。現在 TERM のもとでメールを働かせる手助けにな
る二つのパッケージが sunsite.unc.edu から anonymous ftp で手に入ります
。Byron A. Jeff による term.maierd+smail と Bill C. Riemers による
BCRMailHandler です。

メールプログラムには二つのクラスがあります。最初の一つはメールユーザエ
ージェント(MUA)です。MUA はメッセージを読み、書き、そして送ることを支援
します。 MUA の例は elm, pine, Mail, そして vm です。MUA は全くネットワ
ーキングを行ないません；メッセージを取りまとめるだけです−−メールを送
る実際の仕事は二つ目のクラスのプログラム、メールトランスファーエージェ
ント(MTA)によってなされます。これらは MUA によって呼び出されます。これ
らはメッセージを受け取り、アドレスを見てどこへ送るのかを決定し、実際に
ネットワークを通じて配送します。

Linux システムにおける最も一般的な MTA は sendmail と smail です。基本
的な要点は、あなたの MTA を、メッセージをどのように処理するかを知ってい
るネット上のマシンで動作している別の MTA につなぐことです。これは、ネッ
ト上のマシンの smtp ポートにローカルポートをリダイレクトすることで実現
できます。あなたは MTA を、そのように扱っていいかわからないメッセージを
受け取って、それをローカルマシンのリダイレクトされたポートを通じてリモ
ートマシンの MTA に送り、そしてそれがメッセージを正しい宛先に送るように
設定しなくてはなりません。

smail を使ってどのようにこれを実現できるでしょうか？最初に、ネットワー
ク上のメールマシン(mailhost)にポートをリダイレクトします。

    tredir XXXX mailhost:25                                            

ここで、XXXX はローカルホストの smail が接続するポート番号です(これには
名前をつけて '/etc/services' に書いて smail に認識させなければなりませ
ん)。Smail には普通 '/usr/local/lib/smail' に置かれるいくつかの設定ファ
イルがあります。これからの論議では、すでにローカルメールについては正し
く設定されているものとします−−ファイルや、パイプや、そういったものへ
の配達です。もう一度言いますが、まだできていないのであればドキュメント
を読んでください。

　ファイル 'config' に、以下のような定義を加えます：

    smart_path=localhost                                               

　localhost は、メッセージをどう扱っていいのかわからないときにつなぐマ
シン名です。

　'routers' には、これを入れます。

    smart_host:                                                        
    driver=smarthost,                                                  
    transport=termsmtp;                                                
    path=localhost                                                     

　'transport' にはこれを入れます。

    termsmtp:        driver=tcpsmtp,                                   
          inet,                                                        
          return_path,                                                 
          remove_header="From",                                        
          append_header="From: YOUR_NET_ADDRESS",                      
          -received,                                                   
          -max_addrs, -max_chars;                                      
          service=YOUR_SMTP_SERVICE,                                   

　上では、header の行が出ていく全てのメールの From ヘッダを
YOUR_NET_ADDRESS に書き換えています。これはあなたがメールを送りたいネッ
トワークのアドレスです。もし複数のユーザが TERM リンクを使うのなら、ロ
ーカルユーザのネットワークアドレスのデータベースを作って From: ヘッダに
埋め込むなどの工夫が必要です。

　service の行はネットワークにつながったマシンの smtp ポートにリダイレ
クトしたローカルのポート番号の名前を入れます。私のバージョンの smail で
は、これは番号を設定するだけではだめで、"foo" のような名前を付けてやり
、 '/etc/services' の中でリダイレクトされたポートとして定義する必要があ
ります。もし SUID された tredir を使って、smtp ポート(25)をリダイレクト
するのであれば、これを定義する必要はありません。

　これで十分なはずです。もし sendmail を使うことにしたのなら、原理的に
は同じですが細部が異なります。Ronald Florence (ron@mlfarm.com)は標準の
Sun の sendmail ではリダイレクトされたポートを通してはキューに入った複
数のメッセージを送ることはできないと教えてくれました；BSD の sendmail
8.6.9 はうまくいきます。彼は '/etc/sendmail.cf' を TERM とともに使える
ように以下のように変更しました。彼の場合、デフォルトの sendmail ポート
(25)はローカルのイーサネットを通しての smtp トラフィックに利用されてい
たため、インターネットメールはリダイレクトされたポートに転送することに
しました。

 

    #                                                                        
    #Create the termsmtp mailer, which sends mail via a re-directed TCP port 
    #                                                                        
    Mtermsmtp,P=[TCP], F=mDFMuCXe, S=22, R=22, A=TCP $h PORTNUMBER           

　ここで、PORTNUMBER はローカルマシンのリダイレクトされたポートの番号で
す。これは 2000 以上の使われていないポートであるべきでしょう。次に、
sendmail にどのマシンにつなげばいいのかを伝え、またデフォルトメーラとし
て termsmtp をセットします。

    #                                                                   
    # major relay mailer                                                
    #                                                                   
    DMtermsmtp                                                          
    #                                                                   
    # major relay host: use the $M mailer to send mail to other domains 
    #                                                                   
    DR HOSTNAME                                                         
    CR HOSTNAME                                                         

n 　ここで、HOSTNAME はローカルホストの名前です(localhost で動くでしょ
うか？)。最後のエントリはインターネットメールを転送する O ルールに基づ
くものです。

    # Pass other valid names up the ladder to our forwarder              
    R$*<@$*.$+>$*         $#$M    $@$R $:$1<@$2.$3>$4     user@any.domain

　インターネットホストに TERM コネクションが確立されたら、ローカルマシ
ン上で次のコマンドを実行してください。

    tredir PORTNUMBER internet.host:25                                 
    /usr/lib/sendmail -q                                               

　ここからは電子メールを TERM を使って受け取る方法に移ります。メールは
mailhost というネットワークマシンにあるあなたのアカウントに届けられてい
るとします。最も簡単な解決法は単に trsh か termtelnet で mailhost にロ
グインしてそこでメールを読むことです。しかし、あなたのメールをローカル
マシンに自動的にダウンロードさせることも可能なのです。これを実現する方
法の一つが Post Office Protocol, (POP)です。POP はまさにこの目的のため
にデザインされています：間欠的なネットワークコネクションを持つマシンに
メールを配送するためです。POP を使うには、mailhost で POP サーバがイン
ストールされていなくてはなりません。そうなっていれば、POP クライアント
を使って数分ごとにメールをダウンロードできます。期待通り、これは tredir
で行われます。POP サービスは 110 です(古いプロトコル POP-2 があって、こ
れがポート 109 を使うことに注意してください；この文書では POP の最新版
である POP-3 について記述します)。いくつかの POP クライアントが入手可能
です。一つは、スクリプト言語 perl によって書かれた pop-perl-1.X で、
William Perry によって書かれ、私がメンテナンスしています−−
sunsite.unc.edu:/pub/Linux/system/Mail で見つかるでしょう。

　POP を使うために、ローカルポートを mailhost のポート 110 にリダイレク
トし、クライアントにはローカルポートを使ってローカルホストからメールを
取得するように設定します。例では、mailhost で POP サーバが走っているこ
とを仮定します。ローカルポート 2110 をリダイレクトし、pop-perl クライア
ントを起動します：

    $ tredir 2110 mailhost:110                                         
    Redirecting 2110 to mailhost:110                                   
    $ pop                                                              
    Username: bill                                                     
    Password: <enter your password for mailhost>                       
    Pop Host: name of local                                            
    Pop Port: 2110                                                     
    Starting popmail daemon for bill                                   

　POP サーバが利用できない場合、BCRMailHandler パッケージに TERM リンク
を通じてメールをローカルマシンにダウンロードするプログラムが含まれてい
ます。私は使ったことがありませんが、使ったことのある方のコメントを歓迎
します。 term.mailerd+smail パッケージもこの目的に使うことができます。
残念ながら、 BCRMailHandler も term.mailerd+smail パッケージも TERM バ
ージョン 2.0.0 以上ではもう動きません。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

8. tudpredir

　tudpredir は、プログラムが何をするのか、またどのように起動されるのか
ということを見れば tredir に似ています。これら二つのプログラムの大きな
違いは tredir が TCP ネットワークサービスをリダイレクトするために使われ
るのに対して、 tudpredir は UDP (User Datagram Protocol) ネットワークサ
ービスを TERM リンクを通してリダイレクトするということです。二つのプロ
グラムの間のもう一つの違いは、tredir がローカルポートを確立するのに成功
するとバックグラウンドデーモンになるのに対して、tudpredir では明示的に
バックグラウンドに回さなければならないということです。

　一般的な tudpredir の形は：

    tudpredir [this_computer:]port [that_computer:]port                

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

9. 作業の自動化

　さて、ここまでで全てのネットワークサービスを TERM を通して得る方法を
知りましたので、リンクが自動的にセットアップされ、設定までできるように
なったらいいですね。そのような方法はどのコミュニケーションプログラムを
使うのか、こと用にリモートシステムにログインするのかによって無数に存在
するでしょう。

　私は使ったことがありませんがとてもいいと聞いているプログラムが fet, a
front end for TERM です。これはリモートシステムにログインし TERM を起動
し全ての tredir を実行するようデザインされています。fet についてのあら
ゆるコメントは大歓迎です。

　ここでは例として、kermit を使ってリモートシステムにログインし、全ての
TERM の初期化をするコマンドのセットを紹介しましょう。もちろんですが、あ
なたがこの例を使うのなら、あなた自身のログイン手順にあわせて修正する必
要があるでしょう。

　実際に呼び出されるコマンドはシェルスクリプト 'knet' で、このようなも
のです。

    #!/bin/sh                                                           
    /usr/bin/kermit -y $HOME/.kerm_term > $HOME/klog < /dev/null 2> & 1 
    exec $HOME/bin/tstart >> $HOME/klog 2> & 1                          

　スクリプト '.kerm_term' は次のようなものです。

    pause 2                                                                                    
    # The number you want to dial                                                              
    output atdtXXXXXXX \13                                                                     
    # Login to the terminal server                                                             
    input 145 {name: }                                                                         
    output MYNAME \13                                                                          
    input 3 {word: }                                                                           
    output MYPASSWORD \13                                                                      
    input 5 {xyplex>}                                                                          
    # Make the line transparent                                                                
    output term telnet-t \13                                                                   
    output term stopb 1 \13                                                                    
    # Connect to the remote host                                                               
    output telnet remotehost.somedomain.org \13                                                
    input 10 {ogin: }                                                                          
    output MYOTHERNAME \13                                                                     
    input 3 word:                                                                              
    output MYOTHERPASSWORD \13                                                                 
    pause 5                                                                                    
    # Fire up term on the remote host                                                          
    output exec term -s 38400 -l $HOME/tlog -w 10 -t 150  \13                                  
    ! /usr/bin/term -r -l $HOME/tlog -s 38400 -c off -w 10 -t 150 < /dev/modem  > /dev/modem & 
    # Open other clients here                                                                  
    suspend                                                                                    
    !killall -KILL term                                                                        

　最後に、 TERM クライアントを起動するスクリプト 'tstart' がこれです。

    #!/bin/sh                                                              
    #                                                                      
    # This lets mail get out, can read news here, can pick up my mail here 
    #                                                                      
    /usr/local/bin/tredir 2025 25 2119 newshost:119 2110 pophost:110       
    #                                                                      
    # So I can open up Xwindows here                                       
    #                                                                      
    /usr/local/bin/trsh -s txconn                                          
    #                                                                      
    # So I will receive mail....                                           
    #                                                                      
    /usr/local/bin/pop                                                     
    #                                                                      
    # Clean out the queue, in case of boo-boos                             
    #                                                                      
    /usr/bin/runq                                                          
    #                                                                      
    # Done now                                                             
    #                                                                      
    echo ^G^G > /dev/console                                               

　最後にコネクションを切りたくなったら、kermit をレジュームし、サスペン
ドしてください。スクリプトの最後の行がローカルの TERM を kill してシス
テムを最初の状態に戻します。

　(著者からの注意：'!killall -KILL term' する代わりに '!tshutdown' でも
可能なはずなのですが、これも動くでしょうか？)

　先ほどいったように、やり方は無数にあります；これらは単にスタートを切
るための例に過ぎません。このほかの例も autoterm や JoelTermStuff のパッ
ケージで見つかるでしょう。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

10. ソフトを TERM とともに使えるようにする

　原理的には、ネットワークを使うプログラムは TERM との組み合わせでも動
かせます。そのうちのいくつかはすでに TERM が組み込まれたバイナリとして
手に入ります。これらには telnet, (nc)ftp, Mosaic そしてその他たくさんあ
ります。それらのプログラムのほとんどは TERM 1.17 以前のもののためにコン
パイルされています。しかし、新しいバージョンの TERM でも動くはずです。

　プログラムを TERM 対応にするもう一つの方法は、自分で移植することです
。この過程については次のサブセクションで述べます。

　プログラムを TERM 対応にする最後の方法は、temify することです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

10.1. ソースの移植とコンパイル

　ソフトウェアを TERM に移植するのはとても簡単な移植手順で可能です：

　もし '/usr/local' に root によってインストールされているならば：

 1. コンパイルフラグ -include /usr/local/include/termnet.h を加える
   
 2. ライブラリリストに -L$HOME/term -ltermnet を加える
   
　そしてソフトウェアについてくる INSTALL や README といった文書に書かれ
た通りにコンパイルすればいいのです。これだけです！

　この時点で、コマンドは TERM と共にでもそうでなくとも動作します。

    telnet localhost                                                   

は接続に TERM を使いませんが、

    telnet bohr.physics.purdue.edu                                     

は他のタイプのネットワークコネクションがない限り TERM を使います。

　rlogin のようないくつかのコマンドは root か TERM コネクションの所有者
(特権を持っている人)だけが実行できます。

　いくつかのコマンドは TERM に対し透過的で、他に選択肢のない時にだけ
TERM を用います。例としては telnet や ftp があります。

　他のものは TERM を使ってよいということを外からフラグをたてて伝える必
要があります。これらのプログラムには xarchie, fsp そして ytalk が含まれ
ます。

　これらのプログラムにフラグを与えるには、環境変数 TERMMODE を
README.security にならって設定することもできますし、make installnet を
実行することもできます。結局、作られる'termnet' ファイルは特別なネット
ワークの指示を含みますが、その存在だけが確認されるのです。

　もしイーサネット接続を加えるのなら、単に 'termnet' ファイルを削除して
同じバイナリを使い続けることができるのです！

　注意：client.a の頃に移植されたプログラムは単に client.a から
termnet.a を見るように変更するだけで、新しいバージョンの TERM でも再コ
ンパイル可能です。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

10.2. Termify

　このパッケージは、TERM を使うためにダイナミックリンクライブラリを変更
します。

　termify を使う前に、TERM バージョン 2.2i (これはバージョン 2.2.8 でし
ょうか？)以上、そして libc.so.4.5.26 以上を使っている必要があります。そ
の後、ディレクトリ '/lib' にファイル 'libt.so.4' を作る必要があります
(パッケージの README ファイルを見てください)。

　この時点での問題は、TERM のバージョンをあげるごとにファイル
'libt.so.4' を作り直さなくてはならないということです。

　ライブラリができたら、このようなコマンドを使って、 TERM 対応にしたい
プログラムを termify に食わせてやればいいのです：

    termify <command name>                                             

　最後に、パッケージには 'smail' を完全に termify するスクリプトが入っ
ています；特別な転送の設定は必要ありません。変更しなければならないのは
'From:' アドレスくらいでしょう。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

11. Term クライアント

11.1. ftp サイトから入手可能な Term クライアント

　以下に、TERM を使って実行することのできるアプリケーションのリストを挙
げます。これが完全だとはいいません；あらゆる追加を歓迎します。可能な限
りアプリケーションのあるサイトとディレクトリを入れているつもりです(私の
知識の全て)。私がアプリケーションの見つかる場所は sunsite.unc.edu であ
ると記述したら、それは以下の二つのディレクトリから見つかるという意味で
す。

 1. /pub/Linux/apps/comm/term/apps
   
 2. /pub/Linux/apps/comm/term/extra
   
　ではいってみましょう :-)

TERM パッケージ：
   
     
    ┌────────────────────────────┐
    │       tupload                                          │
    │       tdownload           (バージョン 2.1.0 以上)      │
    │       trsh                                             │
    │       tmon                                             │
    │       tredir                                           │
    │       tudpredir           (バージョン 2.0.0 以上)      │
    │       txconn                                           │
    │       trdate(d)                                        │
    │       tshutdown                                        │
    │       libtermnet                                       │
    └────────────────────────────┘
   
ファイル転送：
   
    ┌──────────────────────────────────────────┐
    │       ftpd                sunsite.unc.edu                                          │
    │       termncftp           sunsite.unc.edu                                          │
    │       ncftp185            sunsite.unc.edu:/pub/Linux/system/Network/file-transfer  │
    │       fsp                 sunsite.unc.edu:/pub/Linux/system/Network/file-transfer  │
    └──────────────────────────────────────────┘
   
インフォメーションシステム：
   
    ┌─────────────────────────────────────────────┐
    │       lynx                                                                               │
    │       Mosaic              sunsite.unc.edu:/pub/Linux/system/Network/info-systems/Mosaic  │
    │       chimera                                                                            │
    │       netscape            sunsite.unc.edu:/pub/Linux/system/Network/info-systems         │
    │       httpd                                                                              │
    │       xgopher                                                                            │
    │       gopher              sunsite.unc.edu                                                │
    └─────────────────────────────────────────────┘
   
リモートログイン：
   
    ┌─────────────────────────────────┐
    │       termtelnet          sunsite.unc.edu                        │
    │       rlogin              physics.purdue.edu:/pub/bcr/term/extra │
    │       rsh                 physics.purdue.edu:/pub/bcr/term/extra │
    └─────────────────────────────────┘
   
ネットニュース：
   
    ┌─────────────────────────────────┐
    │  tin 1.3             sunsite.unc.edu:/pub/Linux/system/Mail/news │
    │  news2               sunsite.unc.edu                             │
    └─────────────────────────────────┘
   
メール：
   
    ┌──────────────────────────────┐
    │       slurp               sunsite.unc.edu                  │
    │       smail               sunsite.unc.edu                  │
    │       term.mailerd+smail  sunsite.unc.edu                  │
    │       BCRMailHandlerXXX   physics.purdue.edu:/pub/bcr/term │
    └──────────────────────────────┘
   
自動化スクリプト：
   
    ┌────────────────────────────┐
    │       JoelTermStuff       sunsite.unc.edu              │
    │       autoterm            sunsite.unc.edu              │
    │       fet                 sunsite.unc.edu              │
    └────────────────────────────┘
   
その他のプログラム：
   
    ┌─────────────────────────────────────┐
    │       inetd               sunsite.unc.edu                                │
    │       rdate               sunsite.unc.edu                                │
    │       xgospel             sunsite.unc.edu:/pub/Linux/games/x11/networked │
    │       termify             physics.purdue.edu:/pub/bcr/term/extra         │
    │       xboard              sunsite.unc.edu                                │
    │       ircII               sunsite.unc.edu:/pub/Linux/system/Network/chat │
    │       whois                                                              │
    │       xwebster            sunsite.unc.edu                                │
    │       sxpc                ftp.x.org:/R5contrib                           │
    │       xztalk              sunsite.unc.edu:/pub/Linux/apps/sound/talk     │
    └─────────────────────────────────────┘
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

11.2. termnet パッケージ

　termnet-2.0.4-Linux-bin.tar.gz (sunsite.unc.edu:/pub/Linux/apps/comm/
term) パッケージにはいくつかのコンパイルされた TERM クライアントとスク
リプト、マニュアルページや libtermnet.so.2.00.04 が含まれています。クラ
イアントは libtermnet.so のバージョンでコンパイルされています。パッケー
ジは以下のクライアントを含みます：

┌──────────────────────────────────┐
│    fet                                                             │
│    finger                                                          │
│    ftp                                                             │
│    fwhois                                                          │
│    ncftp                                                           │
└──────────────────────────────────┘

警告：このパッケージには TERM 自身を含む TERM 2.0.4 のコンパイルされた
クライアントも含まれています。何をしたいのかを確認しないでインストール
してはいけません。実行ファイルをあちこちに移動しだすと、他のバージョン
の TERM やそのクライアントを破壊してしまうこともあります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

11.3. 望まれてはいるがまだサポートされていないもの

 1. DOOM: クライアントとサーバの両方がポート 5029 を使うという事実がこ
    のゲームの問題になっているようです。
   
 2. NFS: NFS は接続要求をするソケットが 1024 以下のポートにつながるよう
    になっている場合に限りリクエストを受け付けると仮定しています。これ
    は面倒なことです。しかしながら、いくつかの NFS サーバは 'insecure'
    オプションを持っています。このような場合 RPC サポートが Term に加え
    られれば NFS は動くかもしれません。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

12. Term とセキュリティ

　このセクションでは、いくつかの TERM のセキュリティの外観について指摘
しておきます。問題が説明され、セキュリティを向上させる方法が書かれてい
ます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

12.1. trsh

　trsh はリモートシステムからローカルの Linux box にアクセスするために
使われると危険です。TERM とそのクライアントの問題は、TERM コネクション
の所有者に加えて 'root' もコネクションを通じて TERM 対応プログラムを実
行できるということです。

　このことは、リモートシステムの 'root' が trsh を実行して TERM コネク
ションの所有者のログインに入ることがわめて簡単にできるということです。

　この問題の解決法は簡単です：ローカルマシンの termrc ファイルに次のよ
うな行を入れるだけです：

    denyrsh on                                                         

　これを 'termrc' ファイルにセットすることにより、リモートサイトにいる
誰もが trsh を使ってあなたのマシンにアクセスできなくなります。TERM コネ
クションを通してあなたのローカル Linux box にアクセスしたいのであれば、
telnet やリダイレクトされたポートは使うことができます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

12.2. txconn と xauth

　txconn は恐ろしく安全ではありません；誰でもが TERM を通じてあなたのロ
ーカルサーバにあらゆるいたずらを仕掛けることができます。この種のことで
心配するのなら、コネクションを認証するために xauth を使うことを考えるの
がいいアイデアになるでしょう。xauth を使ってコネクションを安全にする方
法については次のセクションを見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

12.3. sxpc, xhost と xauth

　sxpc は 'xhost +' と共に使うと、xauth を使わない限り非常に危険です。

　sxpc を使うにあたって、xauth を使うことはセキュリティを確保する上で非
常に重要なことです。sxpc を使うとき xauth を使わないなら、'xhost +' を
使うのと同じ全ての危険が生じます。これらの危険が含まれますがこれに限り
ません：

 ・ あなたのスクリーンに何が表示されているのかを見る
   
 ・ 何をタイプしているのかを見る
   
 ・ 誰かがあなたのウィンドウでタイプする(例えば、あなたの全てのファイル
    を削除する :-(
   
　xauth は X リリース R4 から利用可能になっています。ここでは xauth の
基礎的な使い方のセットアップについて述べます。この設定はネットワークを
動き回るには無防備ですが、それでよければうまく動くでしょう。

注意：xauth を使うときには $DISPLAY 変数をローカルホストにセットしては
「いけません」(または、localhost:何とか)。$DISPLAY 変数がローカルホスト
を使うようになっていると、クライアントは適切な認証情報を見つけることが
できなくなります。本当のホスト名をつけてやればよいのです。README に従っ
てコンパイルするなら、 -DNOGETHOSTNAME なしでコンパイルすればうまくいく
でしょう。

　クライアントを走らそうとするマシンを C と、また表示したいマシンを D
とします。

　最初に、最大 16 の 16 進数の数字の組を鍵として選びます(0-9 と a-f か
らなる偶数個の数字ということになります)。この鍵を以下の例に示す <key>
の場所に置かなくてはなりません。

 ・ 　C で：
   
        % xauth                                                 
        xauth:  creating new authority file $HOME/.Xauthority   
        Using authority file $HOME/.Xauthority                  
        xauth> add Chostname:8 MIT-MAGIC-COOKIE-1 <key>         
        xauth> exit                                             
   
 ・ D で：
   
        % xauth                                                 
        xauth:  creating new authority file $HOME/.Xauthority   
        Using authority file $HOME/.Xauthority                  
        xauth> add Dhostname/unix:0 MIT-MAGIC-COOKIE-1 <key>    
        xauth> add Dhostname:0 MIT-MAGIC-COOKIE-1 <key>         
        xauth> exit                                             
   
　D で X サーバをスタートするときに、フラグ -auth $HOME/.Xauthority を
つけなければなりません。X サーバがどのようにスタートするか、'$HOME/
xserverrc' を編集あるいは作成する必要があります。例えば：

    #!/bin/sh                                                          
    exec X  -auth $HOME/.Xauthority $*                                 

　'.Xauthority' ファイルが C においても D においてもあなただけが読める
ようにしておいてください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

13. 覚えておくこと

　このセクションでは、TERM についてのソフトウェアや情報を得るのに役に立
つ ftp アドレスや URL を書いておこうと思います。

Ftp:
   
    sunsite.unc.edu:/pub/Linux/apps/comm/term/<whole-directory-tree>   
    sunsite.unc.edu/pub/Linux/docs/HOWTO/<whole-directory-tree> <ftp://
    sunsite.unc.edu/pub/Linux/docs/HOWTO/>                             
    physics.purdue.edu:/pub/bcr/term/<whole-directory-tree>            
    (編注：ftp://sunsite.unc.edu/pub/Linux/system/network/serial/term/ 
    など)                                                              
   
URL:
   
    http://sunsite.unc.edu/mdw/HOWTO/Term-HOWTO.html                   
    http://www.bart.nl/~patrickr/term-howto/Term-HOWTO.html (常に最新の
    バージョン)                                                        
    http://physics.purdue.edu/~bcr/homepage.html                       
   
Netnews:
   
    comp.os.linux.announce 新しい TERM のバージョンと Term-HOWTO のアナ
    ウンス                                                             
    comp.os.linux.help TERM についての質問はここへ                     
    comp.os.linux.misc またはここ                                      
    comp.protocols.misc TERM に関する質問への答えはここにもポストされま
    す                                                                 
   
関連文書：
   
    Using Term to Pierce an Internet Firewall HOWTO by Barak           
    Pearlmutter, bap@learning.scr.siemens.com                          
    Firewall HOWTO <http://www.linuxdoc.org/HOWTO/Firewall-HOWTO.html> 
    (日本語訳 <http://www.linux.or.jp/JF/JFdocs/Firewall-HOWTO.html>)  
    by David Rudder, drig@execpc.com                                   
    Serial HOWTO <http://www.linuxdoc.org/HOWTO/Serial-HOWTO.html> (日 
    本語訳 <http://www.linux.or.jp/JF/JFdocs/Serial-HOWTO.html>) by    
    Greg Hankins, gregh@cc.gatech.edu                                  
    Net-2/Net-3 HOWTO (NET-3-HOWTO の日本語訳 <http://www.linux.or.jp/ 
    JF/JFdocs/NET-3-HOWTO.html>) by Terry Dawson,                      
    terryd@extro.ucc.su.oz.au                                          
   
　ネットニュースで質問をするときには、みなさんがその問題を解決するのに
十分な情報を入れるようにしてください(TERM のバージョン番号、コネクショ
ンのセットアップの方法、等)。現時点で多くの TERM のバージョンが使われて
おりそれ特有の、また一般的な問題も存在します。そのため、もし有用な回答
がほしかったら、少なくとも TERM のバージョンは記載すべきです。そうでな
いと、場合によっては問題を解決するために大まかな推測だけしか得られない
でしょう。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

14. TERM のバージョンと信頼性

　多くの TERM のバージョンが存在します。TERM をメンテナンスしている
Bill Riemer は、どのバージョンが安定していてどのバージョンを避けるべき
かというリストを作りました。このリストが以下のものです。

┌──────────────────────────────────┐
│               term110          --> なんとも言えない                │
│               term111          --> なんとも言えない                │
│               term112          --> なんとも言えない                │
│               term113          --> なんとも言えない                │
│               term114          --> そこそこ安定したβバージョン    │
│               term115          --> 不安定なβバージョン            │
│               term116          --> 不安定なβバージョン            │
│               term117          --> 不安定なβバージョン            │
│               term118          --> いくらか安定したβバージョン    │
│               term119          --> 安定したガンマバージョン        │
│               term-2.0.X       --> いくらか安定したβバージョン    │
│               term-2.1.X       --> さらに安定したβバージョン      │
│               term-2.2.X       --> 新しいβバージョン              │
│               term-2.3.X       -->                                 │
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

15. Term スピード表

　Bill McCarthy のおかげで、違うモデム、TERM のバージョン、コネクション
の状態での TERM のスピード表があります。この目的は、新しい、また経験を
積んだユーザに他の人たちが何を使っているのか、またどのような結果を得て
いるのかを知らせることです。

┌──────────────────────────────────────┐
│                             LINUX TERM 表 8/14/94                          │
│                                                                            │
│                                                                            │
│  |___modem speed/make___|___line speed__|__avg cps__|__high__|__term ver_| │
│  | 1)  USR SP 14.4      |   9600        |  950      |  963   | 1.17      | │
│  | 2)  USR SP 14.4      |  14400        | 1376      |  n/a   | 1.18p06   | │
│  | 3)  Zoom 2400        |   2400        |  220      |  230   | 1.19      | │
│  | 4)  Boca V.32bis 14  |  57600        | 1400      |  n/a   | 1.01/09?  | │
│  | 5)  Viva 14.4        |  14400        | 1300      |  n/a   | 1.16      | │
│  | 6)  USR SP 14.4      |  14400+       | 1550      | 1680   | 1.19      | │
│  | 7)  Intel 14.4 Fax   |  14400        | 1400      | 1650   | 2.0.4     | │
│  | 8)  cable tv hookup  |  57600        | 1500      | 1800   | 1.18p06   | │
│  | 9)  Twincom 144/DFi  |  57600        | 1500      | 4000?  | 2.0.4     | │
│  | 10) USR SP 14.4      |  14400        | 1200      | 1500   | 1.08      | │
│  | 11) cable tv hookup  |  19200        | 1300      | 1800   | 1.19      | │
│  |-----------------------------------------------------------------------| │
└──────────────────────────────────────┘

┌───────────────────────────────────────┐
│  +コマンドフラグと／termrc 設定：                                            │
│                                                                              │
│  1) default escapes   2) window 5       3) baudrate 2400    4) n/a           │
│     baudrate 9600        timeout 200       window 3                          │
│     window 10                              noise on                          │
│     timeout 150                                                              │
│                                                                              │
│  5) compress off      6) baudrate 19200  7) ignore 19+17    8) compress off  │
│     window 10            compress on        window 4           escape 0, 13, │
│     timeout 150                             timeout 90         16-19, 255    │
│     baudrate 38400                                             baudrate 0    │
│                                                                shift 224     │
│                                                                flowcrtl 500  │
│                                                                window 10     │
│                                                                timeout 70    │
│                                                                retrain on    │
│                                                                breakout 24   │
│  9) compress off     10) compress off      11) baudrate 19200                │
│     baudrate 57600       baudrate 38400        compress on                   │
│     window 10            escape 17, 19         shift 224                     │
│     timeout 200          remote                escape 0, 13 16-17            │
│     noise on                                   19, 255                       │
│     share on                                   window 10                     │
│     remote                                     timeout 40                    │
└───────────────────────────────────────┘

　片方でエスケープしたキャラクタはもう一方で無視していることを意味して
います。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

16. ネット上で見つかるヒントとトリック

　Linux 関連のニュースグループでは、毎週 TERM に関する多くの質問がなさ
れまた回答されています。ニュースグループへのトラフィックを減らすため、
このセクションではこれらの質問とそれに対する答えをまとめてみようと思い
ます。いくつかの答えについては、私も同じ問題に関係したために確認をしま
した。それ以外は、単にニュースグループからとってきただけでテストはして
いません。

 ・ 多くの人たち、特に Ultrix を使っている人たちが、24 行のウィンドウを
    使っているときに vi が 24 行以下しか表示しないというトラブルに見舞
    われているようです。これを取り除くには３つの方法があります。
   
     1. このようにリモートシステムにログインする
       
            trsh -s telnet <hostname>                           
       
     2. '.login' ファイルに 'resize; clear' を入れる
       
     3. 最もいい解決法はリモートでこのように入れることではないでしょう
        か：
       
            stty 38400                                          
       
 ・ 多くの人たちが何らかの理由での TERM コネクションのクラッシュが問題
    になっているようです。そのため、アプリケーションをスタートする前に
    TERM コネクションがまだ生きているのかそうでないのかを知りたいと思っ
    ています。例として、これは以下のような小さなシェルスクリプトで確認
    できます：
   
     □ 　tcsh を使っているなら：
       
            if ( { trsh -s true } ) then                        
              ...                                               
            endif                                               
       
     □ 　bash を使っているなら
       
        　  if trsh -s true; then                               
              ...                                               
            fi                                                  
       
 ・ WWW ブラウザ Netscape を TERM と共に動かすことで問題が起きているよ
    うです。いいニュースは、これは TERM のもとで動くということです。ど
    のようにするかは：
   
     1. Netscape を termify する
       
     2. termnetscape を起動する
       
        Options | Preferences | Mail/Proxies 以下の「全ての」プロクシー
        ボックスを空白にする
       
        SOCKS のボックスを 'remotehost' & 80 にセットする。
       
     3. Options メニューから出るときのエラーを無視する。
       
     4. termnetscape が正しく動かなかったら：
       
        Options | Preferences | Mail/Proxies 以下の「全ての」プロクシー
        ボックスを空白にする
       
        SOCKS のボックスを 'none' & 80 にセットする。
       
     5. Options メニューから出るときのエラーを無視する。
       
　Scott Blachowicz は TERM リンクのリモート側にプロクシーサーバ(例えば
、CERN の httpd)がインストールされていれば Netscape やその他のブラウザ
を TERM と共に動かすのはかなり簡単だとメールしてくれました。ローカル側
では、このようにします：

 1. tredir localhost:8080 remotehost:80                         
   
    ここで、 'remotehost' はプロクシーサーバシステムのホスト名です。
   
 2. ブラウザを起動し、preferences や options やそういったものの中で
    'localhost' のポート 8080 番をプロクシーにセットする。
   
    いくつかのブラウザでは、このように環境変数をセットします。
   
                export http_proxy=http://localhost:8080/        
                export ftp_proxy=http://localhost:8080/         
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

17. その他のこと

　いくつかのことを入れたいと思っています。

 ・ トラブルシューティングの拡張
   
 ・ セキュリティの論点の拡張
   
 ・ Termwrap
   
 ・ 提案
   
　もし提案、批評、この文書に関する何か他にあれば、どのような形でも結構
ですので出してください。今は、私 Patrick Reijnen が TERM-HOWTO の原作者
となっています。私には(現在)、patrikr@bart.nl で連絡が取れます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

18. 謝辞

　多くの人たちに感謝します。まず第一に我々にこのようなすばらしいツール
を提供してくれた Michael O'Reilly と TERM の開発者全てに。またこの
HOWTO にフィードバック、また貢献してくれた全ての人たちに感謝します。前
の作者である Bill Reynolds, Ronald Florence, Tom Payerle, Bill C.
Riemers, Hugh Secker-Walker, Matt Welsh , Bill McCarthy, Sergio Weyman
Martin そしてここであげることのできない全ての人たちに感謝します。

<<訳者より>>

 1. [無保証]私はこの翻訳が正しいことを保証しません。必要ならば Term の
    マニュアルやこの文書の原文を読むなどして下さい。
   
 2. [謝辞]翻訳を支援して下さった JF の方々、ありがとうございます。
   
 3. [お願い]この訳文の誤訳の指摘、御意見、御感想などお寄せ下さい。
   
    編注:
   
    日本語訳：1995年12月12日 - 藤井真吾       
    LinuxDoc への変換：2000年5月9日 - 中野武雄
    DocBook への変換：2001年3月3日 - 千旦裕司 
   
