SAK 図書館

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

PostgreSQL 編2 - Cygwin B20、.bashrc、IPC パッチ、PostgreSQL インストール

Windows2000 に PostgreSQL をインストールする手順を整理しておく。
インストールに使用したパッケージは、
  full.exe                               Cygwin B20
  cygwin-b20-local.tar.bz2               Cygwin B20 ツール
  cygwin32_ipc-1.03-bin-patched.tar.bz2  Cygwin B20 IPC パッチ
  postgresql-7.0.2.tar.gz                PostgreSQL 7.0.2
である。

比較的新しい版数の PostgreSQL インストールについては、
PostgreSQL 7.2.3(postgresql-7.2.3.tar.gz)、JDBC pgjdbc2.jar インストール
を参考にして下さい。(参考にならないかも。) (^^;

Cygwin 2.05b のインストールについては、
PostgreSQL + Web 編4 - Cygwin 2.05b、Cygipc 1.11.1 インストール、移行
を参考にして下さい。

また、以下で使用するシェルスクリプト関係 saksh.lzh 1,169 bytes は、
  .bashrc
  sakipc
  sakpsql1
  sakpsql2
  saktool
  saktool.txt
である。ダウンロードして使用して下さい。

■Cygwin B20(full.exe) インストール

  ・Cygwin B20 のインストールは、通常の Windows ソフトインストールと同等
    である。ダイアログに従い順に既定値でインストールすると良い。
    既定値でのインストールでは、c:\cygnus\ としてフォルダが作成される。

■インストールパッケージコピー

  ・Cygwin B20 のインストールフォルダ c:\cygnus\ に
      cygwin-b20-local.tar.bz2               Cygwin B20 ツール
      cygwin32_ipc-1.03-bin-patched.tar.bz2  Cygwin B20 IPC パッチ
      postgresql-7.0.2.tar.gz                PostgreSQL 7.0.2
    をコピーしておく。

■Cygwin B20 の起動

  ・スタートメニュー、プログラムより、Cygnus Solutions、Cygwin B20 を
    起動する。「warning: could not find /tmp, please create!」と表示され
    るが、後の処理で /tmp は作成される。
    HOME は未設定、mount と入力すると、

Device           Directory           Type        Flags
C:               /                   native      text!=binary

    となっており、$PATH で見ると /cygnus/CYGWIN~1/H-I586~1/bin が追加さ
    れている。しかし、Windows2000 のシステム並びにユーザ環境変数の PATH
    には追加されていない。Cygwin B20 の内部だけの処理で良いようである。
    以下、この Cygwin B20 でのインストール処理となる。

■ファイルシステムマウント

  ・/ がシステムルートでは恐いので、c:/cygnus が / となるようにファイル
    システムのマウントを変更する。
    Cygwin B20 のコマンドラインで、次のように入力して変更する。
    尚、マウント変更すると「cygwin-b20/H-i586-cygwin32/bin」のロケーショ
    ンも変わるので、PATH に追加しないとコマンド操作不能になる。
    落ち着いて入力すること。
    尚、アンイストール後に再度インストールしてもマウント設定は記憶してい
    るので再設定の必要はない。

umount /
mount -f c:/cygnus /
export PATH=/cygwin-b20/H-i586-cygwin32/bin:$PATH

  ・mount と入力すると、現在のマウント状況が次のように表示される。

Device           Directory           Type        Flags
c:\cygnus        /                   native      text!=binary

■シェル設定ファイル .bashrc 作成

  ・c:/cygnus/ に .bashrc の名前でテキストファイルを作成する。
    エクスポローラからは名前の制限で作成できないので、エディタの「名前を
    付けて保存」等で作成すると良い。
    このシェル設定ファイルでは、ホームデイレクトリの設定、Cygwin B20 と
    PostgreSQL の環境変数設定を行っておく。

--↓ .bashrc シェル設定ファイル ↓--
export HOME=/
export PATH=$PATH:/usr/local/pgsql/bin:/usr/local/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=/usr/local/pgsql/lib
export PGDATA=/usr/local/pgsql/data
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:/usr/local/lib
cd
ls -aF
--↑ .bashrc シェル設定ファイル ↑--

  ・c:/cygnus/ に .bashrc が上記のとおり作成できれば、Cygwin B20 を
    exit と入力して一度終了し、再度起動する。
    うまく設定できていれば、

./                                     cygwin-b20/
../                                    cygwin-b20-local.tar.bz2
.bash_history                          cygwin32_ipc-1.03-bin-patched.tar.bz2
.bashrc                                postgresql-7.0.2.tar.gz

    のように表示されて起動される。
    別の場所が表示されている場合は、c:/cygnus/ がホームとなっていない。
    「export HOME=/」の記述が間違っているか、先のマウントにミスがある。

■Cygwin B20 ツール(cygwin-b20-local.tar.bz2) インストール

  ・c:/cygnus/ に saktool.txt の名前でテキストファイルを作成する。
    「10.1.1.2」は、自分の IP アドレスに修正すること。

--↓ saktool.txt 標準入力用ファイル ↓--
n
y
y
y
y
l
y
l
y
10.1.1.2
y
--↑ saktool.txt 標準入力用ファイル ↑--

  ・c:/cygnus/ に saktool の名前でシェルスクリプトを作成する。

--↓ saktool シェルスクリプト ↓--
#!/bin/sh
cd
mount -f c:/cygnus/cygwin-b20/share /sw/cygwin-b20/share
bunzip2 -dc cygwin-b20-local.tar.bz2 | tar -xvf -
mv local usr
cd /usr/bin
sh check_cygwin_setup.sh < /saktool.txt
mkdir /bin
cp /cygwin-b20/H-i586-cygwin32/bin/* /bin
mkdir /lib
cp -R /cygwin-b20/H-i586-cygwin32/lib/* /lib
mkdir -p /usr/local/include/sys
cd /usr/local/
mkdir bin
mkdir lib
mkdir pgsql
mkdir -p /usr/src/pgsql
cd
--↑ saktool シェルスクリプト ↑--

  ・次のように

sh /saktool

    と入力する。
    エラーチェックを行っていないので、次の処理結果以外のメッセージがあれ
    ば異常終了している可能性が高い。

...
...
...
local/share/terminfo/z/ztx
local/share/terminfo/z/ztx-1-a
local/share/terminfo/z/ztx11
checking for cygwin...1998-12-3 20:39:18
cygwin installed in /CYGWIN~1/H-I586~1/bin
checking paths ...
You don't have a /bin directory. Would you like to mount cygwin as /bin ?
 [y/n] return: Illegal number: -1
You don't have /tmp - create it? [y/n] You don't have /etc - create it? [y/n] Yo
u don't have /etc/termcap - create it? [y/n] Retrieving termcap from /../etc
Error: can't find termcap file
You don't have /etc/passwd - create it? [y/n] Running on NT, create domain or lo
cal password file [d/l] userid is
You don't have /etc/group - create it? [y/n] Running on NT, create domain or loc
al group file [d/l] You don't have /etc/hosts - create it? [y/n] Machine name is
 SAK-DESIGN
Please enter your ip address checking environment ...
HOME is /
TERM is not set to linux or ansi, rectify? [y/n] check_cygwin_setup.sh: cannot c
reate //.bashrc: directory nonexistent

  ・ls と入力すると、

bin                                    postgresql-7.0.2.tar.gz
cygwin-b20                             saktool
cygwin-b20-local.tar.bz2               saktool.txt
cygwin32_ipc-1.03-bin-patched.tar.bz2  tmp
etc                                    usr
lib

    のようになっているのを確認する。

  ・mount と入力すると、

Device           Directory           Type        Flags
c:\cygnus\cygwin-b20\share /sw/cygwin-b20/share    native      text!=binary
c:\cygnus        /                   native      text!=binary

    となっているとを確認する。

  ・c:/cygnus/etc/ の hosts をエディタで見ると、

SAK-DESIGN 10.1.1.2
localhost 127.0.0.1

    のようになっているのを確認する。

■Cygwin B20 IPC パッチ(cygwin32_ipc-1.03-bin-patched.tar.bz2) インストール

  ・c:/cygnus/ に sakipc の名前でシェルスクリプトを作成する。

--↓ sakipc シェルスクリプト ↓--
#!/bin/sh
cd
bunzip2 -dc cygwin32_ipc-1.03-bin-patched.tar.bz2 | tar -xvf -
cp /cygwin32_ipc-1.03/bin/* /usr/local/bin
cp /cygwin32_ipc-1.03/lib/* /usr/local/lib
cp /cygwin32_ipc-1.03/include/sys/* /usr/local/include/sys/
cd
--↑ sakipc シェルスクリプト ↑--

  ・次のように

sh /sakipc

    と入力する。
    エラーチェックを行っていないので、次の処理結果以外のメッセージがあれ
    ば異常終了している可能性が高い。

...
...
...
cygwin32_ipc-1.03/include/sys/sem.h
cygwin32_ipc-1.03/include/sys/shm.h
cygwin32_ipc-1.03/ipc.patch

■PostgreSQL(postgresql-7.0.2.tar.gz) インストール

  ・c:/cygnus/ に sakpsql1 の名前でシェルスクリプトを作成する。

--↓ sakpsql1 シェルスクリプト ↓--
#!/bin/sh
cd /usr/src/pgsql
tar -zxf /postgresql-7.0.2.tar.gz
cd /usr/include
mkdir sys
mkdir netinet
cd /usr/src/pgsql/postgresql-7.0.2/src/win32
cp un.h /usr/include/sys
cp endian.h /usr/include
cp tcp.h /usr/include/netinet
cd /usr/src/pgsql/postgresql-7.0.2/src
./configure --enable-multibyte=EUC_JP
--↑ sakpsql1 シェルスクリプト ↑--

  ・次のように

sh /sakpsql1

    と入力する。
    次のように「Invalid configuration `i1586-pc-cygwin': machine `
    i1586-pc' not recognized」とエラーになる場合は Pentium4 が
    config.sub に定義されていないのが原因である。

creating cache ./config.cache
checking host system type... Invalid configuration `i1586-pc-cygwin': machine `i
1586-pc' not recognized


*************************************************************
configure does not currently recognize your operating system,
therefore you must do a manual configuration of:

Please contact scrappy@hub.org to see about rectifying this,
including the above 'checking host system type...' line
*************************************************************

    これはかなり苦労した。
    色々と試行錯誤の結果、config.sub の「c4x*)」と「*)」の間に「i*86-pc)」
    の 3 行を追加する。

-- /usr/src/pgsql/postgresql-7.0.2/src/config.sub 876 line --
	c4x*)
		basic_machine=c4x-none
		os=-coff
		;;
	i*86-pc)
		basic_machine=$basic_machine
		;;
	*)
		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
		exit 1
		;;

    更に /usr/src/pgsql/postgresql-7.0.2/src/template/ の cygwin_nt-5.0
    を見に行くので、template/ にある cygwin32 を cygwin_nt-5.0 として
    コピーする。この後に

cd /usr/src/pgsql/postgresql-7.0.2/src
./configure --enable-multibyte=EUC_JP

    と手作業で入力する。
    正常にコンフィグレーションが完了すると、次のように終了する。

...
...
...
creating pl/tcl/mkMakefile.tcldefs.sh
creating test/regress/GNUmakefile
creating include/config.h
linking ./backend/port/dynloader/win.c to backend/port/dynloader.c
linking ./backend/port/dynloader/win.h to include/dynloader.h
linking ./include/port/win.h to include/os.h
linking ./makefiles/Makefile.win to Makefile.port
linking ./backend/port/tas/dummy.s to backend/port/tas.s
linking ./include/port to interfaces/odbc/port
linking ./makefiles to interfaces/odbc/makefiles
linking ./template to interfaces/odbc/template
linking ./include/config.h to interfaces/odbc/config.h

  ・c:/cygnus/ に sakpsql2 の名前でシェルスクリプトを作成する。

--↓ sakpsql2 シェルスクリプト ↓--
#!/bin/sh
cd /usr/src/pgsql/postgresql-7.0.2/src
make all
make install
cp /usr/local/pgsql/lib/pq.dll /usr/local/pgsql/bin
cd
--↑ sakpsql2 シェルスクリプト ↑--

  ・次のように

sh /sakpsql2

    と入力する。
    う〜ん、エラーがあってもわかんないかも。(^^;

-- make all ---
...
...
...
All of PostgreSQL is successfully made. Ready to install.

-- make install --
...
...
...
Thank you for choosing PostgreSQL, the most advanced open source database 
engine.

■PostgreSQL データベース初期化

  ・次のように

initdb

    と入力する。
    正常に初期化できれば、次のように表示される。

This database system will be initialized with username "administrator".
This user will own all the data files and must also own the server process.

Creating database system directory /usr/local/pgsql/data
Creating database system directory /usr/local/pgsql/data/base
Creating database XLOG directory /usr/local/pgsql/data/pg_xlog
Creating template database in /usr/local/pgsql/data/base/template1
Creating global relations in /usr/local/pgsql/data/base
Adding template1 database to pg_database

Creating view pg_user.
Creating view pg_rules.
Creating view pg_views.
Creating view pg_tables.
Creating view pg_indexes.
Loading pg_description.
Vacuuming database.

Success. You can now start the database server using:

        /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
or
        /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start

■後始末

  ・以上が正常に終了すれば、/ の次のファイルは不要である。

  cygwin-b20-local.tar.bz2
  cygwin32_ipc-1.03-bin-patched.tar.bz2
  postgresql-7.0.2.tar.gz
  sakipc
  sakpsql1
  sakpsql2
  saktool
  saktool.txt

■PostgreSQL 編、JAVA Servlet、JSP 編資料
■MySQL 編資料
■SQL 基礎編資料
■SQL 基礎実地編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索



Copyright (C) 1999-2017 Y.SAK