SAK 図書館
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 編資料