04月07にち(月)03:59
TITLE
DBにアクセスする方法がやっとわかったところでちょっとつまづいた。プロセスが起動しないのだ。
/etc/rc.d/init.d/postgresql start
とやるとたしかにデーモンが起動したかんじがするんだけど、クライアントツールのpsqlでDBにアクセスしようとしても、接続が拒否されるといわれる。起動してないから拒否されるのか、アクセス権とかの問題で拒否されているのかはわかんないけど、とにかく動かせない。ところが、
/usr/bin/postmaster
と直接うごかしてやるとアクセスできるのだ。そんなことはどこにもかいていない。だから解決できないけどとりあえず動いているからよしとするか。
|
|
04月05にち(土)08:43
RubyCGIとのやりとり
ほんとうは、DBを作成できたときから今度はCGIでアクセスできるようにできないかな?と考えていた。いま、RubyでCGIをつくっているからそれで使えないかと。そのためにはまず、PostgreSQLとhttpdサーバとをつながないとだめらしい。
まず、PostgreSQLにhttpdユーザをつくる。このユーザはデフォルトでhttpdサーバをうごかしているもともと居るユーザだ。つまり、DBを動かしているユーザとシステムに存在してるユーザはかならず等しいってことなんだ(これでやっと前回のうまくいかなかった問題がとけた。つまり、hidewoというユーザはシステムに存在していないからはねられたのだ。)
$bash createuser httpd
$bash psql hide
hide=# \d
hide=# grant all on shinamono to httpd;
これでhttpdユーザはこのテーブルにアクセスできるらしい。
しかし、これでとりあえずCGIとのやりとりはできるんだけど、PostgreSQLとRubyとのやりとりはモジュールが必要らしいのだ。それがダウンロードしてコンパイルしたんだけど、なぜかたりないものがあってインストールできない。なかなかうまくいかないものなのだ。
|
|
04月05にち(土)07:56
PostgreSQL
とうとう、PostgreSQLが動いた!これはぼくにとってかなり重大なことなのだ。まだ、たいしたことをしていないけど、DBに触れて実際に動かしたのははじめてだったからだ。わすれないうちにそのときのことを残しておきたい。
まず、いまのOSはVine2.1.5なんだけど、PostgreSQLはすでにはいっている。しかも、postgresユーザも作られている。Postgresは専用のユーザを作成して、そのアカウントがDBでのアドミニストレータになるのだ。つまり、システム管理者(root)と区別するわけ。DBの管理者はまたシステムとは別箇の管轄ってこと。それはすでにできているので問題はない。ただ、postgresユーザになるときに、
# su - postgres
として、ログインしないといけない。
# su postgres
とやると、その前のユーザの環境変数が残ってしまうのだ。この辺はまだじつはよく分かってなかったりする。
そうやってpostgresユーザになると、カレントディレクトリが/var/lib/pgsqlになる。ここで、
bash$ initdb
とやるはずなんだけど、それはもう終ってますと警告される(^^;;
bash$ initdb
This database system will be initialized with username "postgres".
This user will own all the data files and must also own the server process.
initdb: The file /var/lib/pgsql/data/PG_VERSION already exists.
This probably means initdb has already been run and the
database system already exists.
If you want to create a new database system, either remove
the directory /var/lib/pgsql/data or run initdb with a --pgdata argument
other than /var/lib/pgsql/data.
つぎは、ユーザとDBの作成だ。ユーザはもう作ったじゃん、とおもうなかれ。いわゆるDBの管理者がDBを作るんではなくて、DBを作成するユーザをつくるのだ。これはpostgreSQLで作成する(さっきのはあくまでアカウント)。ぼくは、hidewoというユーザをつくろうとした。じつは、ここでぼくはずっとできないでいたのだ。なぜか、hideというユーザを作ったらうまくいった。これにかんしてはなぜなのかいまだにわからない。でも、これまでDBをいじれないで困っていたのはここだったのだ。ぼくはいつもこの手の問題をかかえることが多い。ともかく、
$bash createuser hide
$bash createdb hide
ユーザ名とDB名を一緒にしたのはそうしていたひとの例を参考にしたから。
ともかく、これがうまくいってDBを作成できたのだ。今度は念願のSQLである。
$bash psql hide
とやると、hideというDBにアクセスできる。psqlはDBにアクセスするためのPostgreSQLのクライアントツール。
Welcome to psql, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit
hide=# create table shinamono (hinmei text, nedan int);
とやって、shinamonoというテーブル(表)を作成。ちょっとDBらしくなってきた。そのあとのhinmei,nedanとあって、text,intと言う言葉があるのは、行と列のことだろう。そして、たしかDBにも型があったはず。
つぎに実際の値いれる。
hide=# insert into shinamono values('mikan', 100);
hide=# insert into shinamono values('ringo', 150);
hide=# insert into shinamono values('melon', 2500);
hide=# insert into shinamono values('みかん', 100);
最期のカラムが日本語なのは、入るかどうかを単純にためしたかったから。
んで、
hide=# select * from shinamono;
これがうわさの射影ってやつか。いつも頭で勉強しているだけなので実際に見ると感動する。
hide=# select * from shinamono;
hinmei | nedan
--------+-------
mikan | 100
ringo | 150
melon | 2500
みかん | 100
(4 rows)
おお!ちゃんとはいってる!しかも、なんかちゃちかもしれないけどがんばってDBぽいレイアウトにみせているじゃないか!!
と、ぼくはこれに感動したわけであった。
|
|
4月5にち(土)01:25
Ruby
最近はまってる言語はRubyだ。国産言語といわれているけど、基本的には日本人が作ったというようなかんじはしない。まつもとゆきひろさんだったとおもう。かんじとしては、JavaとPerlを足して2でわったかんじ。ただ、Perl的に書くこともできるし、オブジェクト指向言語なので、クラスを作ってJava風に書くこともできる。ぼくは腕が未熟なのでオブジェクト指向的に書くことができない。よくいう、すべてをmainに入れてかくというかんじ。いまはCGIをつくっている。簡単な掲示板はできるようになった。ファイルロックと、ログ(テキストファイル)の読み込みと書き込み。
たとえば、こんな風に書いてみる。
#!/usr/local/bin/ruby
print "Content-type: text/html\n\n"
print "hello" こんな簡単なスクリプトでもちゃんと動くのがうれしい。
|
|
4月5にち(土)01:20
BASHの環境変数
今回も覚書き。BASHのプロンプトの表示を変えるには、PS1という変数をいじればいい。もともとない場合はつくる。~/.bashrcに、PS1="[\u@\h \w]\$ "の一行をくわえる。すると、
[hide@elizabethae ~]$ というような表示に変わる。\uはユーザー名、\hはホスト名、\wはカレントディレクトリでしょう。ほかにも時刻とかいろんな情報を表示できるんだけど、基本はこれだけでいいとおもう。あんまりながくすると一行に収めるのが大変になるから。もちろん、コマンドライン行を次の行にすることもできる。ぼくは、プロンプトからコマンドをうつまでの間にスペースをひとつ分いれている。
|
|
5月1にち(火)7:27
とにかく載せることが使命
ちょうどいいのでこれまでかきためておいたLinux関係の情報をかたっぱしから覚書しておこうとおもった。
どこからでもこの情報を見ることができて僕にとっては有意義な情報だから。これは僕だけのためにあるといっても過言ではない。
他の人にも有意義だったらいいなぁとおもうけども。
ただ、Linux関係の文章はほとんどLinuxサーバーにおいてある。一部はフォーマットしたときに誤って全部削除してしまった。
残る一台はGodyという一番古い(そしてi486という製造年代自体も古い)マシンのなかに保管してある。この中にはぼくがLinuxとであったときからの文章が書き留めてあるのでこれは何とか役立ちそう。
ただ、あまりにも最初の頃なのでかなり今ではわかりきっていることばかりだ。だけど、血と汗の歴史として僕にとって有意義な時間を記録してあるのでこれも機会があればUpしておこうと思う。
|
|
4月13にち(金)??:??
NE2000互換
今日、秋葉に行って再びISAのLANボードを見つけようと思ってでかけようとしたら会社の人がちょうど秋葉のじゃんがらラーメン本店へ行こうというのでちょうどいいのでそのついでによらせてもらうことにした。
ほんとは残業のついでなんだけど、すべて。
で、ぼくは店の前のダンボールの中に置いてある、ジャンク品LANボードを探そうとしたんだけど会社の人が見当をつけた店を中心にとなりからとなりへ店の人にISAのLANボードはないか、と聞いて回ることをした。
それで2軒目で偶然にも在庫のある店があった。まさか、パッケージでいまさらISAがおいてあることにびっくりした。
店の人もまさか買う人がいるとは思わなかったといっていた。ほんとはパッケージを買うつもりはなかった。消費税含めて\1000を超えてしまうからだ。この値段はPCIですらそんなにださなくても買えるくらいかあるいはほぼ同等の値段がついている。
わざわざつきあってもらってしかもなさそうな商品だったのでみつけてもらってやっぱりいい、とはいえず買ってしまった。店員さんと古いものについてのお話をしてしまった。なかなかないものもとりよせるのでぜひまたおこしください、とのこと。
むかし、FreeBSDを使ったことがあり、少し知っているから、と言ってNICについて聞いた、話がよくわかりしかも自分の知っていることばかりだったのはびっくりした。いっしょに来ていた会社の人はなんだそれはというようだった。いつのまにぼくはそんなことを知ったんだろう。
その、『そんなこと』がいまのぼくにとってのテーマなのだ。
結果的にちょっとだけそのLANカードのおかげで前進できた。
2枚刺してもちゃんと1枚は認識されるようになったのだ。
新しい1枚をいれて3枚あるおかげでなにが原因でうごかないかの究明ができた。
|
|
4月14にち(土)12:35
FMV183PNPOFF
やっとみつけたFMV-183のPnP機能を有効にするツール。
しかし、僕がしたいのは有効ではなく、無効にすることなのだ。
しかし、READMEには有効にする方法(PNPSET /ON)としかかかれていない。しかし、おそらくほかのURLでもユーティリティで無効にしたとあるので
PNPSET /OFFあたりだろうと見当をつける。なになにこのツールの使い方は、
・使用方法
1.MS-DOSを起動します。
2.カレントディレクトリを「A:\」に変更します。
3.以下のコマンドを実行します。
A:\>PNPSET /ON【Enter】
簡単そうだ。
FDDにインストールする方法はおとしてきたページにかかれてあったし。えっと、インストールするか、とおもったとき、ふと1.がよぎった。
MS-DOSを起動します。
DOSが必要なのか。
いろいろ問題があたまをよぎってはこれはむずかしいことになりそうだ、という結論を次々に投げかけていった。
まず、僕がやろうとしているのは、i486マシンにVine Linux1.1のIPmasquaradeを使ってルーターをつくることなのだ。そのマシンでこのNICを動かしたいのだ。DOSなんてない。
そうだ、Windows98の起動ディスクがあるじゃん。i486に刺して起動。すると、システムがない、というメッセージ。だめだが、2枚目のFDDもいれるが、無駄に終わる。起動ディスクは壊れている…。
うちには、現在Windows98は稼動していない。
Windows2000だけだ。安定しているからと、結局Windows2000とLinuxしか動かさなくなってしまったのだ。わざわざ起動ディスクだけをうごかすためだけにWindows98を入れなおすのはしんどい。こまった。
そのとき、DOSという言葉になにかの記憶がひっかかった。そういえば、FreeDOSとかという名前のOSがどこかになかったか?さっそくネットでとりあえずDOSというキーワードを打ってみるとあるある。
FreeDOS関係はいろいろあったけど日本語に対応しているということで
ここ
に行ってみた。
そもそもDOSのことを理解していない僕はまずCommand.comをFDDにコピーしてそれを起動させるという暴挙にでたがすぐに収まった。
そこのサイトのfreedosv.lzhというアーカイブをもってきて展開したあと、その展開先のディレクトリで
installとうつだけでデフォルトでFDDにインストールされる、が、
FreeDOS System Installer v1.0
Writing boot sector...
FAT type: FAT12
Copying KERNEL.SYS...sys: can't create"A:\kernel.sys"
sys: cannot copy"KERNEL.SYS"
起動フロッピーが作成できませんでした。
D:\DOWNLO~1\freedosv\freedosv>
しかし、あわてない。実は事前に展開されたディレクトリのなかのテキストファイルを読んでいたのだ。そこにはNTではcommand.comが書き込まれないので、
現状で発見されている不具合
・WinNTだとSYSコマンドがきちんと動作しません。SYSコマンドは起動
ルーチンだけ書き込みますので、そのあとはKERNEL.SYSとCOMMAND.COMを
手動でコピーしてください。
とある。そう、なんでも手動でいいんだ。
とにかく、そうしてコピーし、さっそくi486マシンのFDDに差し込んで起動。すると、FreeDOSが立ち上がる!はじめてみたので感動してしまった。Loading FreeDOS...
しかし、そこが間違いだった。ずっとその起動プロセスをみていると、とつぜん、F8,F5キーをどちらか押してくれというのだ。
Press F5 for trace mode, or F8 to bypass \autoexec.bat...
Autoexec.bat経由の場合はF8を押すらしい。そっちしかわからなかった。しかし、その選択の時間が3秒なのだ。なんでタイムアウトが3秒なんだ!とおもってるうちにもうコマンドプロンプトにならなくなった。しかたなく再起動。
今度はちゃんとプロンプト表示に成功した。よくわからないがDOSに今いるらしい。ちょっとためしにdirをうつとちゃんと内容が表示される。
ほんとにDOSらしい。
ただ、ぼくはFreeDOSの日本語版をいんすとーるしているので日本語環境ではないこのマシンではばっちり文字化けをする。これはVineをインストールしようとしたときもなやまされた現象だった。裏目にでたことをなげいているばあいでもない。とにかく今することはFMV-183のPnPをOFFにすることだ。
DOS環境を手に入れたところでさっそくそのFDDに例のユーティリティをコピーしてそのユーティリティを使ってみた。
pnpset /OFFだ。するとFMV-183がありません、とでた(そういえばこれ日本語で出たような…)。
そうだ、さしていなかった(^^;
|
|
4月14にち(土)12:33
富士通 FMV-180 シリーズ
ここでは、富士通が FMV パソコン用として販売している Ethernet カードのうち FMV-181 から FMV-184 までの製品名のものを FMV-180 シリーズと呼びます。
これらのボードは全て fe ドライバが対応します。
FMV-183 と FMV-184 は、ボードに添付されるセットアップユーティリティ (MS-DOS アプリケーションとして動作するもの) によって、 PnP モードとレガシーモード (non-PnP) を切り替えられるようになっています。
fe ドライバで使用する場合には、レガシーモードに設定する必要があります。 (レガシーモードに切り替えると、Windows 95 等の FMV-183/4 ドライバでは、カードが認識されなくなってしまいます。同じマシンで Windows 95 と FreeBSD を切り替えて使用する場合には、 Windows 95 では FMV-181/2 用のドライバを使うと、認識させることができ、正常に動作します。)
FMV-183 には、バリエーションとして、一部の FMV パソコンのマザーボードに (ドーターボードとして) 組みこまれたものがあります。
FMV パソコンのカタログ等では、これは、「FMV-183 相当 LAN インターフェース」という表現になっています。 fe ドライバは、このタイプにも対応しています。
なお、富士通には、FMV-186、FMV-186A、FMV-188 という名前の LAN カードもあります。
これらは、インテルの i82557 を搭載した 100M イーサボードであり、ここで FMV-180 シリーズと呼んでいるものとはアーキテクチャが全く異なり、 fe ドライバでは動作しません。 FMV-186、FMV-186A、FMV-188 は、FreeBSD では fxp ドライバが対応しています。
http://www.geocities.co.jp/SiliconValley-PaloAlto/9700/isa.html#FMV
http://www.geocities.co.jp/SiliconValley-PaloAlto/9700/bdl.html
FMV-183 Fujitsu ISA PnP MB86964 T 2.1.5 auto FMV-183
とりあえずFMV-183に関係のありそうなものを並べてみた。
|
|
3月21にち(水)04:59
二枚目の NIC を認識させることに難航
/etc/lilo.conf に append して /sbin/lilo する方法は失敗。
カーネルに二枚目の NIC のドライバを組み込む方法も失敗。
カーネルに二枚目の NIC のドライバをモジュール追加して、
/sbin/modprobe する方法で成功しました。
- /etc/sysconfig/network の FORWARD_IPV4 エントリ が false
になっていたのを true に変更。
この問題点はなかなか気づきませんでした。
/etc/rc.d/rc.inet1
/sbin/modprobe ne.o io=0x280 irq=5
/sbin/ifconfig eth1 192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0
/sbin/route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1
/etc/rc.local
/sbin/ipfwadm -F -a m -S 192.168.0.0/24 -D 0.0.0.0/0
/sbin/ipfwadm -F -p deny
/etc/sysconfig/network
FORWARD_IPV4=true
; この項目がデフォルトで false になっていたのですが、その問題
; に気づかず、苦労しました。FORWARD_IPV4=false に設定されている
; 場合は、demsg に IP Forwarding: off と表示されるようです。
|
|
3月21にち(水)04:58
家のLANカードを認識させよ
家のLANカードを認識させようと試行錯誤してたんだけど、うまくいかない。
LANカードにはfmv183と書いてある。
それに合致しているのがドライバの説明にももろにfmv183がかかれている、fmv18xだ。しかし、うまくいかない。一回、I/O = 10, IRQ = 0x31Fでやってみたんだけどうまくいかない。
なんでこれにこだわったのかといえば、Windows2000でこのカードを使ったときにドライバと値がこれでうまくいったからだ。
結局、今回ネットでfmv18xを検索したところ、このfmv18xの作者田宮さんがfmv18x.cを廃止し、at1700を使ってくれというらしい。
ここをたずねてみた
それから、at1700なんてみなれないドライバをつかわないとならなくなったので情報を/usr/src/linux/Documentation/networking/net-modules.txtをみてみると、
at1700.c
io=0x260
irq = 0
(probes ports: 0x260,0x280,0x2A0,0x240,0x340,0x320,0x380,0x300)
とある。
なかなか情報ってすごい。
あんなに試行錯誤してモジュールを組み込んだのにあっけなく認識された。
ただ、もうひとつのもともと認識されていたAcctonのneドライバで動く、LANカードと二つをさすと起動時から認識されなくなるのだ。
ドライバがビジー状態になる。これはちょっとつらい。
|
|
Windows de Emacs(Meadowのお話だよ)
Emacsというエディタがある。UnixというOSには標準でついているエディタです。Windowsには標準でメモ帳(notopad)がついているけどあれよりもかなり高機能なエディタなのです。操作方法はウィンドウズになれてしまった人には難しく感じるかもしれない。ともかく、このエディタはUnixについているものでウィンドウズを使っている文には関係ないように思えるがじつはウィンドウズでこれを使うことができる。それがWindows版のEmacsといえるMeadowというエディタがある。これがなかなか使い勝手がいい。熟練すると問題点があるようだけど、初心者にとってはすごい機能ばかりでびっくりする。
使うにあたってはインストールしないと始まらないんだけどそれがまたちょっと面倒だ。だからお手軽に何でもこなして手間暇は他人にかけさせると言う人にはあまりおすすめはできない。
このエディタを手に入れるのには
ftp.m17n.org
あるいはmirrorサイトに行ってみると良いのかもしれないです。
そこでMeadow-1.10-i386.tar.gzを手に入れたら、と思ったらなんかこの圧縮ファイルおかしいですね。普通ならWindowsなら*.zip,*.lhaですが、なにやら*.tar.gzになっています。.tarだけではなく、.gzなんてのもついています。これはLinuxやUnixではよく使われている圧縮のしかたなのです。というわけでそのままでは解凍できません。それにUnix のやり方で圧縮されているのにWindowsで使えるの?って思うかもしれないですが実は使えます。そのためには*.zipなんかを解凍するのにWinzipなんて解凍ソフトを使ったようにtarを解凍するためのものもあるのです。
具体的にはtar.exeというものがWindowsで使える解凍ソフトです。gzip.exeも使えば解凍することができるんですがそれよりはそれらを含めてUnixのコマンドをWindowsでも使えるようにするものがあるのです。それがCygwinというものでCygnusという会社がWindowsでもUnixコマンドが使えるように作ってくれました。まぁ、Emacsを使おうと思ったことからUnixに関係したことをする気になっていることだし、それもいれてしまいましょう。それにこれを両方使うことでかなり幸せになれます。最近だんだん浸透してきているLinuxを使いこなす練習にもなるのでいっそのこといれてしまいましょう。
<Meadowのインストール>
うまくインストールできたら今度はMeadowをインストールです。解凍したら今度はそのフォルダにある、C:\cygwin\usr\local\Meadow\1.10\install.exeを実行するとホームディレクトリを聞かれるので自分の指定したいディレクトリを指定します。ホームディレクトリはWindowsユーザーにはなじみのない考え方だと思います。文字通りそこから何でも始まる場所です。起動するとまずその場所からはじまるのでぼくはCygwinをインストールしたC:\cygwin\home\USERNAMEにしました。USERNAMEはそこに自分の名前なんかのディレクトリを作ればいいと思います。というか、インストールに関しては解凍したときに生成される、README.Meadow.ja、FAQ-Meadow-ja.html,INSTALL.Meadow.jaなんかをみてください。
<Meadowの設定>
インストールするだけで結構大変でしたね。本当に骨が折れます。慣れると簡単に感じますがそれでも面倒なのは確かです。
無事にMeadowが起動できたら、そのときなにやら不満が出てきます。そう、まず画面が変な大きさですね。文字もなにやら不格好です。設定するにはどうしたらいいんだろうか。またもや面倒な予感が…。実はさっき決めたホームディレクトリに.emacsという設定ファイルを作る必要があるのです。さぁ、大変ですね。そこに書き込むのはLLispという言語を使う必要があるのです。そこに書き込む内容をいろんなサイトで教えてくれているところがあります。ぼくもLispはよくわかりませんがどうにかそこで見つけて自分の欲しい機能を書き込んで使っています。でも、その設定は結構細かい設定ができるのでたとえばエディタの背景は当たり前のように使っていた白い画面ではなく本当にいろんな色が使えます。青い画面で赤い文字にすることもできます。
設定は大変かもしれないですがそれらは一気にやるものでもありません。徐々に使いやすいようにしていくものです。とりあえず、今回は~/.emacs(ホームディレクトリは~/と表記する)をいじれば見た目や機能がカスタマイズできると言うことが分かったところでこの辺で。
補足:僕はホームディレクトリっていうのがいまいちよくわかりませんでした。というか、Meadowのインストールの時にホームディレクトリをどうやって作ったなんて忘れていました。で、どうしたらホームディレクトリってところに.emacsを作れるのかなぁっておもっていたんだけど、Meadowでファイルを作るときにミニバッファという一番下にある小さな画面を使います。そこに素直に~/.emacsと打って.emacsを作ると実際にどこだかわからないけどたしかにホームディレクトリに.emacsができているのです。それで、ぼくは初めてその場所を知ったのです(.emacsを検索にかけて)。それでとんでもないところをホームディレクトリにしたことを知って再インストールし治したんですが(^^;;なんも分からないのは初心者なんでとにかくいじってみましょう。苦労した分だけえるものは大きいです。Emacsはエディタというよりは環境というすごく大きな表現のされ方をします。たとえば、ファイルの検索をしたいときにはエクスプローラーを使って探したりしますが、それがEmacsに向かいながらできてしまいます。DOS窓を開いて作業したことのある人も多いと思いますがそれもできてしまいます。とくにプログラム言語をいじりたいという人にとってはとてもかゆいところに手が届くものだと思います。ぼくもプログラムに関してはかなりのど素人です。いろんな開発環境を使ってきましたがどれよりもこれは使い勝手がいいです。
僕の説明は足りないところもあるし、間違っているところもあると思います。まだ発展途上なので許してください。
|