bin - みる会図書館


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

1. UNIX MAGAZINE 2004年12月号

文房具としての 図 13 /usr/exports/root にユーザーランドをインストール # mkdir —p /usr/exports/root # cd /usr/src # . /build. sh —x install=/usr/exports/root = > build. sh command: . /build. sh —x install=/usr/exports/root = > build. sh started: Thu Aug 12 10 : 32 : 31 JST 2004 SuccessfuI installworld tO /usr/exports/root = > build. sh started: Thu Aug 12 10 : 32 : 31 JST 2004 = > build. sh ended: Thu Aug 12 10 : 40 : 27 JST 2004 Summary 0f results : build. sh command: . /build. sh —x install=/usr/exports/root build. sh started: Thu Aug 12 10 : 32 : 31 JST 2004 NO nonexistent/bin/nbmake , needs building ・ B00tstrapping nbmake MACHINE : i386 MACH I NE_ ARCH : i386 /usr/src/obj/tooldir . NetBSD—2.0Gーi386 TOOLDIR path: /usr/src/obj/destdir . i386 DESTDIR path : /usr/src/obj/releasedir RELEASEDIR path : Created /usr/src/obj/tooldir. NetBSD—2. OG—i386/bin/nbmake /usr/src/obj/tooldir . NetBSD—2. OG-i386/bin/nbmake—i386 makewrapper : Updated /usr/src/obj /tooldir. NetBSD—2. OG—i386/bin/nbmake—i386 ←インストール先を確認 SuccessfuI installworld tO /usr/exports/root build. sh started: Thu Aug 12 10 : 32 : 31 JST 2004 build. sh ended: Thu Aug 12 10 : 40 : 27 JST 2004 連載。ー ~ 08 /etc/fstab の設疋 /etc/rc. conf の設疋 /etc/localtime の作成 ・デバイスファイルの作成 1 つ目の項目は、 9 月号の「ユーザーランドのアップデー ト」の節の手順とほとんど同じです。通常の NetBSD の ューザーランドを構築するように /usr/src で build. sh を使ってユーザーランドをコンパイルしてください。 コンパイルが終ったら、 NFS で提供するディレクトリに インストールします。このディレクトリは、「 DHCP 」の 項で root-path として設疋したものです。存在しない場 合は新規に作成してください。そして、 build. sh でイン ストールします ( 図 13 ) 。インストール先のディレクトリ として root-path ( ここでは /usr/exports/root) を指 定することがポイントです。クライアントは文房具ですか ら、 X も忘れずにインストールしましよう ( インストール の手川頁は 9 月号を参照してください ) 。 なお、この手川頁では / etc に置かれる設定ファイル群は インストールされません。うつかり / etc のファイルを上 # cp /usr/mdec/pxeboot—ia32. bin /tftpboot # cp カーネルを作った場所 /netbsd /tftpboot なお、次項の手順で /usr/exports/root/usr/mdec に 新しいプートローダがインストールされます。サーバーが NetBSD ではない場合や、プートローダがうまく動かない 場合は、このプートローダを試してみてください ( 誌面の 都合上、で折り返しています ) 。 ( 次項の手順を終らせてから ) # cp /usr/exports/root/usr/mdec/=> pxeb00t-ia32. bin /tftpboot ユーザーランド そろそろ終りが見えてきました。 NFS 経由でクライア ントに提供するユーザーランドを構築しましよう。ここて 最低限やらなければならない作業は以下のとおりです。 プログラムなどのインストール /etc のインストール 121 UNIX MAGAZINE 2004. 12

2. UNIX MAGAZINE 2004年12月号

連載 /Red Hat Linux のツールたち BUILD/* RPMS/noarch/* SOURCES/* SPECS/* [root@fedora redhat] # rm -rf - [root@fedora noarch] # cd /usr/src/redhat マンドで消去してもかまいません。 ッケージ作成時の一時的なファイルは不要なので、 rm コ ルしたソース RPM パッケージのファイルや、 RPM?S こまでの作業カ墹題なく終ったら、最初にインストー [root@fedora noarch] # ロ auctex—emacs—ll .53 ー 1 . fedora. noarch. rpm [root@fedora noarch] # rpm -Uvh 疇、 auctex—emacs—ll .53 ー 1 . fedora. noarch. rpm [root@fedora noarch] # Is [root@fedora SPECS] # cd .. /RPMS/noarch . emacs ファイルー さらに、必要に応じて以下の行を書き加えます。 (require 'tex—site) とも以下の 1 行を追加します。 AtJCTVX を使うには、 ~ / AUCrIbX の基本的な使し、方 [root@fedora redhat] # ロ こすくなく 6 ControI キーと c キーを同時に押し、続いて Return (Enter) キーを C-e で IYIVfX の環境を簡単に入力することができます。 さい。基本的には、 C-cRET6 で INIVX のコマンド、 C-c ページや公式サイトのマニュアル、文献 [ 1 ] などをご覧くだ AUCTVHX の詳しい使い方については、 Emacs の lnfo 版の latex コマンドが起動されます。 ドを起動することを未します。これを省略すると、英語 IAVX ソースファイルのコンノヾイル時に、 platex コマン は、 LaTeX-version の値を、、 2 " にします ) 。最後の行は、 ように、 I 州お \2.09 形式のドキュメントを作成する場合 をおもに使う人はこの行を省略してもかまいません。私の 定しています ( デフォルト値は、、 2e " なので、 pINIVX2E 2 行目では、 p いお S2E ドキュメントを作成することを指 は、値として、、 latex ー mode " を記述すればよいでしよう。 という指定です。英文ドキュメントの作成が中心という人 んだとき、 Emacs を日本語 I 州羊洋モードに移行させる 最初の行は、拡張子が、、 . tex " であるファイルを読み込 (setq japanese—LaTeX—command—defau1t "pLaTeX") (setq LaTeX—version "2e") (setq TeX—defauIt—mode 'japanese—latex—mode) 182 押す操作をこのように表記します。 一方、 (Emacs からみて ) 外部のコマンドを利用する場 合 ( ドキュメントのコンパイルやプレビューなど ) は、 c-c C-c を入力します。たとえば、ソースファイルを変更して から保存し、 C-cC-c を入力すると、 Emacs のエコー領域 (Emacs の最下段にあり、エラーメッセージなどが表示さ れる部分 ) に以下のようなメッセージが表示され、実行す る外部コマンドに対応するキーワードの入力を促されます。 Command : (default pLaTeX) ロ このとき、 platex コマンドを実行したいのであれば pLaTeX"7 、プレビューしたければ、、 View" 、 E 卩刷する 場合は、、 Print" など、目的に応じたキーワードを入力すれ ば、それに対応した外部プログラムが実行されます ( 表示 されたデフォルト値でよければ、 Return キーを入力する だけです ) 。 どの作業をおこなうかは AUCI おがある程度自動的に 判断し、ソースファイルが DVI ファイルよりも新しい場 合はコンパイル、そうでない場合はプレビューがデフォル ト値として表示されます。 さきほど述べたように、 FC2 で日本語のい洋ドキ ュメントを扱う場合には、プレビューアとして pxdvi 、 PostScirpt 変換ツールとして pdvips を使用します。し かし、 AIJCTVX のデフォルト設疋ではそれぞれ xdvi と dvips を実行するようになっているため、そのままではコ ンパイルやプレビューがうまくおこなえません。 解決方法は 2 つあります。 1 つは、外部コマンド自体 の名前を変えてしまうことです。 pxdvi や pdvips など、 AUCTVfX から起動する外部コマンドは /usr/bin に置か れています。これらを以下のように変更すれば、コマンド 名 xdvi で pxdvi が、 dvips で pdvips が実行されます。 [root@fedora root]# cd /usr/bin [root@fedora bin] # mv xdvi xdvi. orig [root@fedora bin] # 1 Ⅱ—s pxdvi xdvi [root@fedora bin]# mv dvips dvips. orig [root@fedora bin]# ln —s pdvips dvips [root@fedora bin] # ロ システムにインストールされているファイルを変更し たくない場合は、もう 1 つの方法を使います。それは、 . emacs で japanese-LaTeX-command-default の値を日し ていない場合は、 latex コマンドに対応するキーワードである "LaTeX" カ俵示されます。 UNIX MAGAZINE 2004. 12

3. UNIX MAGAZINE 2004年12月号

連載 / シェルの魔術ー① 図 13 ティレクトリのハードリンクの数を表示してみる $ ls —la total 12 drwxr— 6 512 Oct 9 18 : 50 naoto naoto x 4 512 Oct 9 18 : 49 naoto 取 aoto x 2 512 Oct 9 18 . ・ 50 subdirectory— 1 naoto naoto drwxr 9 18 . ・ 50 subdirectory— 2 512 Oct 2 naoto naoto drwxr 9 18 : 50 x 2 512 Oct subdirectory—3 naoto naoto x 2 512 Oct 9 18 . ・ 50 subdirectory— 4 naoto naoto 図 14 ディレクトリの木構造 ードリンクの数が 6 個になっている ( ルート ) home pkg bin etc naoto rm bin na010 mya work : 親ディレクトリ サブディレクトリ 0 ロ一 ティレクトリ・ファイル 普通のファイル 登録ファイル 図 15 ルート・ティレクトリ るファイルからほかのファイル名をたどる道筋が 1 つしか ないことか特徴です。 ところで、この図の一番上のディレクトリ・ファイルに は親ディレクトリがありません。これは、、ルート・ディレ クトリ " という特別なディレクトリで、ファイルシステムの 木構造の根っこにあたります。また、親ディレクトリは自 分自身になっています ( 図 15 ) 。自分自身の名前を登録し てくれる親ディレクトリがないので、ルート・ディレクト リに対応するファイル名もありません。 ls コマンドの仕事 勘のいい皆さんなら、そろそろ ls コマンドの本当の仕事 に気づいたのではないでしようか。 示するコマンドだったのです 5 。冒頭でも説明したように ファイル名がディレクトリ・ファイルに登録されている . " から始まるファイル名は表示されませんが、 -a を付け ことを説明してきましたが、 ()l なしの ) ls コマンドの出 カ結果は、登録されているファイル名と一致しています。 5 ディレクトリ・ファイルの中身を一覧で表示する、という末で、 LiSt の じつは、 ls コマンドはディレクトリ・ファイルの中身を表 略です。 ( ルート ) bin usr 175 UNIX MAGAZINE 2004. 12

4. UNIX MAGAZINE 2004年12月号

NetBSD News 前回に引き続き、 NetBSD やその - ヒで利用できるアプリ ケーションの近況について報告する。今回は、最先端の開 発コードである NetBSD-current と、正式リリースにバ グ修正を加えた開発版の NetBSD-reIease 、および pkg- src の最近の動向について述べる。 》 NetBSD-current NetBSD-current の近況を報告する。 バージョン番号の付与方式の変更 NetBSD 2. OI から、バージョン番号の付け方か変更さ れた。原稿執筆時点の最新版には、図 1 のように NetBSD 2.99.9 というバージョン番号カ咐けられている。 バージョン番号のイ寸け方のルールは、 sys/sys/param. h に図 2 のような言杢がある。この図にもあるように、 ジョンを指定するために以下のようなフォーマットカ駛わ れている。 ー裔 m れ”を 00 これはピリオドやアルファベットを含まない数字だけの 指定方法であり、 こから 1.6.2 や 2. OH のような分かり やすいバージョン番号に変換される。フォーマットの文字 の未は以下のとおりである。 M : メジャー・ノヾージョン ・ m : マイナー・バージョン ・ 7 、 : リリース・ノヾーション ・ : ノヾッチレベル たとえば、、 102040000 " という表記は、メジャー・バー ジョンが 10 、マイナー・バージョンが 20 、リリース・バ ージョンが 4 、パッチレベルが 00 となり、 NetBSD1.2D を表すことになる ( リリース・バージョンの 4 は、アルフ ァベットの先頭から 4 番目の D に変換される ) 。 新しいバージョンイ寸与方式では、このフォーマット自体 は変えず、その解釈方法を変更することで対応している。 まず、 NetBSD-current のリリース・バージョンを表 宮地利幸 152 していた r には、かならず 0 ( ゼロ ) が指定されるようにな った。さらに、 NetBSD-current の場合には、マイナー バージョンに 99 を指定することになっている。 この変更が実施されるきっかけとなったのは、 current- users@netbsd.org で 2004 年 9 月 17 日から約 1 週間に わたって続いた論議である。具体的には、 NetBSD 1.6A は NetBSD 1.6. れは任意の数字 ) より新しくみえるが、 NetBSD 2. OG は NetBSD 2.1 より旧く感じてしまい、 どちらカ噺しいのカ吩かりにくいのではないかという指摘 カ緒となった。 そこから始まった論議の結果、 10 月 1 日からこの変更 カ芍直用され、 NetBSD 200080000 ( 2. OH ) の次のノヾージ ョンは 200090000 ( 2. OI ) ではなく、 299000900 ( 2.99. 9 ) が指定されている。 /bin/sh にバグ 10 月 6 日に、 current の /bin/sh にバグカ嬲、れ込んで いたことか報告された。このバグは bin/sh/var. c のバー ジョン 1.35 でみつかり、サプシェルを呼び出した際に変数 が引き継がれないというものである。すでに修正カ功日えら れており、新しいバージョンに更新すればこの問題を回避 できる。 現在使用している / b ⅲ / sh のバージョンは以下のコマン ドで確認できる。 $ ident /bin/sh ー grep var ipfilter のソースコードの移動 10 月 1 日に、 ipfilter のソースコードが /sys/netinet か ら dist/sys/ipf/netinet に移された。この変更は Make- file の依存関係に景彡響するため、正しくユーザーランドを構 築するには、下記のディレクトリで make cleandir を実 行する必要がある。 ・ kdump ・ truss ・ rescue ・ ipf ・ ftp-proxy iyonix port を〕自加 10 月 15 日に、 ARM べースの PC である IYONIX pc 用の port として iyonix が追加された。 NetBSD で UNIX MAGAZINE 2004. 12

5. UNIX MAGAZINE 2004年12月号

連載 / ネットワークとセキュリティ /etc/crontab に〕自加する言綻 図 3 30 図 4 6 * * * て 00t oinkmaster ・ p1 —q ー 0 /usr/local/etc/snort/rules —b /usr/local/etc/snort/backup , & & kill —HUP ' /sbin/pidof snort ( ー logger -t oinkmaster ルールの更辛寺にメールで通知するための言 30 6 * * * TMP= ' mktemp /tmp/oinkmaster. XXXXXXXX ' & & if [ —s $TMP ] ; then mail —s "oinkmaster—report" root@example . com く $TMP; fi ; rm $TMP) , (oinkmaster. pl ー 0 /usr/local/etc/snort/rules/ -b /usr/local/etc/snort/backup -q > $TMP 2 > & 1 ; & & kill —HUP ' /sbin/pidof snort ( bin がない場合には、以下のように追加してください。 PATH=/sbin : /bin : /usr/sbin : /usr/bin=> : /usr/local/bin また、 Linux 以外の UNIX 系 OS の場合、 k 土 11 —HUP ( /sbin/pidof snort ' の部分を、 kill -HUP ps ax ー grep snort ー grep —v grep ー awk '{print $ 1 } ) ' に読み替えてください。 この例は毎朝 6 時半に root 権限で oinkmaster. pl を 実行し、 Snort を再起動するという設疋です。 oinkmaster に引数一 q を指定すると、ルールの更新がおこなわれない場 合には出力をしません。最後に、 logger コマンドを利用し て、 oinkmaster の出力が syslog に送信されるようにし ています。 ルールを更新すると同時に、メールで更新内容の通知を おこなうには、 /etc/crontab ファイルの末尾に図 4 の行 を追加します。 この例では、変更内容をテンボラリ・ファイルに書き出 し、その内容を oinkmaster-report という Subject で root@example.com 宛にメールで通知しています。 サードバーティのルールセット Snort は、シグネチャを言することで、アタックの検 知以外にも、任意のネットワーク上のトラフィックを検知 できます。ここでは、 Snort 標準のルールセット以外に 役立つルールセットを公開している Web サイトを紹介し UNIX MAGAZINE 2004. 12 ・ http://www.bleedingsnort.com BIeeding Snort ます。 Bleeding Snort では、以下のようなルールを提供して います。 ・ bleeding-malware. rules スパイウェアやアドウェアなど、 malware と呼ばれる ツールの動作にともなう通信を検知します。これらのソ フトウェアは、 Windows 用のフリー・ソフトウェアに 添付されたり、 ActiveX コントロールとしてインストー ルされるなど、利用者が知らないうちにインストールさ れるケースが多くみられます。また、画面に広告を表示 したり、ブックマークを書き換えたり、 Web サイトの 訪問履歴などの個人情報を外部に漏洩したりするほか、 Windows の動作を不安定にすることもあります。この ルールを利用した Snort で、 LAN の内部から外部への 通信を監視させれば、 malware か動作している LAN 内 のマシンを特定するのに役立つでしよう。 ・ bleeding-virus. rules 電子メールを通じて感染するウイルスや、メールに添付 された不審なファイルの拡張子 (. exe や . pif など ) を検 知するルールです。対応しているウイルスの数は多くあ りませんが、 Snort 標準のルールと併用することで、よ り多くのウイルスを検知できるでしよう。 ・ bleeding-policy. rules ポリシーとしてネットワーク管理者が禁止している行為 をおこなっていると考えられるユーザーの行動を検知す るルールです。検知対象には、 . exe ファイルのダウンロ ード、 HotmaiI や lnstant Messenger の利用、 HTTP を利用したトンネリングなどが含まれています。 ・ bleeding-p2p. rules P2P クライアントの利用にともなう通信の検知をおこ なうルールです。 KaZaA や eDonkey 、 BitTorrent な どの海外でよく利用されている P2P クライアントの通 信が対象となっています。なお、国内でよく利用されて 71

6. UNIX MAGAZINE 2004年12月号

連載 /Red Hat Linux のツールたち [root@fedora root]# ls ー 1 /usr/bin/{platex,ptex} 図 1 platex は ptex へのシンポリック・リンク lrwxrwxrwx 1 root て 00t 4 6 月 9 23 : 09 /usr/bin/platex ー > ptex —rwxr-xr-x 1 root て 00t 307100 3 月 26 2004 /usr/bin/ptex [root@fedora root]# ーロ 図 2 pIatex209 用フォーマット・ファイルの作成 [root@fedora ptex]# cd pIatex209 [root@fedora p1atex209] # iniptex jlplain. tex \\dump Hyphenation trie 0f length 6075 has 181 ops out 0f 35111181 for language 0 14 hyphenation exceptions 23939 words of font info for 90 preloaded fonts \font\tencircw=IcircIew10 \font\tencirc=IcircIe10 bibliography , floats , footnotes , initial , output , debugging) counters, hacks , errors , par, spacing, control, files, env. counters, LaTeX Version 2 .09 く 7 Dec 1989 > ( . /latex . tex macros , math definitions , hyphenation ( . /hyphen. tex) ( . /j1fonts2. tex) ( . /jlplain. tex Pre10ading the plain format : codes , registers , parameters , This is pTeX, Version 3 .14159 ー p3.1.3 (euc) (Web2C 7.4.5 ) (INITEX) NO pages 0f output . Transcript written 0 Ⅱ jlplain. 10g ・ [root@fedora p1atex209] # ls jlplain. * jlplain. fmt jlplain ・ 10g jlplain. tex [root@fedora p1atex209] # ロ イルを展開します。すると、 pIatex209 というディレクト リカ盲乍成され、その下に platex209 用のスタイルファイル などがコピーされます ( 誌面の都合上、で折り返してい ます。以下同様 ) 。 [root@fedora tmp] # cd /usr/share/texmf/ptex [root@fedora ptex] # ls —F plain/ platex/ [root@fedora ptex] # tar zxf - /tmp/p1atex209. tar ・ gz [root@fedora ptex] # IS —F plain/ platex/ p1atex209/ [root@fedora ptex] # ロ 次に、 platex209 ディレクトリに移動して iniptex コマ ンドを実行し、マクロ定義ファイルである jlpla ⅲ . tex から フォーマット・ファイル (jlplain. fmt) を作成します ( 図 最後に、作成されたフォーマット・ファイルを / usr / share/texmf/web2c ディレクトリに platex209. fmt" という名前でコピーし、 mktexlsr コマンド 4 を実行すれば 4 /usr/share/texmf ディレクトリ以下のファイルを高速に検索するため のデータベースを作成するコマンドです。 178 作業は完了です。 [root@fedora pIatex209] # mv jlplain. fmt 、 /usr/share/texmf/web2c/p1atex209. fmt [root@fedora pIatex209] # /usr/bin/mktexlsr mktexlsr: Updating /usr/share/texmf/1s—R. mktexlsr: Updating /var/1ib/texmf/1s¯R. mktexlsr: Done . [root@fedora p1atex209] # 」 これで、 platex209 コマンドで旧バージョンの IöTVfX ドキュメントがコンパイルできるようになります。 [root@fedora root] # p1atex209 f00 . tex This is pTeX, Version 3.14159 ー p3 . 1 . 3 (euc) (Web2C 7 . 4 . 5 ) ( . /f00 . tex LaTeX Version 2 .09 く 7 Dec 1989 > (/usr/share/texmf/ptex/p1atex209/jartic1e. sty Document Sty1e 'jarticle ' く 18 Dec 88 > . (/usr/share/texmf/ptex/p1atex209/jart11. sty) ) No file f00 . aux . [ 1 ] ( . /foo . aux) ) Output written 0 Ⅱ f00. dvi ( 1 page , 264 bytes) . Transcript written on f00 .10g ・ [root@fedora て 00t ] # ロ ただし、 こまでに説明した方法では入手したアーカイ UNIX MAGAZINE 2004. 12

7. UNIX MAGAZINE 2004年12月号

連載 /Red Hat Linux のツールたち のように言当丕します。 \begin{center} この文字列をセンタリングします \end{center} UNIX MAGAZ 工 NE 2004. 12 5 http://ftp.gnu ・ org/pub/gnu/auctex/ Croot@fedora tmp]# ロ auctex—ll . 53 ー 1 . fedora. src . rpm [root@fedora tmp] # rpm -ivh 疇 , rpm コマンドを、 1. ソース RPM パッケージのインストール いた場合には、以下のようにしてインストールします。 ソース RPM パッケージをダウンロードして / tmp に置 簡単です。 src. rpm) も公開されているため、インストールはいたって 用のソース RPM パッケージ (auctex-ll. 53-1. fedora. さいわい、 AtJCq おのダウンロード・サイト 5 で、 FC2 で、執筆時の最新バージョンは 11.53 です。 ・ http://www.gnu ・ org/software/auctex AUCTVYX の公式サイトは、 AUC のインストール ます。 付属していないため、自分でインストールする必要があり で、一度使い始めると手放せません。ただし、 FC2 には パイル、プレビューなどが簡単なキー操作でおこなえるの 原稿を書くときも使っています。 WIVX 命令の入力やコン AUCTbX だからという単純な理由からです ) 、この連載の 私が愛用しているのは AUCTVX で ( 最初に使ったのが てくれるものです。 書いているときに INIbX 命令の入力補助などをおこなっ (Elisp) パッケージで、 Emacs で IAVfX ドキュメントを YaTeX などがあります。これらはいすれも Emacs Lisp は cmutex 、最近よく使われるものとしては、 AI-JCIVX や るときに役立つツールがいくつか公開されています。古く これに対し、 Emacs 上で 141VfX ドキュメントを作成す く感じられるかもしれません。 慣れた人には、 INIVX 命令をいちいち入力するのが煩わし 万事がこの調子なので、いわゆるワープロソフトを使い のように実行すると、ソース RPM パッケージが / usr / src/redhat 以下にインストールされます。 2. RPM パッケージの作成 RPM パッケージを作成するための SPEC ファイル (auctex. spec) が /usr/src/redhat/SPECS ディレク トリにコピーされるので、ここに移動して rpmbuild コ マンドを以下のように実行し、 RPM パッケージを作成 します。 [root@fedora tmp] # cd /usr/src/redhat/SPECS [root@fedora SPECS] # 1s auctex . [root@fedora SPECS] # rpmbuild —bb auctex. spec Executing (%prep) : /bin/sh —e /var/tmp/rpm—tmp . 11105 + /usr/bin/gzip -dc /usr/src/redhat/SOURCES/ + rm -rf auctex—ll . 53 + cd /usr/src/redhat/BUILD + unset DISPLAY + export LANG + LANG=C + cd /usr/src/redhat/BUILD + umask 022 181 して rpm コマンドを実行し、インストールします。 クトリに置かれます。そこで、このディレクトリに移動 ッケージは /usr/src/redhat/RPMS/noarch ディレ AUCYIbX の場合、 rpmbuild で作成された RPM パ 3. RPM パッケージのインストール Emacs のみに対応したものカ成されます。 この : 大態で AtJCYIVfX の RPM パッケージを作ると、 とえば、私は XEmacs をインストールしていませんが、 Elisp ファイルが RPM パッケージに追加されます。た たは XEmacs) がチェックされ、それぞれに対応する ステムにインストールされているエデイタ (Emacs ま パッケージ作成時の c 。 nfigure スクリプトにより、シ [root@fedora SPECS] # ロ + exit 0 十 rm —rf /var/tmp/auctex—root + cd auctex—ll . 53 + cd /usr/src/redhat/BUILD + umask 022 .26418 Executing (%clean) : /bin/sh —e /var/tmp/rpm—tmp —emacs—ll . 53 ー 1 . fedora. noarch. rpm 書き込み中 : /usr/src/redhat/RPMS/noarch/auctex 十—xvvf auctex—ll .53 . tar ・ gz

8. UNIX MAGAZINE 2004年12月号

連載 /Red Hat Linux のツールたち Croot@fedora SPECS]# rpm —Uvh .. /RPMS/i386/tgif—QPL—4.1.43 ー 1 . i386. rpm 十 exit 0 + rm —rf /tmp/tgif—QPL-4.1.43 ーて 00t + ' [ ) ーⅡ /tmp/tgif—QPL-4.1.43 ーて 00t —a /tmp/tgif¯QPL¯4.1.43 ー root ' ! = Executing (%clean) : /bin/sh —e /var/tmp/rpm-tmp. 34579 書き込み中 : /usr/src/redhat/RPMS/i386/tgif-QPL-debuginf0-4.1.43 ー 1 . i386 . rpm 書き込み中 : /usr/src/redhat/RPMS/i386/tgif-QPL-4.1.43 ー 1 . i386. rpm Checking for unpackaged file(s) : /usr/lib/rpm/check-files /tmp/tgif¯QPL¯4.1.43 ー root Processing files : tgif—QPL¯debuginfo¯4.1.43 ー 1 + /usr/bin/gzip -dc /usr/src/redhat/SOURCES/tgif—QPL—4.1.43. ta て・ gz + tar —xvvf + rm —rf tgif—QPL-4.1.43 + cd /usr/src/redhat/BUILD Executing(%prep) : /bin/sh -e /var/tmp/rpm-tmp. 63336 [root@fedora SPECS] # rpmbuild -bb tgif . spec 図 8 Tgif の RPM パッケージ作成とインストール [root@fedora SPECS] # ロ 図 9 Tgif の初其月画面 ( インストール直後 ) い師 ( 100 % ) “ Fiie ~ モ叩…↓叫 t A 98 所 0 COI い N ! 9 ー SP は H ロれュ 6 まねし 十 0 イ ( 。纒駐 >ZNONE Tg V 部 sion 4.1 (patchlevel 43 - Tgif ゞ Copynght(C) 2001-2003. W 曲 貧 ロ 0 0 0 R gcnone) 巴ー Ma ⅲ Menu ( no 能 ) カモードにも移行できません。 UN 工 X MAGAZINE 2004.12 し、、、 Tgif. InitialFont" でデフォルトのフォントを Ryu- 使用する日本語フォント ( 明朝およびゴシック体 ) を指定 SquareDoubIeByteFonts" から始まる 10 行で Tgif か リソースの詳しい記述方法は省略しますが、、、 Tgif. ルの末尾に追加します ) 。 ます ( すでに . Xresources ファイルがある場合は、ファイ というファイルを作成し、図 10 のような設定行を追加し ります。ユーザーのホーム・ディレクトリに . Xresources 日本語を扱うには、リソースを適切に設定する必要があ min ( 明朝体 ) に誌定しています。その下の 2 行では、明朝 体を選択した場合には、、明 " 、ゴシック体の場合には、、角 " がフォントの種類を示すアイコンとして表示されるように しています。 最後の 2 行では、日本語入力の方法を指定しています。 、 Tgif. DoubIeByteInputMethod" の行では、日本語入 力に XIM サーバーを利用すると指定しています ( 私の場 合は kinput2 を使うことになります ) 。、、 Tgif. Preedit- Type " は入力スタイルを意味し、図 10 のように、、 over- thespot" という値を指定すると、文字を入力するときに現 れるカーソル上に変換文字列が表示されます。 なお、図 10 の設定は日本語 ( 、、明 " と、、角 " ) を含むた め、日本語 EUC コードで保存する必要があります 9 。 ~/. xresources ファイルは X の起動時に自動的に読み 込まれるので、 x を再起動すれば追加した言定が X サーバ ーに反映されます ( 再起動するのが面倒なら、コマンド行 で、、 xrdb —merge ~ /. Xresources" を実行して即座に反 映させることもできます ) 。 こで Tgif を起動すると、フォントの種類を表すアイコ ンが、、明 " 、つまり明朝体になっていることが分かります。 ウインドウ左側の、、 T " をクリックして文字入力モードに移 行し、さらに Shift キーを押しながらスペースキーを押す 9 JIS や Shift-JIS で保存すると、フォントの種類を表すアイコンカ啌白に なってしまいます。 185

9. UNIX MAGAZINE 2004年12月号

文房具としての 図 4 サーバーのカーネルに要なオプション NF S SERVER # Network Fi1e System server options bpfilter 8 # BerkeIey packet filter pseudo—device 図 5 DHCP サーバーの言 ( 基本言又疋とディスクレス文房具をキするサブネットの宣言 ) ddns—update—style none ; ddns—updates Off ; subnet 192.168.11.0 netmask 255 .255 . 255 . 0 { 連載 ~ 08 ←動的に設定したい端末がある場合はその設定を書く ( とくにない場合は空のままでよい ) 図 6 DHCP サーバーの言綻 ( ディスクレス文房具のための共通言聢 ) host diskless—stationery { hardware ethernet 00 : 0c : 29 : 5b : ac : bf ; fixed-address 192 .168 . 11 . 3 ; option subnet—mask 255 . 255 .255 . 0 ; option broadcast—address 192 .168 . 11 . 255 ; option routers 192 . 168.11.1 ; option host—name "diskless—stationery ← MAC アドレスが識別子になる ここには図 7 の設定が入る 図 7 DHCP サーバーの言綻 (PXE コードからのリクエストに対する部分 ) if substring (option vendor—class¯identifier, 0 , 9 ) "PXEC1ient " { filename 'pxeb00t—ia32. bin" ←図 8 の設定が続く } elsif 場合は、そのまま次のステップに進んでください。 のままにしています。 次に、ディスクレス文房具のためのエントリを追加しま DHCP す。 MAC アドレスを識別子として固定の値を設定します 次に DHCP サーバーの設定をしましよう。 NetBSD ( 図 6 ) 。クライアントからの DHCP リクエストは、図 3 の場合は ISC の DHCP5 カ票準でノヾンドルされています。 では 2 回になっていますが、カーネルか起動したあと ( フ 9 月号で紹介した dhclient も、 ISC DHCP の一部とし ァイルシステムをマウントする直前 ) にアドレスを取得し て一一緒に配布されています。ここで利用する DHCP サー にいくため、実際には合計で 3 回発生します図 6 はこの 3 回のリクストに共通する部分で、 IP アレスやサプネ バーは (/usr/sbin/)dhcpd というプログラムです。設疋 ファイルは /etc/dhcpd. conf で、以下の設疋はこのファ ットマスクなどの定になります。 イルにすることになります。 続いて、上記の 3 回の各リクエストに対応する言定をし 最初に、基本的な設定とサプネットの宣言をします ( 図 ます。最初のリクエストは、 PC の電源を入れてネットワ 5 ) 。冒頭の 2 行は DDNS に関する設定ですが、とりあ ーク・プートの順番がまわってきたあと、 PXE のコード えずはおまじないと思ってください。サプネットの宣言で から送信されるものでした。そのときは、 vendor-class- は、動的に ( 固定ではない ) 誌定を取得したいホストがある identifier に、、 PXEClient" から始まる文字列が含まれて 場合には、どの範囲から IP アドレスを割り当てるかなど いるのでしたね。このリクエストに対しては、 TFTP サー を指定します。ここではそのようなホストはないので、空 バーのアドレス ( 192.168.11.2 ) と取得すべきファイル名 (pxebootäa32. bin) を返します ( 図 7 ) 。ただし、図 7 で 5 http://www.isc.org/sw/dhcp/ 118 UNIX MAGAZ 工 NE 2004. 12

10. UNIX MAGAZINE 2004年12月号

集 Open Cygmn WindowHere 図 6 背後にコマンド・プロンプトのウインドウが こで % L をダブルクオートで囲んでいるのは、空白を 含むフォルダ名を正しく扱うためである。 方イル一集 ノ崢 , : ヘルフ /etc/profile の調整 cygterm. cfg で SHELL を以下のように設疋している 場合は、もうすこし作業が必要である。 SHELL = /bin/bash ——login —i -login オプションを付けて起動する /bin/bash に と、 /etc/profile を読み込んで実行する。 /etc/profile 、、 cd ” $HOME ” " の 1 行があるので、 の末尾には、 2 行目全体を、、” " ( ダブルクオート ) で囲んでいるのは、 れを削除する必要がある。 cygterm. cfg の、、 SHELL パスカ啌白文字を含んでいるからであるにの場合、ダブ " の行から一一 log ⅲを削除する方法も考えられるが、 ルクオートで囲まないとエラーになる ) 。そして、 /etc/profile での設定は有用なものが多いので、 Cyg- HKEY_CLASSES_ROOT*Directory*she11*cygwin*=> Term から Bash か起動される際、すなわち Cygwin 以外 C ommand の世界から CygTerm が起動さ楸そこからさらに Bash の既定の値として以下を登録したとしよう。 か起動される場合は --login があるほうが便利だろう。 C : *cygwin*open—cygwin—here . bat "%L" 以上の作業で、フォルダのコンテクスト・メニューから こで、フォルダのコンテクスト・メニューから、 Open Open Cygwin Window Here" を選ぶことで、拓疋し Cygwin Window Here" を選ぶと図 6 のようになる。 たフォルダをカレント・ディレクトリとするシェルが起動 CygTerm のウインドウが開いているあいだ、コマンド・ できるようになった。 プロンプトのウインドウも残ってしまうのである。 ディスクドライブの右クリックでも コマンド・プロンプトを表示させない Windows で、、マイコンピュータ " を開くと、ハード コマンド・プロンプトのウインドウが表示されないよ ディスク・ドライプやリムーバブル・ドライプか表示され うにするには、コマンド・プロンプトを必要としないよう る。 CmdHere がインストールされていると、これらのド に CygTerm 起動プログラムを書けばよい。 C 十十をはじ ライプのコンテクスト・メニューにも、 OpenCommand め、どんなプログラミング言語で書いてもよいが、たとえ Window Here" が表示される。これは、以下のレジスト ば VBScript で書くと以下のようになる。 リキーで制御されている。 Option Exp1icit HKEY_CLASSES_ROOT*Drive*she11*cmd Dim obj Arg Set obj Arg = WScript . Arguments したがって、ドライプについても、 Open Cygwin Win- Dim objSh Set ObjSh = CreateObject("WScript . She11' dow Here" を有効にしたければ、下記のレジストリキーに 0bjSh. CurrentDirectory = 0bjArg(O) 登録する必要がある。 obj Sh. Run " 旧℃ : *Program Fi1es*cygterm=> *cygterm. exe HKEY_CLASSES_ROOT*Drive*she11*cygwin これを、 C ・ *cygwin*open-cygwin-here. vbs という 残る課題 名前で保存したとしよう。この場合、 HKEY-CLASSES- ROOT*Directory*shell*cygwin*command の既定 の値として下記の値を登録する。 wscript . exe C :*cygwin*open—cygwin—here. vbs 第朝ー 当市フ / 0 第」。自婦長 d に碑土、言 127 朝 01 こまでの作業により、 Open Command Window Here" と同等の、、 Open Cygwin Window Here" が実現 できた。これで万事めでたしかというと、私にとってはま 87 UN 工 X MAGAZINE 2004. 12