usr - みる会図書館


検索対象: BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー
62件見つかりました。

1. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

釼加 B 訓版ー の登場 マリスト 2 MakefiIe. PL の一部 まとめ /linux/i) { if($AO = s/ltcl/lsybtcl/; $lib—string Linux 版 sybase ASE 11.0.3.3 の FreeBSD 用配布を FreeB アントである isql で接続するのは 3.4 ー RELEASE 、 4.1 ー RELEASE 、 5.0 ー cu ent すべてで特に問題がなかった。 一方、 FreeBSD native なクライアントライプラリを利用 したプログラムの場合、 FreeBSD 4. I-RELEASE や 5.0ー のだが、 DBD ー sybase ではここでコケる可能性がある。 current ではサーバーとクライアントが同じホストの場合に FreeBSD 4. I-RELEASE では、画面 5 のようになって、う 限ってうまく接続できないことがわかった。クライアント まく動いてくれないのだ。 FreeBSD 3.4-RELEASE ではこの とサーバーが同一ホストになければ問題もないため、たと 問題は起きず、 t/fail のテストだけ失敗するのだが、 t/fail で えばデータベースサーバーには solaris を、 web サーバ の失敗は、 ASE のバージョンが 11.0.3.3 の場合にはどの OS は FreeBSD を、といった構成で CGI などからデータベース でも起こるそうで、特に問題だということではないよう にアクセスするといったことは問題ないのではないかと思 さて、 4. I-RELEASE ではうまく動かないのか ? という なお、 FreeBSD 4. I-RELEASE や 5.0-current での問題だ と問題はそう単純でもなさそうなことがわかった。 make が、現在さらに調べているが、どうも FreeBSD 側の問題の test の際に別のホストで動いている ASE に接続するように ような気もしてきたところだ。さらに調べて解決できれば、 してみたところ、画面 6 のように、まったく問題なかった と思っている。 のだ ( この例は相手が Linux で動いている ASE 1L9.2 のサ ーバーなので t/fa ⅱも失敗しない ) 。いろいろと調べた結果、 表 1 、 2 のようなことがわかった。 つまり、 4. I-RELEASE のときのみ、 server と CIient が同 ーのホストだとうまくいかないのだ。この現象は /usr/local/ sybase / sample 以下のサンプルを用いた場合にも確認でき、 5.0- cu 皿 nt でも同じであった。 マリスト 3 加えるコード if ( 0 = ~ /freebsd/i) { s/ltcl/lsybtcl/ ; $lib—string 表 1 Se Ⅳ e 「 / C ⅱ ent がそれそれ別のホストの場合 Server OS Client OS DBD-Sybase の make test 4. I-RELEASE 3.4-RELEASE 4.1 -RELEASE Linux 3.4-RELEASE 3.4-RELEASE 4.1 -RELEASE 〇〇〇〇〇〇〇 3.4-RELEASE 4. I-RELEASE Linux 4. I-RELEASE Linux 3.4-RELEASE 4. I-RELEASE 表 2 Server/CIient が同一のホストの場合 OS DBD-Sybase の make test 4. I-RELEASE 3.4-RELEASE 〇 $ make test PERL_DL_NONLAZY=I /usr/bin/perl —lblib/arch ーエ blib/lib —I/usr/1ibdata/per1/5.00503 / mach —l/usr/libdata/perl/ Test : :Harness qw(&runtests $verbose) ; $verbose=0; runtests @ARGV;' t/*. t 5 .00503 —e 'use t/autocommit . t/base . t/fail . t/login ・ t/main. t/place. A11 tests successful . Fi1es=6, Tests=48, 0 0 0 0 0 0 1 .52 CPU) 2 wallclock secs ( 1 .38 cusr + 0.14 csys 画面 6 問題なく動作する 783 BSD magazine 2000 No. 5

2. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

釼加 s に版 の登場 $ ps -xaw 0 : 00.73 /usr/local/sybase/bin/dataserver —d/usr/local/sybase/devices/master. dat —sSYBASE 23632 ? ? Ss e/usr/local/sybase/logs/error —i/usr/local/sybase 23630 p0 1 23631 p0 1 23637 p0 1 23638 p0 工 23639 p0 1 0 : 00.02 sh -c /usr/10ca1/sybase/insta11/RUN-SYBASE > /usr/local/sybase/init/logs/tmp 2 > & 1 (bash) 0 : 00.02 /bin/sh /usr/10ca1/sybase/instaII/RUN—SYBASE (bash) 0 : 00.02 sh -c /usr/10ca1/sybase/insta11/RUN-SYB-BACKUP > /usr/local/sybase/init/logs/tmp 2 > & 1 (bash) 0 : 00.02 /bin/sh /usr/10ca1/sybase/instaII/RUN—SYB—BACKUP (bash) 0 : 00.13 /usr/local/sybase/bin/backupserver -SSYB_BACKUP -e/usr/local/sybase/logs/backup l/usr/local/sybase/interfaces —M/usr/10ca1/sybase/bin/sybmu1tbuf —Lj apanese —Jeucj is c/usr/local/sybase/backup-tape ・ cfg 画面 3 - U オプションでは sybase 上でのユーザー名を指定するの だが、インストール直後には sa という管理者しか登録され ていないので sa を指定する。パスワードを一 p に続けて書く のだが、インストール直後はパスワードに何も設定されて いないので空文字列 ( つまり何も書かない ) を指定す る。 - J オプションでは文字コードを指定するのだが、これ を指定することにより、画面 4 のようにメッセージが日本 語で出力されるようになる。 FreeBSD nat ⅳ e なクライアントライブラリを 使ってみる 上のように、 FreeBSD 上で Linux 用のサーバーを起動し、 Linux 用のクライアントである isql を用いてサーバーと通信 することは問題なさそうだ。今度は、 FreeBSD native なラ 1 > sp—help 2 > go Name Object—type sysusers ユーザ・テーブル spt—datatype—info— ユーザ・テーブル spt—datatype—info ユーザ・テーブル spt—committab ext システム・テーブル Owner dbo dbo dbo dbo Length Nu11s Defau1t-name イプラリを使ってみることにしよう。結論からさきに言う と、少し問題が見つかった (FreeBSD 側の問題かもしれな い ) のだが、場合によっては問題なく使えそうな感触を得 0 FreeBSD native なライプラリを使うーっの方法は自分で プログラムを書くことだが、 sybase におけるプログラミン グについてそれなりに知っておかないといきなりは無理だ ろう。ん sr/local/sybase/sample に簡単なサンプルプログラム があるので、それを make して使ってみるのもいいのだが、 こでは perl から使ってみることにする。 sybase のクライ アントライプラリを利用して ASE にアクセスするための perl モジュールには sybperl と DBD-Sybase があるが、筆者 は DBD-Sybase を使ってみた ( 5.0- cu ent では標準の perl が 5.6.0 になったため必要な DBD - sybase が必要とするモジュ Ru1e_name Us er—t ype (return status 1 > Storage—type 画面 4 is のメッセージ BSD magazine 2000 No. 5 787

3. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

る。 K*BUG サーバーでは tarball を展開 して build しているが、 OpenBSD 2.7 の packages には PostgreSQL 6.5.3 も存在す るので、そちらを利用しても良い。 packages を利用した場合、 /usr/local/ share/doc/pgsql/README. OpenBSD を 熟読すること ( 図 1 ) 。 通常 PostgreSQL の管理コマンド (initdb など ) を実行するためには以下 の環境変数の設定が必要である。 はじめてインストールしたとき : OpenBSD 環境での PostgreSQL の使用 システム変数 PATH=/usr/10ca1/pgsq1/bin : /bin usr/bin USER=pgsq1 LO GNAME=pgs ql SHELL=/bin/sh HOME=/var/pgsq1 PostgreSQL 変数 PGDATA=/var/pgsq1/data PGLIB=/usr/10ca1/pgsq1/1ib OpenBSD packages 版の PostgreSQL では、これらを shell の startup script から は設定しない。かわりに pgwrap とい う wrapper プログラムを使用する ( 図 2 ) 。 pgwrap を実行するには r 。。 t 権限が 必要だ。 Apache と php 最近は、ま $DSO 機能付きの Apache を作っておき、 php を Apache の DSO と して bu ⅱ d するのが一般的 ( というより 1 . 2 . PostgreSQL の user と group を作成する。 —home /var —noconfig —group pgsql —she11 Ⅱ 010gi Ⅱ "PostgreSQL pseudo—user" " * " \ # adduser —batch pgsql ァータベースを初期化する。 # insta11 —d ー 0 pgsql —g pgsql # insta11 —d ー 0 pgsql # pgwrap initdb -g pgsql -m 755 /var/pgsql -m 700 /var/pgsql/data upgrade の際には /usr/10ca1/share/doc/pgsq1/INSTALL を参照のこと。 PostgreSQL の全機能を使用するには kernel が SYSVMSG 、 SYSVSEM そして SYSVSHM オプションと共にコンパイルされていなければならない。 manual page を使用したい場合は /usr/local/pgsql/man を ${MANPATH} へ追加する。 shlib-dirs="/usr/local/pgsql/lib" /etc/rc. conf の共有ライブラリバス指定に / usr / 10Ca1 / pgsql / lib を加えなければならない・ f i echo ーⅡー pgsql' /usr/local/bin/pgwrap ー 0 /var/pgsql/log postmaster -i -S ー 0 -F if [ -x /usr/local/bin/pgwrap —a —x /usr/local/pgsql/bin/postmaster ] ; then システム起動時に PostgreSQL を自動的に始動させたい場合は、以下の行を / etc / て c. 10Ca1 に記述する : pgwrap [ ー司 [ ー 0 file] cmd [arg . ・ . ] 図 1 /usr/local/share/doc/pgsql/README. OpenBSD 抄訳 ( 以下略 ) GENERIC kernel はこれらのオプションを含んでいる。 ーⅡ cmd 前方に /usr/local/pgsql/bin を付加しない。 stdout & atderr を file にリダイレクトする。 (pgsql user もしくは group に書込権限が必要。 ) . ー 0 file 図 2 pgwrap の文法 BSD magazine 2000 NO. 5

4. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

$ sudO make install = > [mktree : Creating Apache installation tree] . /src/helpers/mkdir. sh /usr/local/apache/bin mkdir /usr/local/apache mkdir /usr/local/apache/bin . /src/helpers/mkdir. sh /usr/local/apache/bin http ://www.apache.org/ . /src/helpers/install. sh —c /usr/local/apache/conf/magic [config] —m 644 . /conf/magic You now have successfully built and installed the Apache 1 . 3 HTTP server. TO verify that Apache actually works correctly you now should first check the (initially created or preserved) configuration files /usr/local/apache/conf/httpd. conf and then you should be able tO immediately fire up /usr/local/apache/bin/apachectl start Apache the first time by running : Thanks for using Apache . マリスト 1 BSD / OS 用のレイアウト The Apache Group 画面 4 make install の実行 # BSD/OS layout く Layout BSDI> prefix: exec_prefix: bindir: sbindir: libexecdir : mandir : sysconfdir : datadir : iconsdir : htdocsdir : cgidir: includedir : localstatedir: runtimedir : logfiledir : proxycachedir : く /Layout> /var /www /usr/contrib $exec—prefix/bin $exec-prefix/bin $exec—prefix/libexec/apache $exec—prefix/man $prefix/conf $prefix $datadir/icons $datadir/htdocs $datadir/cgi—bin $exec—prefix/include/apache /var $localstatedir/run $localstatedir/log/httpd $localstatedir/proxy 寺集 皀 00 で M ッを作るプ インストールディレクトリのカスタマイズ 最もよく利用されるオプションは一 pre ⅱ x ではないだろうか ? これはイン ストールディレクトリを設定するため のもので、 Apache では /usr/local/apache がデフォルトになっている。これを変 更したい場合は $ . /conf igure --prefix=/any/path/ to/apache とすればよいのだが、 Apache ではレイ アウトファイルというものを用いてさ らに柔軟な設定が可能になっている。 デフォルトのレイアウトファイルは configure コマンドと同じディレクトリ にある config. layout というファイルだ が、そこにはいくつかのレイアウトパ ターンが記述されているので見ていた だきたい。たとえば、このファイルの 最後の部分には BSD / OS 用のレイアウ トがリスト 1 のように定義されており、 con ⅱ gure 時にこのレイアウトを用いた いときには $ . /configure ——with—1ayout=BSDI のようにすればいいようになっている。 また、便利なことに --show-layout とい うオプションもあり、このオプション を付けるとどういうレイアウトでイン ストールされるのかを表示してくれる ので独自のレイアウトを考えたり、あ らかじめ確認したいときなどには重宝 する。上の BSDI レイアウトの場合を見 てみると、画面 5 のように出力される ので確認してみていただきたい。 さて、 config. layout には他のものを真 似て独自のレイアウトを定義すること もできるし、独自のレイアウトを別の 2000 No. 5 BSD magazine ファイルにした場合には、 ファイルで定義することもできる。別

5. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

ップショットで試したい方などは、公 まず、適当にディスクレスクライア tokiwa/etc 下の設定ファイルの準備をす 式サイトの「 anoncvs を用いた NetBSD- ント用のディレクトリ ( たとえば こで一番重要となる設定ファイ る。 current の追跡」注にを参考にしていただ /usr/diskless/tokiwa) を作成したら、そ ルは fstab である。これは fstab. wd のうち きたい。 ルートファイルシステムの行を書き換 の下に kern. tgz 、 base. tgz 、 etc. tgz など この項の設定が終わった後、再起動 主要な配布ファイルを展開する。 えて作成する ( リスト 3 ) 。 前に現在のカーネルから NFS サーバー この他、名前解決のために res 。 lv. # cp kern. tgz base ・ tgz etc ・ tgz 用カーネルに入れ換えることになる。 conf や hosts の設定を行おう。 /usr/diskless/tokiwa rc. c 。 nf については、最初プートする # cd /usr/diskless/tokiwa # tar zxvpf kern. tgz ディスクレスクライアント用 までは特にいじる必要はないだろう。 # tar zxvpf base . tgz ファイルシステムの用意 ただ、ディスクレスクライアントはなに # tar zxvpf etc . tgz NFS サーバー側でディスクレスクラ かとリプートに手間がかかるので、あ イアントに提供すべきファイルシステ 展開後、デバイスファイルの作成、必 らかじめ rc_configured を YES にしてお ムは、大きく分けて、ルートファイル 要なディレクトリの作成を行い、 くと少々楽ができるかもしれない注。 システムとスワップファイルの 2 種類が # /usr/diskless/tokiwa/dev ある。このうちルートファイルシステ NFS サーバーの設定 . /MAKEDEV a11 ムは必須であり、一方のスワップファ 続いて、 NFS サーバーの設定を行う。 # cd # mkdir kern proc イルは、なくても動作は可能である。 /etc/exports ( リスト 4 ) は NFS サーバ # chmod 555 kern proc ということで、とりあえすルートファ ーが公開するディレクトリの設定ファ イルシステムだけでプートできる環境 これで、ディスクレスクライアント用 イルである。こでは一 maproot オプシ を整えてみることにしよう。 のファイルシステムは準備完了である。 ョンでユーザー IDO を指定している。 こでは単純に、 / usr 以下も含めた これは NFS クライアントの root がそのデ ディスクレスクライアントの各種設定 単一のファイルシステムを、ディスク ィレクトリ以下にアクセスした場合、 次は、ディスクレスクライアントが レスクライアントのファイルシステム そのまま ro 。 t としての権限でそれぞれ としてマウントすることにする。 実際にプートできるように /usr/diskless/ のファイルにアクセスすることを許可 しているのである注 14 。これはある意味、 危険きわまりないことなので、第 3 フィ ールドでアクセス制御を行っている。 NFS サーバーの立ち上げ まず、 /etc/rc. conf をリスト 5 のように 書き換えたあと、前述のとおりカーネ ルを NFSSERVER オプション付きのも のに置き換える。 マリスト 3 /usr/diskless/tokiwa/etc/fstab nf s /kern kernf s /pro c procfs 192.168.1.2:/disk1ess/tokiwa kernf s procfs 0 0 0 マリスト 4 /etc/exports /usr/diskless/tokiwa —maproot=0 192.168.1.1 /usr/diskless/swap/tokiwa —maproot=0 192.168.1.1 マリスト 5 /etc/rc. conf rpcbind=YES nfs_server_enab1e=YES # cp /netbsd /netbsd. original と、元のカーネルを別名で保存したあ と、付録 CD - ROM に収録されたカーネ ルをネットワーク経由などで / にコピ ・展開し、再起動する。 画面 1 showmount コマンドを実行して確認する # showmount —e Exports list 0 Ⅱ localhost : /usr/diskless/tokiwa /usr/diskless/swap/tokiwa 192.168.1. 1 192. 168. 1 . 1 る。 と邪道 ? , 注 13 注 1 吊は一般ユー イ、 B magazine 20 0 N 5

6. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

集 皀 SD で My Se 了鶚了を作るツ GET / HTTP/I . 1 うになる。 このように、 OK と出たら早速起動 Host: www. abc . or ・ JP つまり、 98.76.54.31 にアクセスがき してみる ( 画面 6 ) 。 httpd というプロセ たら www.abc.or.jp だということがわか となるし、 http://www.xyz.ne.jp/であれ スが動いていることを確認したら、プ るし、 98.76.54.32 であれば www.xyz.ne. ラウザでアクセスしてみればよい。 jp だということがわかるのだ。 apachectl には、他に stop ( 終了 ) 、 GET / HTTP/I . 1 restart ( 再起動 ) などがある。 さて、 <VirtualHost> ディレクテイプ Host: www. xyz ・ ne ・ JP はさらにいろいろな使い道もあるのだ が、それは後のセクションにまわすこ となるのだ。 この H 。 st の部分を Apache が見て、各 とにしよう。 web では、クレジットカード番号や バーチャルホストの ServerName と照ら 個人情報を送ったりする際に、情報を し合わせ、適切なバーチャルホストに 暗号化する手段として SSL がよく用い 割り振ってくれるのだ。ただし、 Host 前セクションで解説したような設定 られる。つまり、 web サーバーを立て、 ヘッダーは HTTP/1.0 にはないため、 HTTP/I.0 しか喋らないクライアント を自分の環境に合わせて行ったら、あ そのサイトを訪れてくれるビジターか ( 今ではほとんどないだろう ) にはこの らなんらかの情報をもらう際にはその とは Apache を立ち上げるだけだ。実は Apache の設定には前のセクションで解 方法は無力だ。 web サーバーを SSL 化しなければなら 説したものよりもさらに多くの項目が ない ( もちろん、しなければならない あるのだが、それらはマニュアルや書 ということはないが・・・・・・ 旧べースのバーチャルホスト ということでここでは Apache の SSL HTTP/ 1.0 の世界でも問題なく使える 籍に譲ることにする。 Apache の起動や終了は ${prefix}/bin 化について解説しよう。 Apache を SSL のがこちらの方法である。この場合、 化するにはいくつかの方法があるが、 Apache を動かすホストには 2 つの IP ア にインストールされている apachectl と いうプログラムで行う。このコマンド ドレスを付けることになる。ネットワ こでは mod ー ssl を用いることにする。 を使って、設定ファイルの確認も行う ークインターフェイスを複数付けるの mod—ssl は OpenSSL を利用して Apache を SSL 化するための Apache モジュール でもいいし、一つのインターフェイス ことができる。 に複数の IP アドレスを付けるのでも、 であり、 Ralf S. EngelschaII 氏が中心と $ /usr/local/apache/bin/apachectl なんでもよい。そして、 DNS 的にも なって開発している。 web サイトは configtest http://www.modssl.org/で、 tarball もこの www.abc.or.jp と www.xyz.ne.jp にそれぞ Syntax OK サイトにあるので手元に持ってきてお れ別の IP アドレスを付ける。 Apache の バーチャルホストの設定はリスト 4 のよ こう。最新版は mod ー ss ト 2.6.5-1.3.12. tar. gz だ。 $ sudO /usr/local/apache/bin/apachectl start /usr/local/apache/bin/apachectl start : httpd started インストール $ ps —xaw 本章のはじめのほうに述べたが、 Apache モジュールを組み込むには DSO を利用する方法と Apache 本体にスタテ ィックにリンクする方法がある。 ではやはり後者を選ぶことにする ( つ まり、 Apache の make をやり直す ) 。 mod-ssl は OpenSSL を利用するため、 あらかじめ OpenSSL をインストールし ておく。 FreeBSD 4. I-RELEASE であれ ば標準で入っている (crypto パッケー BSD magazine 703 2000 No. 5 ”ツ , 宀 . 宅ツ SL Apa he の起動 . 01 /usr/local/apache/bin/httpd 0 : 00 .00 /usr/local/apache/bin/httpd 0 : 00 .00 /usr/local/apache/bin/httpd 0 : 00 00 /usr/local/apache/bin/httpd 0 : 00. .00 /usr/local/apache/bin/httpd 0 : 00 00 /usr/local/apache/bin/httpd 0 : 00. 2 3 4 5 ( 0 「ー 0 ) 0 ) 0 ) O) CN っ ~ っ乙 CN つんっ 4 画面 6 Apache の起動

7. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

図 1 ネットワークの構成 ている最も有名な MTA であろう。今で め、インストールについてはそれほど こそ postfix や qmail といった MTA もか 心配する必要はないだろう。ただ、シ インストール なり使われてきているが、少し前まで ステム標準の Sendmail は少しバージョ sendmail のインストールはわりと簡 はほとんどのサイトで sendmail が使わ ンが古い場合があるため、その場合に 単だ。 tarball を展開して sendmail- れていた。現在でもやはり一番のシェ は新しいものを自分でインストールす 8.11.0/sendmail ディレクトリに移った アを誇るのは sendmail で、ほとんどの る必要がある。たとえば、原稿執筆時 ら、画面 9 のようにすれば終わりだ。 UNIX 系 OS では最初から sendmail が付 点での SendmaiI の最新バージョンは こですぐに make install をし てしまうと、場合によっては悲惨なこ 属している。 SendmaiI はまた、その設 8.11.0 であるが FreeBSD 4.1- 定が難しいのでも有名だ。慣れればそ RELEASE に付属するのは 8.9.3 である とになる。最近では /usr/sbin/sendmail れほど厄介なものでもないそうだが、 ( ちょうどこの原稿を書いているときに や /usr/bin/newaliases といったコマンド それでもやはりそれなりに面倒なのに FreeBSD-current に 8.11.0 カ . 入った ) 。こ は /usr/sbin/mailwrapper へのシンボリッ は違いない。多くの人は SendmaiI の設 こでは 8.11.0 を自分でインストールし、 クリンクになっていることがよくある 定ファイルを生成するために専用のツ 設定することにしよう。すでに 8.11.0 のだ。この時、ん sr/bin/newaliases を起 が標準で付属するような os をお使いの ールである cf や CF を利用している。 動すると、ま $/usr/sbin/mailwr 叩 per か SendmaiI は、上にも書いたように大 方は、次のインストールの箇所は読み 立ち上がるのだ。このコマンドは 体どの OS でも最初から付属しているた 飛ばしていただければいいだろう。 /etc/mail/mailer. conf を読み、本当のコ マンドを起動するようになっているの だが、このファイルはたとえばリスト 6 のようになっており、本当のコマンド は /usr/libexec/sendmail/ にある。この仕 組みにより、ユーザーが簡単に別の MTA に切り換えられるようになってい るのだが、 make install でインストール をしてしまうと /usr/sbin/sendmail などが 新しい「ホンモノ」のコマンドになっ てしまうのである。ずっと sendmail で やっていく、というならそれでもいい かもしれないが、やはりシステムに合 わせておくほうが、 OS をアップグレー ドしたときなどにも混乱しなくていい のではないかと思う。 というわけで、 sendmail-8.11.0/obj. <OS>. く CPU>/sendmail/ というディレク トリに sendmail コマンドが作成されて いるので、これを手で /usr/libexec/ sendmail/ にインストールするのがいい だろう ( 所有者は r 。。 t で、 setuid するこ とを忘れないように ) 。なお、当然のこ とながら上述の ma ⅱ wr 叩 per を利用して いないようなシステムであれば、その まま makeinstall すればいいだろう。 sendmail がインストールできたら、 インターネット 専用線 ( OCN またはフレツツ・アイ ) ダイアルアップルータ * BSD で作ったルータ ( ファイアウォール ) ライアント 各種サーバー ドメイン名 ルーターのホスト名 メールスプールのホスト名 表 1 想定するドメインホスト名 bsdmagazine. net m ね 1 . bsdmagazine. net mta2. bsdmagazine. net 7 石、 - B magazin 20 0 N 5

8. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

ールの多くが入れられす断念 ) 。また、 FreeBSD native なク ライアントライプラリは /usr/local/sybase/lib に入っているの だが、 これとは別に /usr/local/sybase/devlib というものもあ こにはスタティックライプラリのみがあるのだが、 恐らくデバッグシンポルが含まれたライプラリではないか と思う。 sybase で遊んだり本格的に使ったりしているとき にデバッグを行う際には /usr/local/sybase/devlib のライプラ リを使うほうがいいのではないかと思う。 DBD-Sybase をインストールするには、 DBI が必要だ DBI をインストールするには PIRPC が、 PIRPC をインスト ールするには storable および Net-Daemon が必要である。 れらはすべて perl モジュールで、 CPAN サイトから取って来 ることができるのであらかじめインストールしておく。 DBD-Sybase のインストールは、通常の perl モジュールのイ ンストールと同じだ。ただし、以下のことに注意する必要 がある。 環境変数 SYBASE および SYBPLATFORM という変数を設定して $ make test おく。実は必ずしも必要ではない ( 興味のある方は MakefiIe. PL の中を見ていただきたい ) のだが、設定してお いて悪くはないので設定しておく。 SYBASE には sybase の インストールディレクトリを設定するのでこの場合は 、 /usr/local/sybase' になる。 SYBPLATFORM には、 linux' を設 定する。 また、 LD_LIBRARY_PATH の設定も必要で、 /usr/local/ sybase/lib を加えておく ( de ⅵ ib のようなスタティックライ プラリを利用するときは必要ない ) 。 MakefiIe.PL TcI ライプラリ関係でちょっとした作業を行う必要があ る。いくつかの方法があるのだが、ここでは MakefiIe. PL を 変更することにする。当該ファイルにリスト 2 のような部 分があるが、この前でも後でもいいので、リスト 3 のコー ドを加える。 以上の注意点に気をつければ、 DBD-Sybase の make まで はうまくいくはずである。通常 perl モジュールのインスト ールでは make install の前に make test を行ってチェックする PERL_DL_NONLAZY=I /usr/bin/perl —lblib/arch —lblib/lib -I/usr/Iibdata/per1/5.00503 / mach -l/usr/libdata/perl/ 5.00503 —e 'use Test : :Harness qw(&runtests $verbose) ; $verbose=0; runtests @ARGV;' t/* . t t/autocommit . Test test Test test Test test Test test Test test Fai1ed Test t/autocommit t/fail . t t/login. t t/main. t t/place. t t/base . t/fail . t / 10g1 Ⅱ・ t/main. t/place. . dubious returned status 0 (wstat 139 , Ox8b) program seems tO have generated . ok . dubious returned status 0 (wstat 139 , Ox8b) program seems tO have generated . dubious returned status 0 (wstat 139 , Ox8b) program seems tO have generated core . dubious returned status 0 (wstat 139 , Ox8b) program seems tO have generated . dubious returned status 0 (wstat 139 , Ox8b) program seems tO have generated core Status Wstat Tota1 Fai1 Fai1ed List Of failed 0 . t 0 0 0 0 139 139 139 139 139 FaiIed 5 / 6 test scripts, 16.67 % 0kay. 0 / 5 subtests failed, * * * Error COde 2 stop in /disk/da0/home/hanai/tmp/DBD—Sybase-0.22. 100 . 00 % okay. 782 画面 5 make test が動作しない BSD magazine 2000 No. 5

9. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

って商用のものにしたとしても、それにアクセスするクラ イアントはできれば FreeBSD にしたいところだが、それも これまでは叶わなかった。せめて FreeBSD 用のクライアン トライプラリだけでも注 3 、とよく思ったものである。この ように、 FreeBSD で動く商用のデータベースソフトが出た、 ということはかなり嬉しいことなのだ。 インストール 最初に断わっておくが、筆者が確認したのは FreeBSD 3.4-RELEASE 、 4. I-RELEASE そして 5.0- cu 仼 ent である。そ れ以外でも、 3.4-RELEASE 以降のものであればだいたいこ の記事に書いてあることが当てはまるのではないかと思う が確認はしていない。 インストールは比較的簡単だ。まずは配布物を取ってく る必要がある。 Linux 版 ASE のサイト、 http://www.sybase. com/linux/ase/に「 sybase Adaptive server Enterprise for Linux version 11.0.3.3 download web page 」や「 Register for Ad 叩 tive server Enterprise for Linux version 11.0.3.3 」とい ったアンカーがあるので、どちらかをたどり ( リンク先は どちらも同じ ) 、ライセンス条項をよく読む。ページの最 後のほうにダウンロードベージへリンクしたアンカーがあ 三つのファイルを手元に取ってくる。取ってきたフ sybase—doc—ll . 0 . 3 .3—FreeBSD—i386. tgz sybase—ocsd—10.0.4—FreeBSD—i386. tgz sybase—ase—ll . 0 . 3 .3—FreeBSD—i386. tgz るのでこれをたどり、 という # brandelf —t Linux /usr/local/sybase/bin/* # brandelf —t Linux /usr/local/sybase/install/startserver # brandelf —t Linux /usr/local/sybase/install/sybinit ルのフォーマットは PostScript と HTML なので、無理に しておく。 doc にはドキュメントが入っているが、ファイ ァイルは適当なディレクトリ ( ここではん sr 加 cal) で展開 釼加龜 3 版ー の登場 ん sr 加 cal で展開する必要はなく、自分に都合のいいところ で展開しておけばいいだろう。 /usr/local には sybase というディレクトリが作成され、そ こにバイナリやライプラリ、インクルードファイルなどが 入っているが、これらは sybase というユーザーとグループ を作成し、所有者 / 所有グループを sybase にしておく。 # chown —R sybase : sybase /usr/local/sybase 特に「 sybase 」である必要はなく、自分の好きな名前の アカウントを用意すればいいだろう。 次に FreeBSD の環境を整える。まず Linux2S イナリ互換 機能を使うために /etc/rc. conf や /etc/rc. conf. local で 1inux_enab1e="YES" となっていることを確認する。ない場合はこの行を挿入し、 システムをリプートしておく ( リプートは次のシェアード メモリ関係の設定の後でいいだろう ) 。また、 ports の linux—base-6.1 (/usr/ports/emulators/linux—base) も忘れす に入れておく。さらに、 /usr/local/sybase/install/sysbinit 、 /usr/local/sybase/install/startserver 、および /usr/local/sybase/ なお、 sysctl による設定は FreeBSD をリプートすると元 sysctl で設定する場合は画面 2 のようになる。 以降 ) のでカーネルの設定ファイルに入れる必要はない。 つは sysctl(8) コマンドで設定できる ( ただし、 FreeBSD 4 ーネルの再構築を行う。なお、リスト 1 の 5 行のうち下の 2 があるかどうか確認し、なければリスト 1 の行を入れてカ さらにカーネルの設定ファイルにリスト 1 のような記述 イナリであるというマークを付ける ( 画面 1 ) 。 bin にあるコマンドに対して brandelf を実行し、 Linux のバ 画面 1 Linux のバイナリだというマークを付ける # sysctl —w kern. ipc. shmall = 8192 # sysctl —w kern. ipc. shrr 加 ax = 33554433 画面 2 マリスト 1 options options options opt i ons options SYSVSHM SYSVMSG SYSVSEM SHMMAXPGS="8192" SHMMAX=" (SHMMAXPGS*PAGE_SIZE + 1) " 注 3 sybase や MS SQL server がデータベースサーバーであれ tIFreeTDS という解が実はある。 TDS (Tabular Data stream) とは、 sybase や MS SQL server が BSD magazine 779 2000 NO. 5 現時点でどれくらい使えるものなのかはよくわからないのだが、興味のある方は http://www.freetds.org/を読み、せひ試してみていただきたい。 採用しているクライアント - サーバー間のプロトコルで、 FreeTDS プロジェクトではこのプロトコルをドキュメント化し、フリーな実装を行っている。

10. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

プ = モン君のソス探検 BSD magazine 2000 NO. 5 78 最初のほうはテキストだけど、ほとんどバイナリ % less /var/db/locate . database デン : よし、中身を見てみよう。 なかなか鋭い考察です。 なあ。 locate は、このファイルを grep してるだけだろう デン : たぶん、この中にはファイル名が列挙してあって、 言われることを思い出しました。 ここで、デーモン君は、よくババから「当たりをつけろ」と あ、 /var/db/locate. database かあ。 アノ : % less pathnames. h pathnames. h に書く風習があります。 そうです。 U N Ⅸでは、プログラムに関係のあるバスを あ、 pathnames. h があるよ。 % ls % cd /usr/src/usr. bin/locate/locate/ るはずだよね。 ァン : I 。 cate って速いから、何かデータベースを持ってい し当てました。 腕を上げたデーモン君は、いとも簡単ロ ocate のソースを探 なるほどね。 /usr/src/usr. bin/locate/locate/locate . c % locate locate テン : locate のソースを知るにはもちろん 1 。 cate 。えいつ。 今回は宿題ではないようです。偉い偉い。 らどういう仕組みか知りたかったんだよね。 テン : locate にはたくさんお世話になっているから、 デーモン君は最近インストールした NetBSD 1 .5 に向かいま し、じゃあハックするかな。 テン : 公園はぬかるんでいるから遊びに行けないなあ。よ っていたのをデーモン君は思い出しました。 おじいちゃんに聞いたことがあります。そういえば、おじいちゃんが「雨の日は絶好のハック日和」と言 るい緑に輝いています。と、ひぐらしも元気に鳴き始めました。蝉は一生のほとんどを土の中で過ごすと、 雨上がりの昼下がり、デーモン君は屋根裏部屋から庭を眺めていました。雨後の草木は、いつもよりも明 0 1 ひやま もとこ , 阜氷山素子 ,