残暑お見舞い申し上げます。
猛暑が続いておりますが皆様のマシンの具合は如何ですか。クロックアップをしている方はシステムが不安定な場合はまずクロックを標準に戻しましょう。
投稿に対する返事はそれぞれの投稿者に直接送ることになっていますがgazette@ssc.comにコピーされたものは次号で紹介する予定です。
市場調査会社のレポートによると過去3週間のTurbo Linuxのアップグレード版売れ行きがWindows 98とMac OSの売れ行きを上回った。詳細は http://www.cnn.com/TECH/computing/9907/27/linux/index.htm
MicrosoftとRedhatのベンチマーク対決が再び行われそうだ。Neal Nelson氏がマイクロソフト主催のベンチマーク評価の後再びベンチマークの評価を呼びかけた。Windows NTとIIS 4.0は最大にチューンアップされていたのに対しLinuxはほとんどチューンアップされていなかったというのが理由だ。
Linux、Unix用のアプリケーションを提供しているApplixがオープンソースソフトウェア開発、ユーザー支援のためにSmartBeak.comを立ち上げた。ユーザーは問題解決のための情報にアクセスすることが可能。情報はHow To、FAQ、HTML、サポートデータベースからなっている。
Linux LaptopはLinuxをプレインストールしたラップトップコンピュータを提供している唯一の企業だ。Debian GNU/Linuxをプレインストールしたラップトップは同社のウェブサイトからオーダーできる。
Turbo LinuxはTurbo Linux ワークステーション英語版を出荷した。カーネルは2.2.9で小売価格は49ドル95セントだ。
Caitoo(旧名KGet)はGo!zillaやGetRightのようなダウンロードマネージャだ。ダイオログから転送の一時停止、再開などの指示が可能。又転送状況、速度などの状態を表示する。http://tux.kawo2.rwth-aachen.de/~caitooからダウンロードできる。 動作環境はLinux, Qt 1.42, KDE 1.1。
8月9日にx86版SuSE Linux 6.2が出荷される。カーネルは最新の2.2.10でStarOffice 5.1、KDE 1.1.1、Apache 1.3.6、GIMP 1.1.4、sendmail 8.9.3などが同梱される。さらにVMwareやRealPlayer 5.0などが 初めて含まれた。
画面解像度を1024x768や1200x1024でXを使っているとフォントが小さくて読み難い場合があります。「Ctrl+マウスの右ボタン」でフォントの大きさを変えることも出来ますが今回はXリソースを修正します。他のプログラムは設定やオプションを環境変数から受け取りますがXクライアントはXサーバーのリソースデータベースを参照します。 .Xdefaultというファイルが起動時に読み込まれサーバーのリソースに取り込まれますから".Xdefault"を変更したらXウィンドウを再起動するか、「xrdb -merge ~/.Xdefault」というコマンドを打ち込めば変更が反映されます。 xtermのフォントサイズを変えるには
XTerm*VT100*font: 10x20を追加します。
シャープのワイド画面のノートのディスプレイサイズは1024x600です。画面下部が若干隠れてしまうのを我慢すれば1024x768の設定で十分使えますが下部のウインドウのパネルが使えません。これを解決するには1024x768のXF86Configファイルの一部を変更して使います。変更する個所はmodelineの768を600にするだけです。つまり、
変更前 Modeline "1024x768" 44.9 1024 1048 1208 1264 768 784 817 変更後 Modeline "1024x768" 44.9 1024 1048 1208 1264 600 784 817のように変更します。
プログラマーでもなければコアファイルは必要ないでしょう。コアファイルがダンプされないようにするには .bashrcか .loginファイルに
ulimit -c 0を追加します。そうするとコアファイルを吐かなくなります。
先月はAbiWordというワードプロセサを紹介しました。今回はTedを紹介します。これはRTF(Rich Text Format)を使ってWindowsユーザーとドキュメントを共有しようというものです。TedのドキュメントはMsWordやワードパッドなどで読み込むことが出来ます。その逆はまだ実現されていませんが、画像を入れたりハイパーリンクを埋め込んだりする場合にはTedは使ってみる価値があると思います。
Tedはftp://ftp.nluug.nl/pub/editors/tedからダウンロードできます。バイナリのコードはスタティックリンクされています。ソースからコンパイルするにはlibtiff、libgif、libjpeg、libpng、libxpmなどのライブラリが必要です。 Windowsユーザーとドキュメントを共有する他にもHTMLやLaTeXのタグを使わずに画像を含んだファイルを簡単に作成する事が出来ます。
インテルベースのLinuxに対応したアップルのオープンソースストリーミングサーバーのコードがアップロードされた。開発者はソースコードの変更無しにLinuxベースのストリーミングサーバー製品を開発する事が出来る。
SGIはIRIS PerformerをLinuxプラットフォームに移植中であると発表した。MongooseプロジェクトによるとIRIS Performer APIを1999年末までに公開する模様。
Xi GraphicsのmaXimum cdeは強力なグラフィック環境をデスクトップ、ラップトップユーザーに提供している。最新パッケージではAccelerate-XサーバーでMotifとCDEを統合している。 さらにXi Graphicsは新ビデオチップの対応も進めた。対応した新ビデオチップはMatrox G400、3dfs/STB、Voodoo3-2000と3000、Diamond Viper 770 Ultra(nVidia Riva TNT2)、Diamond Viper 550(TNT)などだ。
AC3Dユーザーのためのウェブサイト。場所はhttp://www.eilers.net/ac3d/。
ライターが必要に迫られて作ったperlppの紹介です。perlppはCのプリプロセッサ、cppの様なものですが、使うには若干のPerlの知識が必要です。perlppはファイルを読み込んでperlのスクリプトを生成します。 Cのプログラムでの例で良く使われるhello worldの例を使ってhello.c.cppというコードをperlcppで処理すると次のようになります。
#include<\n> int main() { printf("Hello World!\n"); return 0; }
これを perlpp で処理するには次のようなコマンドを打ち込みます。
perlpp -pl hello.c.pppその結果生成されるperlスクリプトは
!/usr/bin/perl<\n> print '#includeのようになります。'; print 'int main() '; print '{ '; print ' printf("Hello World!\\n"); '; print ' return 0; '; print '} ';
cppはcppディレクティブを使うと効率的に利用できます。perlppもperlppのディレクティブを利用すると効果的です。Perlはcppに比べてテキスト処理能力が優れているので使えればとても便利でしょう。 perlppはftp://zot.mesastate.edu/pub/wmacevoy/perlpp/perlpp-0.5.tar.gzからダウンロードできます。perlppを使用するにはPerl 5がインストールされていなければなりません。
Redhat 6.0のラムディスクのセットアップ法です。 ラムディスクとはメモリ上に割り当てられた領域でパーティションとして使われます。つまりハードディスクと同じように使うことができます。何故ラムディスクを使うか? 頻繁に使うファイルがある場合、それがラムディスク上にあればHDDに比べて非常に高速に利用できます。ウェブサーバーなども高速化することができます。あまりないでしょうが、PII 550Mhzのマシンに1GBのメモリと500MBのHDDを搭載しているような場合、またディスクのないマシンを構築するような場合に利用されます。詳細は
1.http://metalab.unc.edu/LDP/HOWTO/Kernel-HOWTO.html
2.http://metalab.unc.edu/LDP/HOWTO/mini/LILO.html
3./usr/src/linux/Documentation/ramdisk.txt
を参照して下さい。
ラムディスクを使用するのは簡単です。Redhat 6.0はデフォルトでラムディスクをサポートしています。必要なのはラムディスクをフォーマットしてマウントするだけです。「ls -al /dev/ram*」とすれば使えるラムディスクが表示されます。利用するには
mkdir -p /tmp/ramdisk0 mkfs -t ext2 /dev/ram0 mount /dev/ram0 /tmp/ramdisk0とします。これはラムディスクのディレクトリを作成し、フォーマットしています。サイズはデフォルトで4メガバイトです。最後にラムディスクを/tmp/ramdisk0にマウントしています。 注意しなければならないのはマシンを再起動するとラムディスクは消滅してしまうということです。
ではどうすればラムディスクのサイズを変えられるでしょうか。方法は二つあります。
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.2.5-15
label=linux
root=/dev/hda2
read-only
ramdisk=10000
具体的にウェブサーバーでラムディスクを使う方法を説明しましょう。 ラムディスクは3個使います。Apacheウェブサーバーがcgi、html、アイコンなどで9メガバイト以上を使わないことを確認しておいて下さい。 まずウェブサーバーのホームディレクトリを移動しラムディスクをマウントするディレクトリを作ります。
mv /home/httpd/ /home/httpd_real mkdir /home/httpd mkdir /home/httpd/cgi-bin mkdir /home/httpd/html mkdir /home/httpd/icons次のように /etc/rc.d/rc.localファイルを修正します。
### ラムディスク用のパーティションの作成
/sbin/mkfs -t ext2 /dev/ram0
/sbin/mkfs -t ext2 /dev/ram1
/sbin/mkfs -t ext2 /dev/ram2
### ラムディスクをマウントする
mount /dev/ram0 /home/httpd/cgi-bin
mount /dev/ram1 /home/httpd/icons
mount /dev/ram2 /home/httpd/html
### 実際のホームディレクトリの内容をラムディスクにコピーする
tar -C /home/httpd_real -c . | tar -C /home/httpd -x
#### ウェブサーバーを再起動する
/etc/rc.d/init.d/httpd restart
”/etc/rc.d/rc.local”というコマンドを使う代わりにマシンを再起動します。
最後に次のことに注意して下さい。
ファイルネームとI-Nodeを表示することが大事なことでしょうか。システムの管理者としてはファイルのリンクを理解していることは重要でしょうし、システムへの進入に対しても有効だと思います。基本的なシステムのI-Nodeとファイルネームを保存しておいて定期的にスクリプトを走らせリンクのチェックをするのはセキュリティの観点からも大事なことです。
スクリプトはbashやzshのようなシステムで動作しますがファイルのリストはelsというプログラムを利用しています。elsはlsの拡張版で、
ftp://perseus.elen.utah.edu/pub/markb/els.tar.Z.
からダウンロードできます。
スクリプトの内容は次の通りです。 "findhardlinks.sh"のディレクトリのリストと"showsame.awk"の中のawkの場所を自分のシステムに合わせて修正します。 使い方はコマンドラインから"findhardlinks.sh"を起動するだけです。"allfiles.lst.srt"というファイルが/tempに作られます。"showsame.awk"を同じディレクトリにコピーして「showsame.awk allfiles.lst.srt」のように起動すると"outfile.txt"というファイルが生成されますから「uniq outfile.txt > outfile.nodup」でダブっているラインを削除します。
findhardlinks.sh
#These directories are all under "/" on my system; you may have to change
#the list to suit your configuration.
for i in bin boot etc home lib opt root sbin tmp usr var
do
#This line generates a file listing for all the specified directories and
#their subdirectories, showing each files i-node number, and its complete
#path name, and puts all of it into "allfiles.lst"
els -a -i +R +NF $i >> /temp/allfiles.lst
done
cd /temp
sort allfiles.lst > allfiles.lst.srt
rm allfiles.lst
showsame.awk
#! /usr/bin/awk -f
BEGIN {
getline #get the first line of the file, then,
n1=split($0, test1) #put its fields into an array, then,
#increment the line pointer by one
}
{
#this is the i-node comparison loop
n2=split($0, test2) #put the next line into an array
if (test1[1] == test2[1]) { #see if the i-node numbers of the two
#lines are the same(field 1 of both
#strings)
#if they're the same, print the contents of both arrays
for (i=1; i <= n1; i++) {
printf ("%s ", test1[i]) >> "outfile.txt"
} #note (space) after %s; this puts
#back spaces between fields lost
#when the strings were split into
#the arrays
printf ("\n") >> "outfile.txt"
for (i=1; i <= n2; i++) {
printf ("%s ", test2[i]) >> "outfile.txt"
}
printf ("\n") >> "outfile.txt"
}
#Now put the most recent string into the array that holds the previous
#string; this allows us to do comparison between each line and the one
#before it.
for (i=1; i <= n2; i++) {
test1[i] = test2[i]
}
n1 = n2 #set the count of fields in the array that is holding what
#is now the previous string to the number of fields in that
#string
next #go get the next string and do it again
}
これは完全なマニュアルではありませんが経験に基づくもので実際に動作しているシステムです。初心者にはとても参考になると思います。
まずbind v8.2がインストールされている必要があり、ドメインネームを設定しIPマスカレードを使用していることを前提とします。 DNSとはドメインネームとIPアドレスの変換をするものです。ISPのDNSサーバーを使えば独自でDNSサーバーを立ち上げる必要はありませんがDNSサーバを立ち上げた方が効率はよくなります。IPマスカレードはプライベートのIPアドレスをインターネットで有効なアドレスに変換するものです。
DNSを利用するにはbindをインストールしなければなりません。bindをインストールしたらそれぞれのコンピュータのIPアドレスとホストネームを設定します。 DNSをセットアップしたら次のファイルを修正する必要があります。
/etc/named.conf
/var/named/db.cache
/var/named/db.kulai.org (kulai.orgは自分のドメイン)
/var/named/db.124.168.192 (192.168.124.0は自分のネットワーク)
/var/named/db.127.0.0
上記のファイルを修正したら/etc/resolv.confを作成し、再起動します。DNSがきちんと動作していれば
Jul 10 15:54:26 master named: named startup succeeded
Jul 10 15:54:26 master named[3523]: Ready to answer queries.
のような文字列が/var/log/messagesに残されているはずです。うまくいったらインターネットに接続して試してみましょう。
もしうまく行かない場合は
簡単なDNSサーバー構築の例ですが興味があれば次のサイトを参考にして下さい。
The DNS HOWTO
DNS and Bind by O'Reilly
DNS - ZDNet Webopedia
Definition and Links
Troubeshooters.com:
DNS -- 古いバージョンのbindに対するヒントもあります
来月はホームネットワークのメールに挑戦する予定です。
カーネルのハッカーだけがオープンソースに参加できるわけではありません。いろいろな分野でのサポートが必要とされています。とても重要なドキュメンテーションやプログラムのテスターなどです。Linuxの生みの親のTorvalds氏は,米カリフォルニア州サンノゼで開催のLinuxWorld Expoで8月10日夜のいわゆる“基調講演”らしくはない講演で、カーネルデベロッパーだけが重要なのではなくエキサイティングな作業の多くはカーネル以外のところにある。それはプログラム開発ではなく開発そのものだ、と語っています。
Linuxの初心者、中級者へのちょっとしたヒントのコラムです。筆者が2年間Linuxを使用した経験に基づいて気のついたことを紹介します。
alias dial="/etc/sysconfig/network-scripts/ifup-ppp
/etc/sysconfig/network-scripts/ifcfg-ppp0"
alias hangup="/etc/sysconfig/network-scripts/ifdown-ppp
/etc/sysconfig/network-scripts/ifcfg-ppp0"
と/etc/bashrcに記入しておくとコマンドラインで"dial"、"hungup"と入れるだけで接続、切断ができます。
# mkdri
とタイプしたとします。mkdriでかまいません。このタイプミスを訂正するにはバックスペースで戻って訂正をしますが、その代わりに「Ctrl+t」を押して下さい。最後の2文字が入れ替わります。
# cd what
の後にTABを押します。するとパスの中から有効なディレクトリ名を検索して補完してくれます。もしTABを一度押しても何も起こらなければTABをもう一度押して下さい。複数の候補が表示されます。
eval `dircolors /etc/DIR_COLORS`の行を追加します。 /etc/DIR_COLORSにカラーの設定をしておけばいいのです。
# ps -ax | grep startx
と打ち込むとXサーバーのPIDが表示されますので
# kill -9 PID_Number
とXサーバーのプロセスを終了します。最初のコンソールに戻るには"Alt-F1"とします。
Linux Gazette7月号の「Eximを使ってホームネットワークのメールを設定する」というコラムの中でMTA(メール転送プログラム、この場合はEXIM)でFrom:アドレスの設定の仕方を紹介しました。これはMUA(メール作成プログラム)によってはちゃんと機能しますがPine 3.96ではそうではないようです。問題はメールを書きかけて途中で保存し、再びメールを開いて作成し送信した場合に起こるようです。メールのヘッダーに「Reply-To: あなたのプライベートドメイン」が追加されてしまうのです。pineの新しいバージョンでは解決されています。対処法はメールを書きかけで保存しない、新しいバージョンのpineを使用する、ですがそのまま使っている場合には"/etc/exim.confの
headers_remove = "sender" を headers_remove = "sender:reply-to" に修正します。