今年ももうじき暮れようとしていますが皆さんはいかがお過ごしでしょうか。風邪などひかないようにご注意ください。風邪を引いたら薬を飲んで休養をとりましょう。人間には休養が必要です。
今月の特集はシステム管理です。オンラインの記事も公開されています。 http://www.linuxjournal.com/issue68/index.htmlをチェックしてください。
Linux Journalのすべての記事(1‐56、1994年‐1998年)とすべてのLinux Gazette(1−45、1995年‐1998年)が1枚のCDになりました。詳しい情報はここをクリックしてください。
Antarctica ITとCaldera SystemsがボストンとニューイングランドでLinuxサービスを提供するために提携した。
CorelはPC ChipsとOEM契約を締結。同社Linux OSの拡大を狙う。PC ChipsはマザーボードにCorel LinuxとWordPerfect 8をバンドルして出荷する。
Libra Computer Systemsは「Linux by Libranet」をリリースする。ベースはDebianでディストリビューションには1年間のemail、faxによるサポート、Linux HOWTO、Debian-Guideなどが含まれている。CDの価格は27ドルだ。
Red HatはCygnusを買収した。CEOはMatthew Szulik氏
Red Hatはエンタープライズ用のオープンソースアプリケーションのサポートを提供する。初めはApache、Sendmail、Postfixなどのインターネットアプリケーションのサービスプログラムを拡大する予定。来月には一般的なオープンソースソリューションを提供する。
Red Hatは「Center for Open Source」を設立。社会に役立つ科学、教育プロジェクトなどを幅広く支援する。
スモールビジネス用のTEAM Linux ソフトウェアスイートを提供しているeSoftがRed Hatの開発パートナープログラムに参加。
Red HatはLinux OSのプロフェッショナルユーザーのセキュリティを強化するためにRSA Securityと提携した。
画像ソフトウェア大手のPhotodexとSuSEが協力してSuSE Linux用の「CompuPic Digital Content Manager」を提供する。CompPicは強力でユーザーフレンドリーなイメージング機能を有し特にプロフェッショナルウェブ開発者には強力なツールになりそうだ。
SuSEはオンラインのインフォメーションポータルをe-commerceサイトに変更する。アウトソーシング企業にはDigital Riverが選ばれた。
Stormix TechnologiesはStorm Linux 2000にVMwareの評価版をバンドルすると発表した。VMwareは PC エミュレータで Linux 上で Windows などの他のOSを動作させることができる。さらにStarOfficeの完全版、BRUのデモ版もバンドルされる予定。
ATI TechnologiesはLinuxのサポートを正式に表明、Rage 3Dの仕様を公開する。同社は以前から2D製品に関してはXfree 86を通してサポートしてきたが今回はこれをRage Pro、Rage 128製品などに拡大、さらにRage II、Rage Pro、Rage 128ファミリのビデオキャプチャ、TV-Tunerなどのマルチメディア開発なども支援する予定。
基本コマンドのリファレンスリスト。印刷して傍らにおいておくと便利です。
KYZOはPizzaBox Linuxの商用版をリリースした。フリーのPizzaBpxサーバーのダウンロードは最初の1ヶ月で500,000ヒットを記録、最近では1日の登録者数が75,000人にのぼっている。商用版にはブータブルのフラッシュROMにプレインストールされ486(以上の)PCを起動できる回路が付属する。システムにはファイル、プリント、CD共有、リモートアクセス、UPSモニタリング、テープバックアップ、ハードウェアモニタリング、APMなどの機能があり、JavaScriptをサポートしたウェブ管理インタフェースが付属する。ターゲットはSME市場だ。
Cobalt NetworksのRaQ 2サーバーがAllegiance Telecomに採用される。RaQ 2は低いTCOコストで高品質のウェブホスティングを提供する。1週間前にはCobalt製品ファミリの最上位製品 RaQ3iが発表されている。
www.cobaltnet.com
National SemiconductorによるとInformatec AGはLinuxベースのJava Network Technology OSをNational Geode WebPADに移植する。National Geode WebPADは無線インターネット方式アクセス機器のハードウェア、ソフトウェアリファランスだ。
Current ports of the Linux OSウェブページにはLinuxが動作するプラットフォームがリストアップされている。主なプラットフォームは次のとおり。
「Linux Administration Made Easy」(LAME)ガイドが最近Red Hat 6.1用にバージョンアップされた。ガイドには毎日の管理とメンテナンスの説明が載っている。
CalergaはLinux用のSysQuake Viewerを発表した。これはグラフィカルにシステムの状態を理解できるツールで、複雑なシステム管理がインタラクティブなグラフィック操作で容易になっている。
AutoGraph International(AGI)はEasyCopyを公開した。Enhanced X Captureはフルスクリーン、特定のウィンドウ、任意の矩形などをキャプチャすることができる。たとえカラーテーブルがオーバーしてもオリジナルのカラーもそのまま保存される。
PartionMagicでよく知られているPowerQuestからDataKeeperがリリースされた。これはバックグラウンドでファイルを監視し、圧縮してバックアップを実行する。ファイルが修正されるとバックアップを実行するのでスケジューリングは必要ない。リムーバブルドライブ、ネットワークドライブ、ハードディスク、フロッピドライブなどに対応している。
Railroad Tycoon II: Gold EditionのLinux用デモバージョンがリリースされた。先月にはRailroad Tycoon IIとSecond Century Expansion Packがリリースされている。デモバージョンはwww.lokigames.comからダウンロードできる。
LinuxバージョンのHeroes of Might and Magic IIIを開発中。このゲームは非常に人気があり数々の賞も受賞している。
Loki HackがLinuxバージョンのCivilization: Call to Powerを公開した。www.lokigames.comからダウンロードできる。
Loki Entertaimentがオープンソースプロジェクトに資するためにCVSサーバーを開設。これでSMJPEG、motion JPEG、SMPEG、MPEG-1プレーバックライブラリなどにアクセスすることが可能になった。Lokiオープンソースプロジェクトは www.lokigames.com からダウンロードできる。
この話題は何度も登場しているので気がついたことを。カーネルの構築のときにIDEフロッピサポートを組み込む。SCSIエミュレーションはオートイジェクトを利用しなければ必要ありません。それにzipで使用するファイルシステムも忘れずに。Debian poteto、カーネル2.2.13ではejectがide-scsiエミュレーションなしで使えます。
Winmodemなるものがあるとは聞いていましたがWinmotherboardとは。ShuttleのHOT-591Pでシステムのアップグレードをしましたが組み上げて再起動したら
No [active partition] found DISK BOOT FAILURE, INSERT SYSTEM DISK AND PRESS ENTER
というエラーが出てしまいました。DOSの時代のブートパーティションをマザーボードが要求するとは。問題はアクティブパーティションを設定することで回避しました。
Windows用のターミナルエミュレータが必要なら http://www.geocities.com/SiliconValley/Network/1027/Kevtermをチェックしてください。とても軽快です。
From: Richard Cohen<vmlinuz@vmlinuz.org>http://tucows.mirror.ac.uk/term95.htmlをチェックしてください。Windows 95/98用のテルネットクライアントがそろっています。その中でもお勧めはTera Term Proです。
その他Tera Term Proを薦めるメールが多数届いています
私の環境、hdaとhdc(IDEプライマリ1、IDEセカンダリ1)、CD-ROMがhdb(IDEプライマリ2)、LS120がhdd(IDEセカンダリ2)でLS120が動いています。/etc/fstab は次のとおりです。
/dev/hdb /cdrom iso9660 ro,noauto,user 0 0
Nortonのantivirusを走らせたらMBRからLILOがなくなってしまったという質問に対する変事です。
From: Ivo Naninck<inaninck@solair1.inter.nl.net>レスキューディスクでLinuxを起動し、適当な場所にシステムをマウントします。その後/mnt/sbin/liloを実行してください。そうすれば元に戻ります。
その他同様の内容のメールが多数届いています。
Diamond A50は設定を少し修正すれば動きます。/etc/X11/XF86Config の「Graphic Device」セクションの「Device configured by Xconfigurator」の行の下のカード名に次のとおりに追加してください。
option "no_bitblt" option "no_imageblt" option "sw_cursor"これでX Windowを起動すれば動くはずです。
Linuxでi740 AGPカードが使えないでしょうかという問いに対して、Red Hat 5ではバイナリのXサーバーが提供されています。機能はいまいちのようです。XFree86 3.3.4のSVGAサーバーでは正常に機能しています。ですから新しいRed Hatにバージョンアップしたほうがいいでしょう。
プロセサを追加してもシングルプロセスの速度が速くなるわけではありません。プログラムがSMPに最適化されている必要があります。アプリケーションがSMPに対応してデータセットを共有できればかなりの速度向上が見込めます。それにはSMP対応のカーネルを構築しなければなりません。その他速度を向上させるには
Linuxではそのようなドライバは提供されていません。LinuxではGhostscriptを使用して印刷するのが一般的です。Epson Stylus 800はGhostscript 5.5でサポートされています。Ghostscriptをインストールして/etc/printcapを修正してください。詳しいことはPrintting-HOWTOを参照してください。
6月にオープンソースコンファランスを開こうと思いついて10月に実際に開催するまでは大変な道のりでした。わずか1日のコンファランスだからたいしたことはないとたかをくくっていたのですが実際に準備に取り掛かったら次から次へと問題が出て来ました。研究所の内部の説得、資金集め、協賛企業の獲得、プロモーションなど実際にやってみると難しいことばかりです。でも広告を打って人を集めたコンファランスも始まってみたらあっという間に終わってしまいました。コンファランスが終わってから振り返ってみると会議は大成功でした。5-6年後に振り返ったらこの会議は非常に重要なものと認識されるだろうと言ってくれる人もいます。さあ次は「オープンソースコンファランス 2000」。
ルーティング研究所には9台のPCと18の席があります。環境はサーバーが1台、HP JetdirectプリンタサーバーをインストールしたHP LaserJet 4050N、PCが9台。サーバーのOSはSlackware 4.0(カーネル2.2.6)、8台のPCはWinNT 4.0(SP5)、1台はWin95aです。Linuxサーバーで必要な機能は次のとおり。
SAMBAのインストールはディストリビューションで異なりますが今回使用しているのはSlackwareです。Slackwareの場合はインストール時にSAMBAを選択するか、後でpkgtoolを使ってインストールします。SAMBAは「/etc/rc.d/rc.samba」から起動されます。起動されたsmbdがクライアントにSMB/CIFSサービスを提供します。SMB(Server Message Block)はWin95とNTクライアントがネットワークにアクセスするときに使用するサービスです。nmbdはNETBIOSネームサーバーでIP上でNETBIOSが使用できるようにします。
SAMBAの設定ファイルは「/etc/smb.comf」です。設定例が「/usr/doc/samba-2.0.3/examples」にあります。smb.confは3つのセクションからなります。
smb.confファイルを修正したらsmbd、nmbdサーバーを再起動しなければなりません。WindowsとLinuxで使用するユーザーネームとパスワードを同一にすることも重要です。パスワードの同期は「/usr/lib/samba/private」ディレクトリの mksmbpasswd.sh を実行します。期待通りにいかなかったのはシャドーパスワードを smbpasswd ファイルに移行できずマニュアルでパスワードを設定しなければならなかったことです。これでユーザー、パスワードを入力せずにサーバーにアクセスできるはずです。
プリンタサーバーとプリンタの設定は簡単です。Linux用のドライバは付属していませんがHPの http://www.hp.com/support/net_printingからWebAdiminツールがダウンロードできます。今回はtelnetを使用して直接JetDirectカードを設定します。JetDirectカードにtelnetするにはIPアドレスを設定しなければなりません。デフォルトでは"192.0.0.192”になっています。プリンタのステータスウィンドウから「JetDirectメニュー」を選んで修正しましょう。IPアドレスが修正できたらtelnetでアクセスします。まず管理者のパスワードを設定します。次にデフォルトのゲートウェイとホストネームです。残りはプリンタ組み込みのウェブサーバーでの設定が可能です。
LinuxからJetDirectに印刷するには「/etc/;printcap」ファイルを作成しなければなりません。例えば次のようになります。
# HP Laserjet 4050n
lp|lj4050n:\
:lp=/dev/null:sh:\
:mx#0:\
:sd=/usr/spool/lj4050n:\
:rm=e328-laser.domainname.com:rp=text:
Windowsから印刷するにはサーバーのプリンタアイコンをダブルクリックするとWindowsがプリンタの設定をするかどうか尋ねてきます。プリンタの設定用CDのdisk1とdisk2フォルダから必要なドライバをインストールします。テストページをちゃんと印刷できれば終了です。
SAMBAの設定は初体験の私でも10分もかかりませんでした。でも気がついたことがいくつか。まず[homes]フォルダが共有フォルダとして見えてしまうことです。[homes]フォルダはクライアントのホームディレクトリなのです。これはGlobalセクションに「Browseable = No」を追加すれば解決します。それにsmbpasswdファイルが自動的にシャドーパスワードに変換してくれなかったことです。これはマニュアルでユーザーネームとパスワードを smbpasswd コマンドを使って入力すれば解決しますがこれに関してはマニュアルには何の記載もありませんでした。でも私が気づかなかっただけかもしれません。
Linux スレッドとはマルチスレッドプラグラミング用のライブラリだ。カーネルレベルのスレッドを提供し clone() システムコールで生成される。Linux 2.0.0かそれ以上で動作する。スレッドとは連続的なプログラムコントロールでありマルチスレッドとは複数のスレッドが同時に動作しているかのごとく振舞う並行プログラミングであるが、Linuxのマルチプロセスとは若干異なっている。
スレッドから共有メモリにアクセスするには若干の注意が必要だ。オブジェクトに対するオペレーションは単一で割り込み不可でなければならないが共有メモリ上のデータに対するオペレーションやGCCコンパイラの最適化などによりそうでない場合がある。GCCコンパイラが共有メモリ上の値をレジスタバッファに置く問題は volatile 宣言することにより解決する。さらにひとつのプロセスが変更した値を他のプロセスが変更しないようにすることも重要だ。そのためには lock が必要となる。
Linuxでのスレッドの実装は /usr/include/pthread.h による。最初に pthread_mutex_t 型の変数としてロックを宣言する方法は
int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr);pthread_mutex_init は mutexattr の属性により mutex オブジェクトを生成する。mutexattr が NULLならばデフォルトの値が使用される。POSIXではスレッドの型はpthread_tになる。スレッドは
int pthread_create(pthread_t *thread, pthread_attr_t *attr,
void *(*start_routine)
により生成される。成功すれば生成されたスレッドの識別子が保存され、0を返す。
生成されたスレッドは終了しなければならない。
int pthread_join(pthread_t th, void **thread_return);
はスレッドが終了するまでスレッドコールを中断する。スレッドの戻り値が NULL でなければ th の値が thread_return が参照する変数に保存される。
呼び出しルーチンからスレッドへ情報を渡す方法は グローバル変数と構造体とがある。コードのモジュール化には構造体が便利だ。構造体は共有変数とロックの情報、ルーチンが必要とするすべてのデータ、スレッドを識別するインデックス情報などを保持している。
lsコマンドの歴史的考察(By Eric Fischer)
ファイル名をリストする ls コマンドは Unix/Linux の基本的なコマンドであり、当然もっとも古いコマンドのひとつだ。最初は listf の形式で引数により多少のバリエーションがあった。1965年に「*」に対応。CTSS が Multics に移行したときに listf も list に変わり短縮形 ls が使われるようになった。初期の ls のオプションは 最後の listf のオプションよりも少なかったが、”-a、-dtm、-rv”などが含まれていた。
1969年にベル研究所の研究対象が Multics から Unix に変わったときには ls だけが残った。その当時のオプションは”-l、-t、-a、-s、-d”などがあり現在でも使われている。1974年版ではさらに”-r、-u、-i、-f”などが追加された。1975年には”-g”が加わった。1977年に Bill Joy がこの ls コマンドを修正したときには”-l、-c、-x、-q、-m”などが追加され複数のコラムで表示されるようになった。1979年のベル研究所の第7版ではほとんと変更はなく”-c”が inode の変更時刻を表示することとなった。この違いも1980年の4.0BSDでは統一され、”-c”が追加された。その他にも”-F、-R、-b”などが追加されている。
Expectのプログラミング(By David Fisher)
この記事は Expect に関して一通りの知識のある読者向けです。Expect に関しては http://www.cotse.com/dlf/man/expect/index.html を参照してください。Expect を使用して自動スクリプトを作成する場合の問題は不安定な通信とリモートターミナルです。send expectプロシージャはリモートシステムとの通信とコマンドラインの編集、ブロードキャストを示している。ローカルで動作しているプロセスは何ら問題はなく今回の対象外である。外部のプロセスは通信に影響する問題が派生することがある。例えばエラーが発生した場合エラーメッセージを発生させる可能性があるがデータは生存し続けるかもしれない。だから文字列すべてが適正に受信されていることが重要なのだ。
インタフェースの基本的な部分はターミネーティング文字を含まないコマンド文字列を送信しリモートシステムからのエコーを確認することだ。二つが一致すれば送信成功とみなしてターミネーティング文字を送信する。この記事で使用するプロシージャは次の通り。
インタフェースは send_expect_init で生成される。send_only プロシージャは exp_send() のラッパーだ。send_expect はリモートシステムと自動スクリプトのインタフェースだ。send_expect_report はスクリプトの最後にデバッグ関連の情報を表示する。
インタフェースには4つのモードがある。モードがエラーになるとコントロール+Uでコマンドラインをクリヤでき、expectバッファもクリヤされ次のモードが実行される。さらに自己診断の結果を表示することもできる。
詳細なファンクションの説明は直接 Linux Gazetteのホームページを御覧下さい。
Linux, Java, XML(By Eoin Lane)
この記事は XML、XSL を紹介するものです。JServ を使った Apache のウェブサーバーに関しても説明します。最新の記事は http://www.inconn.ie/article/cocoon.htm を御覧下さい。
XMLは強力なウェブマークアップ言語だ。今回の目的はXMLに関する説明よりもそのテクノロジを理解することだ。XMLに関する情報は World Wide Web Consortium(W3C) サイトと XML FAQ サイトで手に入れることができる。 IBM のサイト もお薦めだ。
マークアップ言語は SGML から派生している。SGML は優れた言語で航空機のデザインなどを文書化することができるがウェブアプリケーションとしてはちょっと複雑すぎる。そこで生まれたのが HTML だ。元は科学技術の出版を念頭に置いていたが構造が簡単でありウェブの拡大に伴って広く利用されるようになった。
最近のウェブページはダイナミック、インタラクティブ、データベースのアクセス、セキュリティなどの新機能が必要とされるようになり、XMLの出番となる。XMLはSGMLに比べると単純だがSGMLの80%の機能を利用できる。ここではHTMLとXMLとを実際に使用して比較してみたい。
簡単なHTMLの文書を例にとろう。
<html>
<head>
<title>This is my article</title>
</head>
<body>
<h1
align="center">This is my article</h1>
<h3
align="center">by <a
href="mailto:eoinlane@esatclear.ie">EoinLane</a></h3>
...
</body>
</html>
このHTMLファイルで特徴的なことは
- 内容と文書形式に密接な関係がある
- 例えば検索プログラムを用いて Eoin Lane氏のメールアドレスを抽出することは難しい
XMLはこの点を改善している。同様の内容をXMLで表現すると次のようになる。
<?xml
version="1.0"?>
<page>
<title>This is my article</title>
<author>
<name>Eoin Lane</name>
<mail>eoinlane@esatclear.ie</mail>
</author>
...
</page>
まず留意することはXML文書がウェルフォームドであること。ウェルフォームドであることとは文書内の開始タグと終了タグが対応していることである。検索プログラムは開始タグと終了タグとに挟まれた mail という文字列を検索すれば良い。次に重要なことはこのXML文書はデータのみを保持していること。表現の方法などは含まれていない。中規模クラス以上のサイトではページの表現は統一されておりデータのみが変化する。
XML文書の表現には二通りある。CSS(Cascading Sytly Sheet)とXML文書をHTML、XML、pdf、ps、Latexなどに変換する言語だ。原則は「CSSが使えればCSSを使う。XSLを使わなければならないときはXSLを使う」だ。理由はCSSの方が容易でコストも低い。しかしその単純さ故の限界がある。その場合にはXSLが必要となる。
XSL(eXtensible Stylesheet Language) は文書の変換、表示などの言語で、文書の変換(XSLT)とフォーマットに分類される。1999年11月16日に W3C は XSLT を W3C 勧告として公表した。これで XSLT は確定され XML 文書は HTML 文書に変換されて次の XSLT ファイルを使用すれば通常のブラウザで閲覧することができる。
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0">
<xsl:template match="page">
<html>
<head>
<title>
<xsl:value-of
select="title"/>
</title>
</head>
<body bgcolor="#ffffff">
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="title">
<h1 align="center">
<xsl:apply-templates/>
</h1>
</xsl:template>
<xsl:template match="author">
<h3 align="center">
by <xsl:apply-templates/>
</h3>
</xsl:template>
<xsl:template match="mail">
<h2 align="left">
<xsl:apply-templates/>
</h2>
</xsl:template>
</xsl:stylesheet>
XSLT を学ぶには XSLINFO サイトにアクセスすれば良いだろう。XML ファイルが必要な場合には XSL ファイルも同時に送信され変換はブラウザサイドで行われるようになる(例えば次の Netscape 5 ではそれが可能になるだろう)。現在のブラウザはHTMLの表示を行うものなので変換はサーバーサイドで Java servlets を使用して行われる。
Cocoon servletは Apache の開発グループが開発したサーブレットだ。もしサーバーがサーブレットと cocoon に対応していればXMLを使用したサイトを構築できる。そのためにはまず Apache ウェブサーバーをインストールしなければならない。テスト環境は Red Hat 6.0だ。プレインストールされた Apache サーバーはアンインストールして最新の Apache をゲットして解凍し、コンパイル、インストールしよう。インストールするディレクトリは /usr/local/src だ。
./configure --prefix=/usr/local/apache --mandir=/usr/local/man --enable-shared=max
make
make install
インストールが済んだらシステムを再起動して Apache を起動しよう。 /usr/local/apache/bin/apachectl start
テストをするにはウェブブラウザを開いて http://localhost/ にアクセスすればよい。10月に IBM がLinux 用の JDK 1.1.8 をリリースした。JDK にはこれを利用する。 IBM JDK をダウンロードして /usr/local/src/jdk118 に解凍する。次いで JavaSoft の JSDK2.0 solaris バージョンをゲットして /usr/local/src/JSDK2.0 に解凍しよう。システム起動時用に /etc/profile に
JAVA_HOME="/usr/local/src/jdk118"
JSDK_HOME="/usr/local/src/JSDK2.0"
CLASSPATH="$JAVA_HOME/lib/classes.zip:$JSDK_HOME/lib/jsdk.jar"
PATH="$JAVA_HOME/bin:$JSDK_HOME/bin:$PATH"
export PATH CLASSPATH JAVA_HOME JSDK_HOME
を追加し、コマンドプロンプトで
java -version とタイプして
java version "1.1.8"
と表示されれたら次に servletrunner とタイプし
servletrunner starting with settings:
port = 8080
backlog = 50
max handlers = 100
timeout = 5000
servlet dir = ./examples
document dir = ./examples
servlet propfile = ./examples/servlet.properties
と表示されたら Apache のサーブレットエンジン、ApacheJServ をインストールする準備ができた。
最新の ApacheJServ を Apache の Java サイト からダウンロードして /usr/local/src/ApacheJServ-1.0/ に解凍してコンパイル、インストールする。./configure --with-apache-install=/usr/local/apache --with-jsdk=/usr/local/src/JSDK2.0
make
make install
インストールが終了したら http.conf ファイルに次の文字列を追加し、
Include /usr/local/src/ApacheJServ-1.0/example/jserv.conf
ウェブサーバーを再起動する。/usr/local/apache/bin/apachectl restart
ウェブブラウザで http://localhost/example/Hello にアクセスして Example Apache JServ Servlet
Congratulations, Apache JServ is working!
と表示されればOKだ。
最後に最新の Cocoon を Apache の Java サイト からダウンロードして /usr/local/src/cocoon のディレクトリを作成し解凍する。mkdir /usr/local/src/cocoon
jar -xvf Cocoon_1.5.jar
/usr/local/src/ApacheJServ-1.0/examples/ にある jserv.properties ファイルの
# CLASSPATH environment value passed to the JVM
で始まるセクションの最後に wrapper.classpath=/usr/local/src/cocoon/bin/xxx.jar を
Cocoon 1.5の場合には wrapper.classpath=/usr/local/src/cocoon/bin/fop.0110.jar
wrapper.classpath=/usr/local/src/cocoon/bin/openxml.106-fix.jar
wrapper.classpath=/usr/local/src/cocoon/bin/xslp.19991017-fix.jar
を追加する。次に /usr/local/src/ApacheJServ-1.0/example/ ディレクトリの example.properties ファイルの最後に repositories=/usr/local/src/cocoon/bin/Cocoon.jar
を追加する。今回の例では repositories=/usr/local/src/ApacheJServ-1.0/example
を repositories=/usr/local/src/ApacheJServ-1.0/example,/usr/local/src/cocoon/bin/Cocoon.jar
に変更し、最後に servlet.org.apache.cocoon.Cocoon.initArgs=properties=/usr/local/src/cocoon/bin/cocoon.properties
を追加した。これでJServ エンジンの設定は終了したので Apache の XMLファイル コールを Cocoon サーブレットに任せる。それには jserv.conf ファイルに ApJServAction .xml/example/org.apache.cocoon.Cocoon
を追加し、更に http.conf ファイルの alias セクションに
Alias /xml/ "/usr/local/src/cocoon/"
<Directory "/usr/local/src/cocoon/">
Options Indexes
MultiViews
AllowOverride
None
Order allow,deny
Allow from all
</Directory>
Alias /xml/ example/"/usr/local/src/cocoon/example/"
<Directory "/usr/local/src/cocoon/example/">
Options Indexes
MultiViews
AllowOverride
None
Order allow,deny
Allow from all
</Directory>
を追加したら Apache を再起動しよう。
現在は 更に改善を目指した Cocoon 2 が開発中です。いずれはXMLの効用が認識され Cocoon 2 が広く使われるようになるでしょう。
ホームネットワークでのDHCP(By JC Pollman and Bill Mote)
家庭と会社でそれぞれ自分のコンピュータを使用している場合にはそれぞれの環境でマシンを接続するたびに環境設定を変更して再起動を繰り返すことになります。そういう場合には DHCP を使うのがベストです。何故って? それは便利だからです。
筆者の環境の IP アドレスは次のようになっています。
* Important machines and network equipment*
.001
Your router (if present)
.002 - .009 Network
equipment (switches and hubs)
.010 - .075 Servers
.076 - .099 Network
Printers
* User workstations *
.100 - .254 DHCP
range
こういう風に管理しているとログの整理などのときには便利です。
whereis dhcpd[Enter]
とコマンドラインでタイプしてdhcpd: /usr/sbin/dhcpd /etc/dhcpd.conf /etc/dhcpd.leases /etc/dhcpd.leases~
と応答がなければ DHCP がインストールされていませんのでまずインストールしましょう。
最初は /etc/dhcpd.conf の設定から始めます。筆者の環境では次のようになっています。
/etc/dhcpd.conf
September 18, 1999
Author: Bill Mote
default-lease-time 36000;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.10;
option domain-name-servers 192.168.1.10;
option domain-name "mynetwork.cxm";
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.254;
}
/etc/dhcpd.leasesも作成します。まず touch /etc/dhcpd.leases[Enter]
で空のファイルを作成します。筆者の例では次のようになります。
/etc/dhcpd.leases
September 18, 1999
Author: {auto generated by dhcpd}
lease 192.168.1.100 {
starts 6 1999/09/18 17:27:36;
ends 6 1999/09/18 17:37:36;
hardware ethernet 00:60:08:e3:60:03;
uid 01:00:60:08:e3:60:03;
client-hostname "NoFear";
}
次は dhcp サーバーを起動しクライアントを動作させます。コマンドラインで/usr/sbin/dhcpd[Enter]
とタイプして下さい。これでサーバーサイドは完了です。
クライアントはWindowsを使用します。コントロールパネルのネットワークから TCP/IP プロトコルのプロパティを表示します。文章よりも目で見た方が分かりやすいでしょうから画像で示します。

Windows 98でもインターネット接続共有などを使って同様なことができますが独特の仕様なのでトラブルが発生すると面倒です。それよりも Linux のDHCPを使用した方が張るかに便利でしょう。来月は Linux のクライアント側の説明をしましょう。