必要 - みる会図書館


検索対象: UNIX MAGAZINE 2000年12月号
120件見つかりました。

1. UNIX MAGAZINE 2000年12月号

Daemons & Dragons— 64 スクリプトも、システム時刻とはまったく別に年の値を リか時間の操作を独占しているわけではない。シェル・ どれもこの値を正しく操作しているだろうか。ライプラ ることを思い出してほしい。自作の Perl スクリプトは、 プログラムから localtime 関数と gmtime 関数を使え んなことはない。 PerI も C のライプラリを利用し、 PerI 危ないのは C や C 十十のプログラムだけだろうか。そ リスク を正しく計算したあと、それを 10 進数として出力する。 tm-year)" が正しい。この式は、 ( 1900 を足して ) 西暦 トするなら、当然ながら printf( ” %4d" , 1900 十 tm. 西暦を 19100 と表示してしまう。この値をフォーマッ これは数字の 19 に年値を追加するだけで、 2000 年には % 02d ' , tm. tm-year)" といった構文で値を出力する。 printf(" 19 ないからだ。一部のプログラムは単純に がある。すべてのプログラムが対応しているわけでは るプログラムは、この値を扱えるようにしておく必要 ただし、これで終りではない。 tm 構造体を使用す 石忍しなければならない。 たときにライプラリが 100 以上の値を返すかどうかも には 100 という値が含まれる。また、次の世紀が始まっ 年の tm-year には 99 という値が、 2000 年の tm-year 、、 1900 年からの年数 " と定義している。すなわち、 1999 そこで、現在の UNIX システムではこのフィールドを には、関数の戻り値を 4 桁にするわけにはいかない。 かし、既存のソフトウェアとの互換性を維持するため 以降も正しい値を返すかどうかを調べる必要がある。し らない。具体的には、システム・ライプラリが 1999 年 UNIX べンダーは 2000 年に備えて対処しなければな なくなる。これがもっとも重要な修正点の 1 つであり、 ご存じのように、これは 2000 年を境に正しく動作し 含まれており、、、西暦の末尾 2 桁 " と説明されている。 tm 構造体の定義には tm-year というフィールドが 落し穴 必要な形式に適したかたちて情報か供されるからだ。 ラムは、 localtime を使ってユーサーに情報を提供する。 UCT を提供するものだ (gmtime)o ほとんどのプログ ムゾーンを考慮するもので (localtime) 、もう 1 つは 扱える。このスクリプトが年値を 2 桁の数値として使用 または保存するとしたら、 2000 年にトラブルに見舞わ れるのは確実だ。 2000 年に備え、システム管理者はすべてのパッチが 最新であることを石薩忍しなければならない。これらのパ ッチは、 OS に付属するライプラリ ( 必要であれば ) 、ド キュメント、アプリケーションを修正する。だが、 で安じ、するのはまだ早い。べンダーのパッケージも調べ る必要がある。具イ村勺には、データベース・システムや サードバーティーのバックアップ・システム、ドキュメ ントのフォーム、グラフィックス・ライプラリなどだ。 こうしたパッケージの多くは、年が明けても問題ないだ ろう。 2000 年問題への準備は、べンダーに確認するだ けでもいい。ただし、確認漏れがないように注意してほ しい。 サードバーティーのアプリケーションのほかには、各 種のカスタム・スクリプトがある。これにはすべての自 動化ツールが含まれる。はとんどのシステム管理者が作 業を予定どおりに進めるために自分たちで開発したもの だ。シェル・スクリプトや awk スクリプト、 sed スクリ プト、 Perl プログラムをひとつ残らす確認してほしい。 2038 年問題 UNIX 上で動作する多くのプログラムには、 2000 年の時刻を誤って解釈する危険があるが、 OS 自体は 間題ないだろう。タイムカウンタが 946684799 から 946684800 に増えても、カーネルはびくともしない。し かし、次の変わり目にはそうはいかない。 Windows ユ ーザーは 2000 年に脅えているが、 UNIX に詳しいユー ザーは 2038 年を恐れている。 2038 年 1 月 19 日に 一部の UNIX システムはそれ以時間を表せなくなる。 時間値はこれまで、 32 ビットの符号付き数値として保 存されてきた。つまり、 2147483647 ( 231 ー 1 ) までの 値しか処理できない。カウンタはこの数値を超えると負 数に変わってしまう。具体的には、 2038 年 1 月 18 日 3 時 14 分 7 秒 (UCT) が間題の時刻である。 この問題を回避するガ去は 2 つある。まず、時間値を 符号なしの数値として処理できる ( すでにそうなってい るが ) 。これで、運命の日がやってきても、カウンタは 22 世紀へ向けて時を刻み続けることができる。ただし、 UNIX MAGAZINE 2000.12

2. UNIX MAGAZINE 2000年12月号

イ ン タ フ ェ イ ス の 街 角 36 増井俊之■ スナッピングの活用 図形工デイタと制約システム 雑になれば定義も面倒になるので、制約型図形編集システ 約が必要になることはあまりありません。しかも条件が複 しかし、一ヨ殳ューサーか図形を編集する場合、複雑な制 ることのできるシステムが実用化されています。 複雑な制約条件か数多く定義されていても高速に解を求め なり前から重のアルゴリズムがさかんに研究・開発さ 制約解決システムは図形編集以、外にも応用が利くため、か システムには柔軟で高速な制約解決システムが必要です。 に引する必要もあります。このように、制約型図形編集 場合には、マウスが移動けるたびに条件を満たす解を高速 カ数あることもあります。ューサーの操作に従って動く 件をつねに満たせるとはかぎらす、解として得られる配置 任意の制約条件を指定できるようにすると、それらの条 こなえます。 集システムでは、望ましい配置を保ったまま編集作業がお 雑な条件もユーサーカ甘旨定できるようにした制約型図形編 並べる図形と線は重ならない " などといったさらに複 形をきれいに配置するためのものです。、、図形を等間隔で これらの機能は、編集操作にさまざまな制限を設けて図 く使われています。 図形の移動を水平 / 垂直のみに制限するといった方法がよ た複数の図形の端や中心を揃えるコマンドを用意したり、 図形に揃えて図形を描いたり移動したり、あるいば尺し ます。格了のグリッド上にだけ図形を配置したり、別の 図表や絵をきれいに描けるようにする機能が用意されてい 通常、図形工デイタには、図形の位置や大きさを揃えて ムは一ヨ殳にはそれほど普及していないようです。 164 ごく普通 の図形の編集に必要な上師如勺単純な制約条件を簡単に定義 できる図形編集システムがあれは、活用する場面も多くな ると思います。 簡単な制約のなかに、描画 / 編集中の図形をグリッドや ほかの図形に自重加勺に揃える手法があります。このような システムでは、描く図形の制御点がグリッドやはかの図形 の重力に引きつけられるように動いたり、移動中の図形が グリッドやほかの図形に引き寄せられてパチッと吸い付く ( スナッフする ) ような動きをします。この操作を、、スナッ ピング (snapping)" と呼びます。この機能は、一般的な 図形工デイタでは図形の位置や大きさを揃えるために使わ れます。これをさらに活用し、きれいな図を簡単に描くさ まざまな手法か考案されています。 たとえは、 Xerox PARC の Eric Bier らは、すでに 描画されている図形を基售として新たな図形や線か描ける Snap-Dragging[1] というシステムを考案しました。この システムでは、多角形の項点や線の交点など、描画竹璞に おいて重要と思われる点にマウスカーソルがスナップする ようになっています。これによって、攵国杉の項点から線 を描いたり、線の交点から別の線を描き始めたりといった ことか簡単にできます。一方、東京大学の本多正明氏らは スナッピングを拡張し、移重丿拡大、回転などのモードを 変更することなく図形か編集できる lntegrated Manip- ulation という操作手法を考案しました [ 2 ] 。このシステ ムでは、移動した図形を別の図形にスナップさせる際に 図形の回転軸 ( ピポット ) もスナップさせることができま す。したがって、周囲の図形の配置によっては、図形を移 スナッビング UNIX MAGAZINE 2000 ユ 2

3. UNIX MAGAZINE 2000年12月号

連載 RCS RCS には、次のような機能がある。 UNIX Communication Notes が作成される。 RCS のソースコードは、このディレクト パッケージを展開すると、 rcs-5.7 というディレクトリ ・ rcs/rcs-5.7. tar. gz 下記のソースパッケージを入手する。 これらのミラーサイトのなかから適切なところを選び、 http://www.gnu.org/prep/ftp.html ・ GNU FTP list あるが、以下の URL で一覧できる。 ールする必要がある。 GNU のミラーサイトは世界各地に GNU のミラーサイトからパッケージを入手してインスト システムに RCS がインストールされていない場合は、 インストール 生したリビジョンを統合 ( merg ⅲ g ) することもできる。 のリピジョンから派生した版の管理も可能で、さらに派 これは、とくにソフトウェア開発では重要である。特定 ヨ冓造によるリビジョン管理が可能 示する。 リビジョン間で上師交をおこない、それぞれの相点を明 ・異なる版の上交と変更箇所の明示 リビジョンについても復元して取り出すことができる。 新のリピジョンのファイルだけでなく、途中で言当求した れたリビジョンとの差分が保管される。これにより、最 RCS ファイルには、最斤のリピジョンと過去に作成さ ピジョンを取り出す処理を check-out と呼ぶ。 ルに言当求することを check-in と呼ぶ。一方、特定のリ イルにオ内される。特定のリビジョンを RCS ファイ すべての版は、、、 RCS ファイル " と呼ばれる特別なファ ・ check-in 、 check-out か基財イ乍 mary) などの情報も同時に保存される。 リビジョン間でおこなわれた変更に関する説明 (sum- (check-in date/time) 、各リピジョンの状態 (state) 、 理する。さらに、各リビジョンには、作成者、作成日時 RCS では、それぞれの版にリビジョン番号を付けて管 頻繁に更新されるテキストファイルのバージョン管理 46 リに格納されている。あとは通常のパッケージと同様に configure でコンパイルに必要な設疋ファイルを作成し、 make install" を実行すればコマンド類がインストール される。 ノート 1 RCS のソースコードは 1995 年以来更新されていないが、 もともと複雑なシステムコールなどは使っていないので、現在 でも大半のシステムで間題なく利用できるはすだ。 基本的な使い方 それでは、 RCS の基本的な使い方を説明しよう。こ こで紹介するのは必要最低限の利用法だが、これだけで RCS を使い始めることができる。 1. 準備 作業用のディレクトリに、 RCS ファイルを↑褓内するた めのサプディレクトリを作る。 % mkdir RCS RCS では、リヒ、ジョンをオ内するために、もとのファ イル名に、 , v " を付けたファイルを用意する。たとえは、 test. c というファイルを RCS て管理する場合は、 RCS ファイルとして test. c , v というファイルが作成される。通 常、ユーサーがこのファイルを直接編集することはない。 つまり、ユーサーが RCS ファイルを変更するときは、か ならす RCS のコマンドを利用しなければならない。した がって、このファイルをカレント・ディレクトリに置く 必要はない。むしろ、ファイルを誤って消してしまうと いった事故を防ぐ意味でも、新たにサプディレクトリを作 成し、そこに RCS ファイルを置くほうがよい。 RCS で は、カレント・ディレクトリに RCS という名前のディレ クトリがあれは、そのディレクトリに RCS ファイルを格 納する。 2. check-in 最初に匱えるコマンドは ci と co である。 ci は check- ⅲの処理、すなわち RCS ファイルにリビジョンを登録 するコマンドである。一方、 co は check-out の処理、す なわち RCS ファイルから特定のリピジョンを取り出すた めのコマンドである。 RCS を使う場合は、最初に check-in 処理をおこなう。 たとえば、 article. txt というファイルを RCS で管理する UNIX MAGAZINE 2000.12

4. UNIX MAGAZINE 2000年12月号

連載 /lnside Cygwin 図 6 配布元の尺 Oygwin Setup Select DownIoad ftp: ″「 in ロ . etl. ロ 0. ip ftp: 〃ⅱ n ロ . h. ne. ip ftp.〃ⅱnユ so-net. ne. ip ftp.〃ⅱnロ.asahi-net.0「.ip f い〃ⅱ ng. tern. 0 「 . ip 社p.//sunslte.icm.edu/pl ftp.〃d町「旧0.dee.isep.ipp.pt p. //ftp.eq.uc.pt 紐 p. / 川 p. eq. uc. pt 叩 : / 川 p. chg. 似 ftp:/川p.sunet.se ftp: 〃代p.csie.nctu.edu/tiAI ftp.//ftpl.simca.edu/tw ://ft n. 前 8 http.//sunsite 0 . uk 社 p. //sunsite 0 uk / 川 p. c 叩 14. dl.ac. uk http.〃印0ロ旧rn「ninロ.ccpl 4. ac. uk 図 7 パッケージの尺 S 叩 Ourrent Nevv SeIect p 託 k e 0 install 「Ⅲ 01.14 01 1 ロ .8 ー 2 1. ロ 1. ロ 20 凹 0722-1 2 ロ 4 ー 1 2 ロ 0823 Prev Curr Package ash bash b inut ils byacc bzip2 C ら r crypt CVS dejagnu d iff Full/Part nther 凵日 L ← Back Next ~ > Cancel ternet functions (WinInet) という socket よりも抽 象レベルの高い API を利用する。これは lnternet Ex- pl 。 rer3 のころから提供されているので、インストールさ れているのが旧い lnternet Explorer でも間題はないは すだ。 次に進むと、 Cygwin のミラーサイトの一覧を sources .redhat.com から取得したあと、配布元のサイトを選択 するダイアログか表示される ( 図 6 ) 。一覧にないサイトを 指定するには、一番下にある、、 Other URL" を選択して 次に進むと URL を入力できる。その際には表 1 にある ような、配布元のトップ・ディレクトリの URL を入力 する。 パッケージの選択 次に、 setup ・ ini に言当された情報をもとに ノヾッ - ケ・一一 ジを選択するダイアログが表示される ( 図 7 ) 。 lnst all from lnternet" か Download from lnternet" を〕尺 した場合には、さきはど指定した配布元から setup. ini を ダウンロードし、 lnstall from Local Directory" であ れはすでにある setup. ini かイ吏われる。 、 Current" の欄には、すでにインストール済みのパッケ ージのバージョンか表示される。もちろん最初はすべて空 欄である。、、 New " の欄にはインストールされるパッケー こをマウスでクリックす ジのバージョンか表小される。 ると表小が、、 Skip " に切り替わり、そのパッケージのイン ストールを中止することができる。 78 号い oc 0 肥ら ct 加 . 同 = previous version. トト p i al インストール済みのパッケージがある場合は、追加 / 更 UNIX MAGAZINE 2000 ユ 2 程度である。 tcltk 、 inetutils → 10g ⅲ、 tiff → zlib 、 Jpeg といった は、 gcc → binutils 、 dejagnu → expect 、 expect → 対に外さないように注意してはしい。それ以汐 ) 依存関イ系 る。これはすべてのパッケージかイ衣存しているので、絶 win 固有の機能を利用するためのコマンドが含まれてい しよう。 cygwin ノ、ツケージには、 Cygwin DLL と Cyg- 別のパッケージに必要なものを、、 Skip' しないように注意 インストーラはパッケージの依存関係を知らないので、 はすだ。 flex 、 gcc 、 gdb 、 gdbm 、 gperf 、 tcltk あたりは不要な ないのなら binutils 、 bison 、 byacc 、 dejagnu 、 expect 、 し、そもそも UNIX のアフリケーションをコンパイルし しないのなら、 jbigkit 、 jpeg 、 libpng 、 tiff は必要ない く。画像ファイルを扱うアプリケーションをコンパイル こでは、不要なパッケージを、、 Skip " に切り替えてお 択できる。 (Uninstall) か、パッケージの更新をしない (Keep) を選 いては、、、 New " の欄をクリックするとパッケージの削除 いこと。すでにインストールされているパッケージにつ という意味だが、現状では正しく機能しないので押さな 新のバージョン / その先の実馬剱勺なバージョンお尺する [Exp] の各ボタンは、それぞれ 1 つ前のバージョン / 最 するかどうかを切り替えるためのものだ。 [Prev] [Curr] 上の [FuII/Part] ボタンは、その際にすべての情報を表示 新する必要があるパッケージの情報だけが表示される。右

5. UNIX MAGAZINE 2000年12月号

インターネット印刷プロトコル第 1.1 版 . モテルとセマン ティクス PS. 、 R. deBry 他 ( RFC2566 置奐 ) IPP 関連の文書囎物 ) 1 っとして、モデルとセマンティク スに関する部分について規定している。現在の状態は、、標 準化への提唱 " である。 RFC2566 を置き換える RFC と して 2000 年 9 月に公開された。 RFC2911 は、 RFC2566 で規定された IPP 第 1.0 版 を第 1.1 版に置き換えている。変更部分は刊録としてまと められているが、文書全体の分量が 200 ページと大部で あり、変更点も数ートカ所におよぶため説明は割愛する。 LDAP 関連 RFC2927 MIME Directory ProfiIe for LDAP Schema MIME による LDAP スキーマ用ティレクトリ表現方法 fo. 、 M. Wahl MIME によるディレクトリ表現の一種として、 LDAP スキーマを表現する方法を提案している。、、広報 " として 2000 年 9 月に公開された。 LDAP は、 whois 十十に組み込まれていたディレクト リ・アクセス機能をプロトコルとして独立させたものであ る。 LDAP 第 3 版は RFC2251 で規定されている。 RFC2927 では、 LDAP のスキーマを MIME で表現 する手法を提案している。具イ純勺には、 LDAP のスキー マの各構成要素 ( オプジェクト・クラス、属性型、マッチ ング規則、文法定義 ) について、 MIME による表現時の フィールド名、フィールドの目的、フィールドの符号化 方法、フィールドに言己される値を定義している。 新たに定義されたフィールド名を以下に示す。 ・ ldapSchemas ・ attributeTypes ・ mat chingRules ・ 0bjectClasses ・ matchingRuIeUse ・ ldapSyntaxes DAG 関連 RFC2967 TISDAG ー TechnicaIInfrastructure for Swedish Directory Access Gateways 152 スウェーデンにおけるティレクトリアクセス・ケートウェ イの技術的インフラストラクチャ 旧 fo. 、 L. DaigIe 他 ディレクトリ情報へのアクセスガ去の統一を可能にする 、、ディレクトリアクセス・ゲートウェイ " について解説し ている。、、広報 " として 2000 年 10 月に公開された。 ディレクトリ情報へのアクセス手法にはさまざまなも のがあり、それらのアクセス手法間の相違は、以前から インターネットにおける情報管理に関する間題とみなされ てきた。 SUNET (Swedish University Network)3 の TISDAG (Technical lnfrastructure for Swedish Di- rectory Access Gateways) フロジェクト 4 は、この間題 を解決する手段として DAG (Directory Access Gate- way) システムを提案している。 DAG は、 ・ディレクトリ情報へのアクセス手法の一元管理 種々のプロトコルによるディレクトリ情報へのアクセス 手法の提供 を目的としたシステムで、 SUNET で実際に運用されてい る。スウェーデンのディレクトリサービス・プロバイダが 提供するディレクトリ・サーピスへのアクセス方法の統一 を目指している。 RFC2967 は以下に示す主要な 5 つの章から構成され、 DAG の仕様およびアーキテクチャか解説されている。 UNIX MAGAZINE 2000.12 http://tisdag.sunet.se/ http://www.sunet.se/ アーキテクチャを説明している。 機能仕様を実現するために DAG システムカ収用した 4. アーキテクチャ ムカ甘是供すべき機能のイ兼の概要を説明している。 要求事項に対応する基イ旡念にもとづき、 DAG システ 3. 機能負の概要 れている。 では、制約事項とシステムに対する要求事項がまとめら ューサーからの要求事項をまとめる必要がある。この章 ビスを提供しなければならない。そのため、さまざまな DAG システムは複数の異なるタイプのユーサーにサー 2. 要求頁 4 3

6. UNIX MAGAZINE 2000年12月号

連載 /lnside Cygwin— 図 3 インストーラのタ里の尺 Oygwin Setup 0 Download m 旧断 t 0 lr from lntemet 0 lnstall from Local D irectoty 図 4 インストール先とオプションのま諚 C 引 -IC 目 Ovgwin Setup 日 rowse... 図 5 Proxy のキ諚 Oygwin Setup C = 貧リ s 引 E5 settngs 0 Direct Connection 0 UseHTTP/FTPProxy: 日 0 ← Back Port Select ins 旧 0 猷 dwectory ロ /cygwin DefauIt Text File Type. 「 DOS 旧 s For : 剤 LInix Just Me た処理はせす、エラーメッセージも出力せすにそのまま次 に進んでしまう。インターネットと窈妾続回線か細い場合 は、ほかの FTP クライアントでパッケージをダウンロー ドしてから、、 lnstall from LocaI Directory" を j 尺した はうがよい。その際、配布元のトップ・ディレクトリの setup. ini と latest または contrib 以下のノヾッケージを、 配布元と同じレイアウトのままダウンロードする必要があ る。この作業は、 FFFTP3 や RootFTP4 のミラー機能を 活用すれば、そう難しくはないはずだ。 いすれを選択しても、次に進むとパッケージをダウン ロードするディレクトリを指定するダイアログか表示され る。デフォルトは setup. exe を置いたディレクトリであ る。パッケージをダウンロード済みの場合には、こて配 布元のトップ・ディレクトリと対応するディレクトリ、つ まり setup. ini を置いたディレクトリを指定する。 インストール先とオプションの指定 インストーラの処理で、、 lnstall" を含むものお尺する と、次にインストールするディレクトリとインストール・ オプションを指定するダイアログカ俵示される ( 図 4 ) 。 こで尺する項目の内容を完全に理解するには、 Cygwin のマウント樹冓についての知識が必要なので、ここでは選 択する項目の概要だけを説明しておく。 ます、ここて指定したディレクトリが Cygwin のルー 3 http://www2.biglobe.ne.jp/-sota/product.html 4 http://ext.com/x ・ co. jp/rootftp/ UNIX MAGAZINE 2000.12 ト・ディレクトリになり、そのディレクトリ以下にすべて のファイルが展開される。デフォルトは C:/cygwin であ る。スペースを含むディレクトリや、ドライプのルート・ ディレクトリを指定すると警告か表示される。どちらも支 障なくインストールできるが、あまりお勧めはできない。 ちなみに僕はデフォルトのままにしている。 Default Text FiIe Type" では、 Cygwin のルート ディレクトリ以下のファイルを、テキスト (DOS) とバ イナリ (Unix) のどちらのモードで扱うかを指定する。 の指定の影響を受けるのは、どちらのモードで扱うかがコ ンパイル時に指定されていないアプリケーションだけであ る。テキストモードにするとなにかとトラブルが多くなる ので、デフォルトのバイナリモードのままにしておくこと をお勧めする。 InstaIIFor" では、スタートメニューとデスクトップ・ アイコン、および Cygw ⅲのマウントテープルを、そのホ ストを利用するすべてのユーサーに見えるように作成する か (AII) 、インストールしたユーザーだけにするか (Just こもデフォルトの、、 A Ⅱ " のままでよ (e) を尺する。 い。 Windows NT 4.0 / 2000 で、、 A Ⅱ " を選択するには Administrator のオ雀限か、必要なので、 Administrator の 権限でインストーラを実行できないときだけ、、 Just Me" を〕尺する。 プロキシーの指定と配布元の尺 インストーラの処理で DownIoad from lnternet" か 、 lnstall from lnternet" を〕尺した場合には、次にプロ キシーを指定するダイアログが表示される ( 図 5 ) 。 3 つ の選択肢の意味は見てのとおりである。、、 Use HTTP/ FTP Pr 。 xy " を選択した場合は、プロキシーのホスト名 とポート番号を指定する。、、 Use IE5 Settings" を選ぶと 結果は文字どおりになるが、実際には lnternet Explorer に添付されている wininet. dll の提供する、、ⅲ 32 ln- 77

7. UNIX MAGAZINE 2000年12月号

0 けつま 3 びっ 共同作業用ファイル 前者の共同作業用データには、 ・他の人と一赭に作業している翻訳や著述の原稿 ・他の人と共有したいスケジュールや個人情報を言当求した 文書ファイル などがあります。 CVS を使い始めたころは、この共有文 書がおもな管理対象でした。共同でイ士事をしているときに は、互いにオンタイムで作業結果を反映でき、どちらでお こなわれた変更も言当求される CVS はとてもイ甦リです。当 然ながら、これはほば CVS 本来の使い方です。 また、個人のスケジュールなどを言当求した文書ファイル も、共有しで随時更新できると助かる場合があります。仕 事や研究、あるいは私生活でも共同で作業する相手がいる 場合、スケジューラを使うほど細かくなくとも、おおまか な予定を互いに知っていると便利です。それに、日々の予 定は頻繁に変更されるので、メールなどでその旨をやりと りして各自て予定を突き合わせるよりも、 CVS を使って 予定表自体を共有したほうか確実です。メールでは、届か なかったり、、あとて処理しよう " と思いつつうつかり忘れ てしまうこともありますが、 CVS の場合はファイルの更 新と石俿忍だけですむのでそんなことは起こりません。 私の場合、渡英中に日本での代理をお願いした人が何 人かいたため、個人データを他の人に渡す必要がありまし た。引っ越して住所や電話番号が変わったときも、 CVS に入れておけば 1 つのファイルを見るだけて山斤のデータ を入手できます。電子メールを使う場合のように、必要な 情報をあとて検索したりしなくてすむわけです。 このような共有データについては、誰かがデータを更 新したときに他の人に知らせたい場合があります。たとえ ば、誰かカ噺しいファイルを追加したりファイルの内容を 書き換えたときに通知がないと、旧いファイルで竹業して しまい、あとで、、 cvs commit" したときにファイルの内 容か衝突する可能生もあるからです。 CVS リポジトリが 変更されたら電子メールで通知する仕組みがあるとイリで しよう。そのためのガ去を後半で説明します。 個人用ファイル 後者の自分専用のデータには、私の場合、 ・ 1 人で書いている仕事や研う龠文の原稿 UNIX MAGAZIN E 2000.12 ・ Web ページの原稿 文献目録や料理のレシピなどのデータファイル などがあります。個人のイ亠事や研究用の原稿に CVS を使 うのは、、、確実に保存したい " ことと、、版 ( バージョン ) 管 理をしたい " ことがおもな理由です。それに対して、文献 目録やレシピなどのデータは、、いつでもどこでもデータを 追加・参照できる " ことのほうか重要です。自分の書いた 文章だけでなく、 WWW 上でみつけたデータや人からも らったメールも、使えると思ったらテキストファイルとし て CVS リポジトリに入れてしまうのです。そうしておけ は、別の言算機を使ったときもネットワーク経由で青報を 取得していつでも参照できるし、場合によってはその場で 編集することもできます。 私は自分の Web ページもおもに CVS で管理してい ます。これはデータの保存だけが目的ではなく、 Web ペ ージの管理を楽にするための工夫でもあります。いちい ち Web サイト上のディレクトリにデータを手動で置か なくても、 CVS リポジトリに記録するだけで自動的に WWW コンテンツに反映されるようにしているのです。 これで、複数の言 t 算機で整合生を保ったまま WWW コ ンテンツを作成できるようになります。 WWW の自動更新 135 際に一屬己スクリプトを実行するように設定する。 4. CVSROOT/moduIes ファイルで、 cvs commit の こなうスクリプトを作成して、実行できる場所に置く。 3. 対象となる WWW コンテンツの、、 cvs update" をお checkout" しておく。 2. 対象となるⅥーⅥー W コンテンツのディレクトリで、、 cvs リポジトリを用意する。 ィレクトリがある ) 計算機に WWW データ用の CVS 1. HTTP サーバーとして使う (WWW コンテンツのデ 下のようになります。 ように設定すればよいのです。必要なイ 1 喋をまとめると以 の内容の変化と連動して WWW コンテンツも更新される は Web サーバーに置くデータを CVS て管理して、 CVS のイ督はみを紹介しましよう。やり方は簡単です。基本的に CVS を使って WWW コンテンツを自動更新するため

8. UNIX MAGAZINE 2000年12月号

のいすれかの形式となっていることが分かります。さきほ どのコードでは、 nextchar カ銘前の : 直を指し、 name- end が名前の茁麦の文字 ( 空文字か = ) を指すことになり ます。 長い形式のオプションは、単語本ではなくほかのオプ ションと区別できる程度に指定するだけでも認識します。 そのためのコードが次に続きます。ループは longopts と して渡された配列本に対するもので、酉改」カ鮗ったかど うかは要素の name フィールドが NULL かどうかで判 断しています。 for (p = longopts, option—index = 0 ; p¯>name ; p + + , option—index 十十 ) 具イ勺には strncmp 関数を利用して、 nextchar から nameend までカ甘旨定されたオプションの : 麪頁に一致して いるかどうかを調べています。 if ( ! strncmp (p—>name , nextchar nameend ー nextchar) ) !strncmp ( もしくは strcmp) はよく使われる形式で、 0 と同し意味になります。 strncmp の民 strncmp り値が 0 、つまり 2 つの文字列力一致した場合に真となり ます。 牛か成立した場合には、上交した文字数とオプション の長さを調べることで、オプションと完全に一致している かどうかを石忍します。 if ( (unsigned int) (nameend ー nextchar) = = (unsigned int) strlen (p->name) ) / * Exact match found. * / pfound = p ; indfound = option—index ; exact break; 完全に一致するオプションがみつかったら、そのオプ ションの情報を pfound にオタし、 exact を真にして長 い形式のオプションに関する for ループを終了します。 長さが本と一・ -- 数しなければ、オプションとの部分的な 一致があったことを意味します。この場合には、 pfound を調べ部分的に一 -- 数しているほかのオプションがないか を検査します。なければ、いちおうこのオプションを一数 刎甫として保存しておきます。 UNIX MAGAZINE 2000.12 プログラミング・テクニック else if (pfound = = NULL) indfound = option—index ; pf ound = p ; / * First nonexact match found. else ラーメッセージを出力し、オプションを正しく認識できな あったことになります。この場合には、必要であれば工 定されたオプションは複数のオプションと一・ -- 数して曖昧で act カイ為のままであり、 ambig が真になっていれば、指 ループを抜けた段階で、完全に一致したことを示す ex- 使ってループを終了するようなことはしていません。 す。そのため、すべてを調べる必要があるので、 break を のなかに完全に・ -- 一致するものカれている可能匪がありま うかもしれません。しかし、また調べていないオプション 日未であることが分かれば、それ以降の処理は不要と思 め、曖昧であるという印を付けます。 数のオプションと一致したということになります。そのた すでに pfound に代入されたものがある場合には、複 ambig = 1 ; / * Second or 1ater nonexact match found. * / かったことを示す、、 ? " を返します。 opt opt opt ind 十十 ; nextchar 十 = strlen fprintf (stderr , if (opterr) if (ambig & & ! exact) (nextchar) ; argv [ 0 ] , argv [optind] ) ; ambiguous\n" ) , ("%s: option '%s' のオプションであることを調べる必喫がない場合もありま になります。ただし、ある牛か成立するときは短い形式 す。この場合には、短い形式のオプションを調べること 問題は、正しくオプションがみつからなかったときで ションに対する引数を処理して関数を終了します。 ションがみつかったことになります。この場合には、オプ この段階で pfound が NULL でなけれは、正しくオプ す。 if ( ! long-only Ⅱ argv [optind] [ 1 ] Ⅱ my—index (optstring , *nextchar) = NULL ) 89

9. UNIX MAGAZINE 2000年12月号

〔ロロ 2 〔 t i i t リ [ 0 m p ー 2 t 2 ローカ財 ME 搭載。高度な日本語入力機能を実現した X サーノ噺登場。 ・高速 NFS 、 X サーパ・最新の XI 1 R6.3 (Broadway) 版 X ウインドウ ・ LBX(Low Bandwidth X) をサホート・ローカルー ME ・日本語キーポードマップエデイタ ・ Windows 3.1 / 95 / NT プラットフォーム対応 XoftWare v. 7. OJ の主な仕様ー X11 日 6.3 完全互換 x サーバ十主要拡 XoftWare v. 7. OJ は X11R6.3 張機能 EXDMCP, Rlogin, Telnet, rsh, 「 exe をサポート・完全 32 ビ (Broadway) 準拠の X サーバが組み込 ノトアプリケーション•Netscape Navigator & lnternet Explorer 対応ブラウサプラグイン・ LBX サポート "authority, Xhost 等をサ まれており、より強力な UNIX 接続環 ポート•DEC, 旧 M , HP , Ⅷ T を含むフォントセット・インターフェ 境を提供します。接続は WEB 閲覧用 イスが洗練されたコントロールバネル・テキスト及ひ画像のカット & ペースト•anonymous 接続をサポート・ユーサ別にアクセス可能 プラウザーを介することにより簡単に なディレクトリ設定・コンカレントウインドウマネーシャ notif, OPEN LOOK, DEC ウインドウ , HP Vue をサポート・各国対応のキ 行なえます。 LBX (Low-Bandwidth- ーホード ( PC -9800 シリーズ含む ) ■ 3 ボタンマウスサポート■日本 X) テクノロジーの導入で、 3 層に圧 語文字列を MS - windows のアプリケーション間でカット & ペースト •CascadeX のウインドウポシショニング・起動時に複数プロセス 縮されたデータが X プロトコルのネッ の中から選択可能•pseudo 、フルカラー、プレーンマスクをサポー トーフォントライプラリの提供と XI 1 R5 、 XI 1 R6 のフォントサーバ トワーク全体の消費を軽減させます。 をサポート•PCF 、 BDF から FON フォーマットへのフォントコンバ XoftWare v. 7. OJ はフォントライプラ イラ機能を含むフォントマネーシャ■状況に応したオンラインヘル プ、インダイレクト、プロードキャスト•RAPID (Resource and リ X Ⅱ R6.3 のフォントサーパを完全にサポート、 X ウインドウへの日本語入力、 Performance interactive) ・カラーマップ予約システム■ X スタイ ルのウインドウ枠・フルカラー表示サポート・描画速度の計測、描 Windows ~ UNIX 間での日本語テキストのカット & ペーストも可能。新機能のロー 画方式の最適化 MFS (Automatic Font Substitution) を提供 カル IME により、 PC / Windows 側で普段ユーザが使い馴れている日本語入力環境 血 Wa 冊聾加 J (MS-IME 、 ATOK 等 ) 使用が可能です。さらに、日本語キーポードマップエディ タは日本国内で使用されている DOSZV ・ PC-98 仕様のキーポートレイアウトを Windows 3.1 /Windows 95ZWindows NT 対応版 サポート。また、マイクロソフトの Windows プログラムマネージャをはじめ、 Motif 、 標準価格 40,000 円 ( 税別 ) ()PEN L()()K 、 DEC ウインドウ、Ⅱ P Vue などのリモートマネージャをサポート。 システム必要条件 ・ 486 または pentium を搭載した PC ・ Windows3.1 / 95 ノ NT3.51 / 4.0 アプリケーションに適したウインドウマネージャを使用することができます。 ・必要メモリー : 16MB 以上 ( 32MB 推奨 ) ・必要ディスク容量 : IOMB 以上 p ト 020 れ市 0W0 ト - ー clO ぐ k Demo page ・ 箞」三一 ツ C€N TMAMGE @ ネットマネージジャパン株式会社 んり川〃肥 東京都新宿区西新宿 2-7-1 新宿第一生命ビル 22F 〒 163-0722 Te に 03-3 3-5151 Fax : 03-5339-1675 E-MaiI : sales@netmanage.co.jp U RL : http://www.netmanage.co.jp C / 0 れ 【販売元】住友金属システム開発株式会社 Te に 03-5476-9825 / 株式会社フォーバルクリエーティ jTel: 03 ・ 5466-3560 ・製品の価格には消費税は含まれておりません。・本仕様は製品改良のため予告なく変更することがあります。 * NetManage, NetManage ロゴ , Chameleon, ChameleonNFS/X, XoftWare は米国 NetManage 社の登録商標です。その他は各社の登録商標です。 お知らせ製品紹介セミナーを毎月開催しています。詳しくはホームページを御覧くたさい。 資料請求 No. 021 ツ

10. UNIX MAGAZINE 2000年12月号

連載 /lnside Cygwin 1.1 のプレビュー・リリースを出していたころに、誰かが 「 RPM にしないのか」と提案するたびに、開発チームの 連中は「あなたがそのまとめ役をやってくれるのなら」と 言うばかりで、当時はそれを買って出る人もなく、けっき よくそのままになってしまった。とにかく当時の Cygw ⅲ の開発チームは、パッケージングとかインストーラに対す るモチベーションカ氏かったのだ。インストーラすら「欲 しかったらおまえか書け」と言い出す始末で、最初のイン ストーラはコントリピュータの手によるものだった。 それはさておき、 Cygwin は ftp://sources.redhat. com/pub/cygwin/で配布されている。こはたいへん 混んでいるので、国内のミラーサイトを紹介しておく俵 1 ) 。 Cygwin を構成する各パッケージは、配布元の latest と contrib 以下のディレクトリに配置されている。 latest には Cygwin の開発チームがサホートしているパッケー ジが、 contrib にはサポートしていないパッケージが、そ ノヾッケーージ名ーノヾーージョン . tar. gz ノヾツウ - ーージ ' - 名ーーノヾーージョン—src. tar. gz ノ、ツケージ名 /md5. sum れぞ矛びいのレイアウトて記置されている。 UNIX MAGAZINE 2000.12 インストーラの薦め にもできがよいとはいえない「勿だらたので、バージョン レクトリに用意されている。最初のインストーラはお世辞 を ZIP 形式でまとめた bootstrap. zip が、 latest ディ 使う必要がある。そのため、 gzip と tar と cygwinl. dll リック・リンクを正しく処理するために Cygw ⅲの tar を トテープルを作成するだけでもできる。このとき、シンポ トリ以下で各パッケージを gzip と tar で展開し、マウン Cygwin のインストールは、インストールするディレク いる。 めで、それ以来更新されていないものがそのままになって ときにはパッケージにバージョンが付けられなかったた くある。これは、最初に Cygwin 1.1 がリリースされた 実際には、バージョンの付いていないパッケージが数多 ルが改竄されていないかどうかを詩・ヾる際に用いる。 ある。 md5. sum は md5sum コマンドの出力で、ファイ するパッケージで、付いているほうはそのソースコードで ー src ・が付いていない tar. gz ファイルがインストール 表 1 日本の Cygwin のミラーサイト Ring server プロジェクト (http://www.ring ・ gr ・ jp/) ftp://core ・ ring ・ gr ・ jp/pub/pc/gnu-win32/ ftp://ring.etl.go ・ jp/pub/pc/gnu-win32/ ftp://ring ・ asahi-net. or. jp/pub/pc/gnu-win32/ ftp://ring.crl.go ・ jp/pub/pc/gnu-win32/ ftp://ring.astem ・ or ・ jp/pub/pc/gnu-win32/ ftp://ring ・ jah ・ ne ・ jp/pub/pc/gnu-win32/ ftp://ring.exp.fujixerox.co ・ jp/pub/pc/gnu-win32/ ftp://ring.so-net.gr ・ jp/pub/pc/gnu-win32/ など そ也 ftp://ftp.u-aizu ・ ac ・ jp/pub/gnu/gnu-win32/ ftp://ftp.jaist.ac ・ jp/cygwin/ 1.1 がリリースされた当時は自分で tar と gzip で展開す るガ去を好む人が多かった。 最近のインストーラは、パッケージのダウンロードと インストールだけでなく、インストールしたパッケージの データベースを作成して、パッケージの追加、削除、更新 の面倒もみてくれる。これからインストールするのならこ ちらを利用したほうがよいし、以、前手作業でインストール した人も、インストーラでインストールしなおすことをお 勧めする。配布元のトップ・ディレクトリにある setup. exe2 がインストーラである。 インストーラ実行時の注意事項 インストーラを実行する際には以下の点に注意してはし し ) 75 ノヾ 2 実俶ま latest/setup ・ exe で、シンポリック・リンクされている。 trator の権限か必要になる。 ントテープルが必要で、これを作成するのに Adminis- 一環境を活用するにはシステム全体に適用されるマウ でインストーラを実行したはうがよい。 Cygwin のサー Windows NT 4.0 / 2000 の士昜合には、 Administrator ・ Administrator でインストーラを実行する 必要になる ( 合計で約 130MB ) 。 約 30MB 、インストールされるファイルて約 100MB てインストールする場合には、パッケージそのもので 方の容量が必要になる。 Cygwin のパッケージをすべ ら展開するので、パッケージと展開されるファイルの両 インストーラはパッケージをすべてダウンロードしてか ・ディスクの空き容量を十分に確保する