ラベル 設定 の投稿を表示しています。 すべての投稿を表示
ラベル 設定 の投稿を表示しています。 すべての投稿を表示

2009年10月9日金曜日

電子辞書環境の構築

要約

Debian に移行した当初は、別に無くてもいいと思い、何もしなかったのだが、いざ調べるときになって、いちいち紙の辞書を調べるのはかなり億劫なものだということがあらためて分かった。そこで電子辞書環境を再度構築することにした。

参考文献

必要なパッケージ

作業内容

辞書データと appendix データのインストール

辞書データ

辞書データは /usr/local/libdata/ebooks 以下にインストールし、appendix データは /usr/local/libdata/ebooks/appendix 以下に、それぞれインストールする。

辞書データにはカタログと辞書データ本体があるので、それを両方ともコピーする。

# <研究社「新英和・和英中辞典」マウント>
# cd /usr/local
# mkdir -p libdata/ebooks/appendix
# cd libdata/ebooks
# mkdir chujiten
# cd chujiten
# cp /mnt/catalogs .
# cp -R /mnt/chujiten .
# cd ..

# <現代用語の基礎知識 2000 CD-ROM 版 マウント>
# mkdir genkiso-2000
# cd genkiso-2000
# cp /mnt/catalogs .
# cp -R /mnt/gn00ep01 .
# cp -R /mnt/gn00ep02 .
# cd ..

# <辞典盤 マウント>
# mkdir jitenban
# cd jitenban
# cp /mnt/catalogs .
# cp -R /mnt/chiezo .
# cp -R /mnt/chujiten .
# cp -R /mnt/iwakoku .
# cp -R /mnt/mypaedia .
# cd ..

# <学研「現代新国語辞典・漢字源」マウント>
# mkdir kokugo_kanji
# cd kokugo_kanji
# cp /mnt/Catalogs .
# cp -R /mnt/KANJIGEN .
# cp -R /mnt/KOKUGO .

appendix データ

appendix データは、ダウンロードした tar アーカイブを /usr/local/libdata/ebooks/appendix 以下にそのまま展開する。

# cd /usr/local/libdata/ebooks/appendix
# tar xvzf chujiten2-2.0.tar.gz
# tar xvzf gendai2000-1.0.tar.gz
# tar xvzf jitenban-2.4.tar.gz
# tar xvzf kanjigen2-2.0.tar.gz

ebnetd サーバーのインストールと設定

eb ライブラリのビルド

eb ライブラリのビルドは以下のとおり。

$ ./configure
$ make
$ su
# make install
# /sbin/ldconfig

ebnetd のビルド

ebnetd のビルドは以下のとおり。

$ ./configure
$ make
$ su
# make install

ebnetd.conf の設定

ebnetd をインストールすると <インストールプレフィックス>/etc/ebnetd.conf.sample ファイルもインストールされる。このファイルを ebnetd.conf としてコピーし、そこに変更を加える。変更内容は以下のとおり。

--- ebnetd.conf.sample 2009-10-09 13:38:33.000000000 +0900
+++ ebnetd.conf 2009-10-09 13:51:11.000000000 +0900
@@ -9,7 +9,7 @@
 
 ### Port number `ndtpd' binds.
 ### (default: ndtp)
-# ndtp-port  ndtp
+ndtp-port  ndtp
 
 ### Port number `ebhttpd' binds.
 ### (default: http)
@@ -17,22 +17,25 @@
 
 ### Owner of the server process.
 ### (default: none)
-user   ndtpuser
+#user   ndtpuser
 
 ### Group of the server process.
 ### (default: none)
-group   ndtpgrp
+#group   ndtpgrp
 
 ### How many clients can be connected to the server at the same time.
 ### (default: 1)
-# max-clients  1
+max-clients  3
 
 ### Which hosts can or cannot connect to the server.
 ### (default: none)
 hosts   127.0.0.1
-hosts   ::1
-hosts   !?
-hosts   host.your.domain
+hosts   192.168.0.1
+hosts   192.168.0.2
+hosts   192.168.0.3
+#hosts   ::1
+#hosts   !?
+#hosts   host.your.domain
 
 ### Timeout seconds until the server disconnects an idle connection.
 ### (default: 900)
@@ -61,32 +64,51 @@
 ### Book entry
 ###
 begin book
-    ### Name of the book.
-    ### (required)
-    name  jitenban97
-
-    ### Title of the book.
-    ### (required)
-    title  Jitenban 97
-
-    ### Path to a top directory of the book.
-    ### (required)
-    path  /cdrom
-
-    ### Path to a top directory of the appdendix data of the book.
-    ### (default: none)
-    appendix-path /usr/local/share/eb/appendix/jitenban97-2.1
-
-    ### How many clients can access the book at the same time.
-    ### (default: 1)
-    max-clients  1
+    name  chujiten
+    title  Chujiten
+    path  /usr/local/libdata/ebooks/chujiten
+    appendix-path /usr/local/libdata/ebooks/appendix/chujiten2-2.0
+    max-clients  3
+    hosts  127.0.0.1
+    hosts  192.168.0.1
+    hosts  192.168.0.2
+    hosts  192.168.0.3
+end
+
+begin book
+    name  genkiso-2000
+    title  Kiso-Chishiki
+    path  /usr/local/libdata/ebooks/genkiso-2000
+    appendix-path /usr/local/libdata/ebooks/appendix/gendai2000-1.0
+    max-clients  3
+    hosts  127.0.0.1
+    hosts  192.168.0.1
+    hosts  192.168.0.2
+    hosts  192.168.0.3
+end
 
-    ### Which hosts can or cannot access to the book.
-    ### (default: none)
+begin book
+    name  jitenban
+    title  Jitenban
+    path  /usr/local/libdata/ebooks/jitenban
+    appendix-path /usr/local/libdata/ebooks/appendix/jitenban-2.4
+    max-clients  3
+    hosts  127.0.0.1
+    hosts  192.168.0.1
+    hosts  192.168.0.2
+    hosts  192.168.0.3
+end
+
+begin book
+    name  kokugo_kanji
+    title  Kokugo_Kanji
+    path  /usr/local/libdata/ebooks/kokugo_kanji
+    appendix-path /usr/local/libdata/ebooks/appendix/kanjigen2-2.0
+    max-clients  3
     hosts  127.0.0.1
-    hosts  ::1
-    hosts  !?
-    hosts  host.your.domain
+    hosts  192.168.0.1
+    hosts  192.168.0.2
+    hosts  192.168.0.3
 end
 
 ### Add a book group directive (lines between `begin book' and `end'),

/etc/services の変更

ebnetd で使われるポート番号を /etc/services に追加する。このファイルには、もともと以下の定義がある。

search          2010/tcp        ndtp
そこで、これを以下のように変更する。
search          2010/tcp        ndtp ebnet

ebnetd の起動環境設定

前回は単独のデーモンとして使えるように、ブート時に使われるスタートアップスクリプトを用意したのだが、今回は inetd 経由で起動するようにする。そこで、ebnetd のソースに含まれる doc/ebnetd.info-1 内の記述に従い、/etc/inetd.conf の最後に以下の行を追加する。

ebnet      stream  tcp     nowait      root    /usr/local/sbin/ebnetd ebnetd --inetd
それから inetd を再起動する。
# /etc/init.d/openbsd-inetd restart

ebnetd の動作確認

ebnetd の動作確認は、doc/ebnetd.info-1 内の記述に従い、以下のようにする。
まずサーバーが動くホスト(この場合は自ホスト)に telnet で接続する。

$ telnet localhost ebnet
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
そして BOOKLIST コマンドをタイプし、Enter キーを押す。
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
BOOKLIST
辞書とサーバーのインストールと設定が正しければ、利用可能な辞書の一覧が表示される。
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
BOOKLIST
!OK; book names and an empty line follows
chujiten Chujiten
chujiten.app Chujiten
genkiso-2000 Kiso-Chishiki
genkiso-2000.app Kiso-Chishiki
jitenban Jitenban
jitenban.app Jitenban
kokugo_kanji Kokugo_Kanji
kokugo_kanji.app Kokugo_Kanji
終了する時は QUIT コマンドをタイプし、Enter キーを押す。
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
BOOKLIST
!OK; book names and an empty line follows
chujiten Chujiten
chujiten.app Chujiten
genkiso-2000 Kiso-Chishiki
genkiso-2000.app Kiso-Chishiki
jitenban Jitenban
jitenban.app Jitenban
kokugo_kanji Kokugo_Kanji
kokugo_kanji.app Kokugo_Kanji

QUIT
Connection closed by foreign host.
$
以上でサーバー側の作業は完了。

ebview のインストール

最初は、従来どおり、以下に示す ebview のパッチを当ててからビルドした。

--- src/preference.c.orig 2005-10-05 09:41:23.000000000 +0900
+++ src/preference.c 2005-10-05 10:11:16.000000000 +0900
@@ -400,7 +400,7 @@ void  calculate_font_size(){
  PangoFontDescription* desc;
  PangoLanguage* lang;
  PangoFontMap* fontmap;
-#ifndef __WIN32__
+#if !GTK_CHECK_VERSION(2,8,0) && !defined(__WIN32__)
  Display *display;
 #endif
  PangoContext *context;
@@ -420,6 +420,9 @@ void  calculate_font_size(){
  desc = pango_font_description_from_string(fontset_normal);
  lang =  pango_language_from_string("ja");
 
+#if GTK_CHECK_VERSION(2,8,0)
+ fontmap = pango_cairo_font_map_get_default();
+#else
 #ifdef __WIN32__
  fontmap = pango_win32_font_map_for_display();
 #else
@@ -430,7 +433,8 @@ void  calculate_font_size(){
  }
 
  fontmap = pango_x_font_map_for_display(display);
-#endif
+#endif /* __WIN32__ */
+#endif /* GTK_CHECK_VERSION(2,8,0) */
 
  if(fontmap == NULL){
   LOG(LOG_INFO, "fontmap == NULL");

しかし Debian "lenny" でビルドすると、途中で以下のようなエラーが出る。

調べてみると、これについては www.nabble.com/Bug-444523 にパッチが掲載されていた。そこで、それを参考に以下の修正を加えた。
--- ebview-0.3.6.org/src/ebview.c 2004-02-22 12:46:29.000000000 +0900
+++ ebview-0.3.6/src/ebview.c 2009-10-09 14:41:39.000000000 +0900
@@ -15,7 +15,7 @@
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 */
 
-#define GTK_DISABLE_DEPRECATED 1
+//#define GTK_DISABLE_DEPRECATED 1
 
 #define _GLOBAL
 #include 
これでビルドが完了した。
$ パッチを入れる
$ ./configure
$ make
$ su
# make install
これでクライアント側の準備も完了した。

2009年10月8日木曜日

Entrance のインストールと設定

要約


Enlightenment プロジェクトで開発されているディスプレイマネージャEntrance のインストールと設定の記録。

以下の記述で、コマンドプロンプト "#" はスーパーユーザー(root)アカウントを示し、"$" は一般ユーザーアカウントを示す。

参考文献

必要なパッケージ

README ファイルによると、Entrance の構築には以下のライブラリが必要になる。

  • Evas
  • Ecore
  • edje
  • Esmart
  • PAM(オプション)
Entrance のソースコードを含めて、これらのソースはすべて SVN のリポジトリにあるので、以下のコマンドを使ってチェックアウトする。
svn co http://svn.enlightenment.org/svn/e/trunk/パッケージ名
たとえば、
svn co http://svn.enlightenment.org/svn/e/trunk/entrance
svn co http://svn.enlightenment.org/svn/e/trunk/evas
svn co http://svn.enlightenment.org/svn/e/trunk/ecore
svn co http://svn.enlightenment.org/svn/e/trunk/edje
svn co http://svn.enlightenment.org/svn/e/trunk/esmart
のように実行する。PAM はインストール済みなのでそれを使う。

作業内容

ビルド作業

Entrance は、他の E17 関係同様 /opt/e17 以下にインストールするので、インストールプレフィックスを付けてビルドする。

なお、インストール先が標準的な場所ではないので、作業前に PKG_CONFIG_PATH 環境変数と PATH 環境変数を以下のように調整しておく必要がある。

$ ./autogen.sh --prefix=/opt/e17
$ make
$ su
# make install
# /sbin/ldconfig

動作環境の設定

Entrance の基本的な設定は「ディスプレイマネージャ Entrance のインストールと設定」を参照。

注意点

その1

Vine Linux の場合、ディスプレイマネージャは inittab から呼ばれる prefdm から起動されていたが、Debian では起動時のスタートアッププロセスとして登録されている。

/etc/rc0.d/K01gdm -> ../init.d/gdm
/etc/rc1.d/K01gdm -> ../init.d/gdm
/etc/rc6.d/K01gdm -> ../init.d/gdm
/etc/rc2.d/S30gdm -> ../init.d/gdm
/etc/rc3.d/S30gdm -> ../init.d/gdm
/etc/rc4.d/S30gdm -> ../init.d/gdm
/etc/rc5.d/S30gdm -> ../init.d/gdm

Entrance をインストールすると、entrance という名前のスタートアップ用のシェルスクリプトも <インストールプレフィックス>/etc/init.d/entrance という名前でインストールされる。

よって Debian では、/etc/init.d/gdm の代わりに、このインストールされた entrance がブート時に起動するように設定を変更する必要がある。

その2

Entrance の設定ファイル <インストールプレフィックス>/etc/entrance_config.cfg/entrance/session/n/session("n" は数字) というキーに登録されている文字列は、パス名が付いていればセッションを起動するためのコマンドとして認識され、パス名が無ければ単なるセッション名として Xsession に引数として渡される。

Vine Linux の prefdm 以降の処理ではこの文字列を参照して起動するセッションを決めることができた。しかし Debian ではそうはいかないようである。Debian の Xsession では、渡された引数が実行可能ファイルではない場合、警告メッセージを出してフォールバックのセッションが起動してしまう。

また、Entrance は起動可能なセッションを自動的に探し出す機能があるが、その機能で探し出したセッションは Xsession を介さず直接起動されてしまう。これは英語環境では問題ないかもしれないが、少なくとも日本語環境では、Xsession 以降で行われている、日本語入力関係をはじめとする処理内容がすべて飛ばされてしなうので、それでもセッションは起動することは起動するが、きわめて使いにくいセッションになる。

そのため、<インストールプレフィックス>/etc/entrance_config.cfg/entrance/session/n/session("n" は数字)というキーには、セッションを起動するコマンドを、パス名を付けずに登録する必要がある。

その3

Debian の /etc/X11/Xsession を使うとなると、/etc/gdm/Xsession で行われている処理の一部を /etc/X11/Xsession に取り込む必要が出てくる。/etc/gdm/Xsession を利用する場合でも、多少は手を加える必要が出てくるが、前者の方法よりはずっと少なくて済む。

そこで、まず /etc/X11/Xsession/etc/X11/Xsession.original としてバックアップしておく。そして /etc/gdm/Xsession/etc/X11 以下に Xsession という名前でコピーして、それに手を加えて利用することにする。変更内容は以下のとおり。 やっていることは、

  • エラーファイル $HOME/.xsession-errors の設定
  • 言語関係の環境変数設定
  • メッセージなどの出力先を、先に設定したエラーファイルにリダイレクトする設定

設定作業

既存の Xsession のバックアップと新しい Xsession の作成

# cd /etc/X11
# mv Xsession Xsession.original
# cp ../gdm/Xsession .
... ここで、コピーした Xsession を変更する ...

Entrance の設定ファイルにセッション追加

スタートアップスクリプトの入れ替え

# cd /etc/init.d
# cp /opt/e17/etc/init.d/entrance .
# ./gdm stop
# update-rc.d -f gdm remove
# update-rc.d entrance start 99 2 3 4 5 .

再起動

# /sbin/shutdown -r now
以上で、gdm に代わって Entance が立ち上がる。

gdm に戻す場合

gdm に戻す場合は以下のようにする。

# update-rc.d -f entrance remove
# update-rc.d gdm start 30 2 3 4 5 . stop 01 0 1 6 .

2009年10月4日日曜日

Postgesql のインストール

要約

Postgesql 8.4.1 のインストールとデータベースの初期化、およびサーバーの起動と停止までの記録。

なお、"#" はスーパーユーザー (root) のプロンプト、"%" は postgresql データベース管理用ユーザー (postgres) のプロンプト、"$" は一般ユーザーのプロンプトを表す。

参考文献

PostgreSQL 8.3.1 のインストールと設定

必要なパッケージ

ミラーサイトより、 をダウンロードする。

作業内容

チェックサムの確認

$ md5sum -c postgresql-8.4.1.tar.gz.md5

構築

$ ./configure
$ make
$ make check
# make install

設定

既存の postgresql の停止

debian のインストール時に一緒にインストールされたバージョン 8.3 の postgresql が動いているので、まずそのサーバーをシャットダウンし、各ランレベルに登録されているスクリプトを削除する。

# cd /etc/init.d
# ./postgresql-8.3 stop
# update-rc.d -f postgresql-8.3 remove

データベース作成用ディレクトリの準備

バージョン 8.4.1 は /usr/local 以下にインストールしたので、データベースは /usr/local/pgsql/data に作成することにした。

$ sudo mkdir /usr/local/pgsql/data
$ sudo chown postgres /usr/local/pgsql/data

データベースの初期化

サーバーの起動

データベースの作成

試しにテスト用のデータベースを作ってみる。 しかし "fumi" というロールがまだ無いので当然エラーになった。サーバーのログにも以下のメッセージが載っている。

FATAL:  role "fumi" does not exist

そこでまずロールを作成する。

% /usr/local/pgsql/bin/createuser fumi
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n

それから再度テスト用のデータベースを作ってみる。 今度はうまくいった。

サーバーの停止

ここまでできたので、ひとまずサーバーをシャットダウンする。 この結果は、サーバーのログに以下のように載っている。

LOG:  received smart shutdown request
LOG:  autovacuum launcher shutting down
LOG:  shutting down
LOG:  database system is shut down