Hatena::Grouparaistudy

czk-htnの日記

2010-11-29

[] CentOS-5.4 64bit に Oracle 10.2.0.1 をインストール (oratool編) 21:27


no title

/opt のマウント

$ sudo /sbin/mkfs.ext3 /dev/sdc 
$ sudo mount /dev/sdc /opt

** oratoolインストール

>|shell|
$ sudo rpm -ivh ~/Desktop/oratoolkit-1.0.2.1.4-1.noarch.rpm
$ su - root
# passwd oracle
# exit
$ sudo /opt/oracle/otk/current/bin/installManager swReqCheck osSetup10gR2.cfg

ログは /var/opt/oracle/otk/1.0/log-old/installManager.log に、詳細ログは /var/opt/oracle/otk/1.0/log-old/installManager/swreqcheck-20101129_232429.log に出力される。

詳細ログからインストールされていない必須パッケージを抽出する。

# su - root
# cd /var/opt/oracle/otk/1.0/log-old/installManager
# ls -ltr
# grep 'not found' swreqcheck-*.log | awk '{print $5 }' | sort | uniq
compat-db
compat-libstdc++-296
compat-libstdc++-33
gcc
gcc-c++
glibc-devel
glibc-headers
kernel-headers
libXp
libgomp
libstdc++-devel
sysstat
unixODBC
unixODBC-devel
$ sudo yum install compat-db \
  compat-libstdc++-296 \
  compat-libstdc++-33 \
  gcc \
  gcc-c++ \
  glibc-devel \
  glibc-headers \
  kernel-headers \
  libXp \
  libgomp \
  libstdc++-devel \
  sysstat \
  unixODBC \
  unixODBC-devel
$ sudo /opt/oracle/otk/current/bin/installManager swReqCheck osSetup10gR2.cfg

必要なパッケージをyumインストールする。インストールしたら、もう一度チェックを走らせる。

結果1件WARNINGがでているが「CentOS上での動作はOracleでサポートされていない」という当然の警告なので気にしない。

$ sudo grep -i warn /var/opt/oracle/otk/1.0/log-old/installManager/swreqcheck-20101129_233958.log
20101129_233959: Warning: Oracle software runs on CentOS however this combination is NOT supported by Oracle
20101129_234006: Info: Action swReqCheck of installManager ended with one WARNING

rlwrapのコンパイル

rlwrapはreadlineラッパー。rlwrap経由でsqlplusを使うと、sqlplusでもコマンド履歴を扱うことができるようになる。

HowTo通りにやるとreadlineライブラリがないと失敗するので、realine-develをあらかじめインストールしておく。

# sudo yum install readline-devel
# cd /opt/oracle/otk/current/tools/rlwrap
# ./configure && make
# make install
# /usr/local/bin/rlwrap -v
rlwrap 0.30

osSetup

osSetup10gR2.cfg は変更する必要はない。

# cd /opt/oracle/otk/current/conf/installManager/
# vi osSetup10gR2.cfg
(変更不要)
# sdiff -s osSetup10gR2.cfg sample/osSetup10gR2.cfg
(差異なし)
# /opt/oracle/otk/current/bin/installManager osSetup osSetup10gR2.cfg

swInst

サイレントモードでOracle Universal Installerが起動して、自動的にインストールが進む。

公式サイトの手順では大文字小文字が間違っているので注意。Linuxlinux

# cd /var/opt/oracle/repository/
# mv ~/Desktop/10201_database_linux_x86_64.cpio.gz .
# mv ~/Desktop/10201_companion_linux_x86_64.cpio.gz .
# su - oracle
oracle% bash
oracle$ cd $INSTALL_CONF
oracle$ cp sample/swInstEeSrv10gR2-Step*-linux-x86_64.cfg .
oracle$ installManager swInst swInstEeSrv10gR2-Step1-linux-x86_64.cfg

こんなエラーがでてインストールが途中で止まってしまった。

SEVERE:次の変数に対する値を、コマンドラインまたはレスポンス・ファイルから取得できませんでした。
  DEP_MODE(InstallType),
  TLDepModes(Toplevelinstalltype)
サイレント・インストールを続行できません。

ログファイルから原因を調べる。

# less /opt/oracle/oraInventory/logs/installActions*.log

どうやら、使ったサイレントインストール用のレスポンスファイルは以下のようだ。

/opt/oracle/otk/1.0/conf/installManager/response/10_2_0_1_SE.rsp

/opt/oracle/otk/1.0/conf/installManager/response/10_2_0_1_EE.rsp

で、INSTALL_TYPE="Enterprise Edition"とあるが、正しい指定方法は"EE"らしいので修正して再度実行する。

oracle$ cd /opt/oracle/otk/1.0/conf/installManager/response/
oracle$ cp -pi 10_2_0_1_EE.rsp 10_2_0_1_EE.rsp.org
oracle$ vi 10_2_0_1_EE.rsp
oracle$ diff -U 1 10_2_0_1_EE.rsp.org 10_2_0_1_EE.rsp
--- 10_2_0_1_EE.rsp.org 2009-05-12 23:40:15.000000000 +0900
+++ 10_2_0_1_EE.rsp     2010-11-30 11:35:35.000000000 +0900
@@ -329,3 +329,3 @@
 
-INSTALL_TYPE="Enterprise Edition"
+INSTALL_TYPE="EE"
oracle$ bash
oracle$ cd $INSTALL_CONF
oracle$ installManager swInst swInstEeSrv10gR2-Step1-linux-x86_64.cfg

ここまでで一端インストールを中断。root権限でシェルを実行し、/etc/oratabや/usr/local/bin/oraenvなどのファイルを作成する。

oracle$ exit
oracle$ exit
# /opt/oracle/eesrv/10.2.0/db1/root.sh
# su - oracle
oracle$ bash
oracle$ cd $INSTALL_CONF
oracle$ installManager swInst swInstEeSrv10gR2-Step2-linux-x86_64.cfg
(↓パッチを適用する場合)
oracle$ installManager swInst swInstEeSrv10gR2-Step3-linux-x86_64.cfg
oracle$ exit
oracle$ exit
# /opt/oracle/eesrv/10.2.0/db1/root.sh

データベースを作成する

ORACLE_HOME と データファイルの作成先ディレクトリを指定する。

# su - oracle
oracle$ cd $INSTALL_CONF
oracle$ ls -1 dbSetup*.cfg
dbSetup-dev.cfg
dbSetup-prod.cfg
dbSetup-test.cfg
$ vi dbSetup-prod.cfg
$ sdiff -s dbSetup-prod.cfg sample/dbSetup-prod.cfg
ORACLE_HOME="$ORACLE_BASE/eesrv/10.2.0/db1"                   | ORACLE_HOME="$ORACLE_BASE/sesrv/11.1.0/db1"
DATA01="/opt/oracle/data01/rdbms/${DB_NAME}"                  | DATA01="/data01/rdbms/${DB_NAME}"
DATA02="/opt/oracle/data02/rdbms/${DB_NAME}"                  | DATA02="/data02/rdbms/${DB_NAME}"
PWFILE="/opt/oracle/data01/rdbms/${DB_NAME}/pfile"            | PWFILE="/data01/rdbms/${DB_NAME}/pfile"
UTL="/opt/oracle/data01/utl/$DB_NAME"                         | UTL="/data01/utl/$DB_NAME"
$ installManager dbSetup dbSetup-prod.cfg

もし途中でデータベースの作成に失敗した場合は、Oracleインスタンスが起動したままの状態になる場合がある。そのままだと再施行できないため、下記の手順でインスタンスをシャットダウンする。

oracle$ bash
oracle$ sourceProdEnv
oracle$ sqlplus sys/manager
sql> shutdown immeidate
sql> exit
トラックバック - http://araistudy.g.hatena.ne.jp/czk-htn/20101129

2010-11-26

[] CentOS-5.4 64bit に Oracle 10.2.0.1 をインストール 21:27

この手順ではインストールはまだ成功していません!!

事前準備

Oracleインストール先として5GB(製品: 2GB + DB: 1.5GB + 予備: 1.5GB)ほどのスペースを用意しておく。今回はVMWareを用いたため、新しい仮想ディスクを追加し、/opt としてマウントした。

$ sudo /sbin/mkfs.ext3 /dev/sdc
$ sudo mount /dev/sdc /opt
$ df -k /opt
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sdc               5160576    141444   4756988   3% /opt

次にカーネルパラメータを修正する。いくつかはすでにOracle推奨値より大きかったためコメントアウトする。

/etc/sysctl.conf
# -- for oracle 2010.11.27
#kernel.shmall = 2097152 
#kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
# -- for oracle 2010.11.27
/etc/security/limits.conf
# -- for oracle 2010.11.27
oracle           soft    nproc   2047
oracle           hard    nproc   16384
oracle           soft    nofile  1024
oracle           hard    nofile  65536
# -- for oracle 2010.11.27
/etc/pam.d/login
# -- for oracle 2010.11.27
session    required     pam_limits.so
# -- for oracle 2010.11.27
/etc/profile
# -- for oracle 2010.11.27
if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else  
              ulimit -u 16384 -n 65536
        fi
fi
# -- for oracle 2010.11.27

/opt/oracle ディレクトリ作成

どこにインストールしてもいいんだけど /opt/oracle が一般的かも。オーナーやパーミッションも変えておく。

$ sudo /usr/sbin/groupadd oinstall
$ sudo /usr/sbin/groupadd dba
$ sudo /usr/sbin/useradd -g oinstall -G dba oracle
$ sudo passwd oracle
$ sudo mkdir -p /opt/oracle
$ sudo chown oracle:dba /opt/oracle

ファイル入手

Oracle Database Software Downloads | Oracle Technology Network | Oracle

ときたまダウンロードに失敗してファイルが破損している場合もあるので、ちゃんとcksumを確かめること。

$ cksum 10201_database_linux_x86_64.cpio.gz 
2921604215 758433170 10201_database_linux_x86_64.cpio.gz
$ cksum 10201_companion_linux_x86_64.cpio.gz 
2134485797 736828852 10201_companion_linux_x86_64.cpio.gz

ファイル展開

$ cd /tmp
$ gunzip -cd 10201_database_linux_x86_64.cpio.gz | cpio -idmv
$ gunzip -cd 10201_companion_linux_x86_64.cpio.gz | cpio -idmv

gcc、libXpインストール

そのまま runInstaller すると libXp.so.6 が見つからないというエラーになるので、yumを使ってライブラリインストールする。またインストーラのチェックでgccも求められるので追加しておく。

glibc-develはインストールの途中でmakeが失敗するため。ログをみると下記のようなメッセージがでている。これはglibc-develをインストールすれば解決する。

/usr/bin/ld: crt1.o: No such file: No such file or directory
$ sudo yum install libXp
$ sudo yum install gcc
$ sudo yum install glibc-devel

インストール

$ cat /proc/version 
Linux version 2.6.18-164.11.1.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Wed Jan 20 07:32:21 EST 2010

CentOSメディアからインストールした状態だとバージョンをこのように返す。OracleInstallerは"redhat-4"として扱うので処理は継続される。更新を適用するとOSチェックで引っかかりインストーラが起動しないので注意。その場合は -ignoreSysPrereqs オプションをつけて無理矢理インストールすることになる。


$ su - oracle
$ cd /tmp/database
$ ./runInstaller -ignoreSysPrereqs

結果

インストーラの途中で以下のようなエラーがでて失敗する。解決するにはoratoolが必要になりそうなので、次回はそちらを試してみる。

lxu4dec.c:(.text+0x18b): undefined reference to `lxujmd'
トラックバック - http://araistudy.g.hatena.ne.jp/czk-htn/20101126

2010-07-24

[] Emacs-23.2 for Windowsを試す 15:24

Emacs23本体のダウンロード

まずはEmacs本体をダウンロードする。GNU Emacs - GNU Projectより"Obtaining/Downloading GNU Emacs"から"GNU mirror"をたどりダウンロードサイトを決める。今回は国内ミラーサイト ftp://ftp.ring.gr.jp/pub/GNU/emacs/windows/ を利用した。


ダウンロードしたZIPファイルを C:\emacs などに展開する。

EmacsアイコンCarbon Emacsと同じものになってるよ!


bin/ ディレクトリの中の runemacs.exe を実行して Emacs を起動する。日本語表示、MS-IMEでの入力など、ひとまずこの状態でも特に問題なく使えるようだ。

ただこのままでは作業環境としてあまりにも貧弱なので、なにはともかくanything。


anything導入のeverything 〜3分で使えるanything.el〜 - http://rubikitch.com/に移転しましたを参考にanything.elを入れるわけだが、手順としては install-elisp → auto-install → anything という流れになる。



install-elisp

install-elisp-from-gist - http://rubikitch.com/に移転しました から install-elisp.el をダウンロードし、%HOME%/.emacs.d に保存。なお、環境変数HOMEは C:\home\user など適当なディレクトリを設定済みとしている。

ダウンロードしたファイルを dired (C-x d)で開きバイトコンパイル(B)する。次にロード(L)。

auto-install

auto-install.elでEmacsLispパッケージを自動インストール→anything.el関連を一括インストール - http://rubikitch.com/に移転しました の手順に従う。

M-x install-elisp-from-emacswiki
PageName: auto-install.el
C-c C-c

.emacsに加える設定は %HOME%/.emacs.d 以下に init.d というディレクトリを作成し、099-auto-install.el というファイル名で保存する。(読み込み順序を制御したい場合があるだけなので番号は適当でOK)。保存したら dired でファイルをロードしておく。

~/.emacs.d/init.d/099-auto-install.el
(require 'auto-install)
(setq auto-install-directory "~/.emacs.d/auto-install/")
(auto-install-update-emacswiki-package-name t)
(auto-install-compatibility-setup)             ; 互換性確保

anything.el

anything導入のeverything 〜3分で使えるanything.el〜 - http://rubikitch.com/に移転しましたの手順に従う。

anything-gtags.el は gtags が入っていないとコンパイルエラーになるが、後から対応するので放って置いて問題ない。

M-x auto-install-batch
Extension Name: anything
C-c C-c

GNU Global (gtags)

GNU GLOBAL source code tagging system から gtags の Windowsバイナリダウンロードする。

"Download" → "Binary archive", "DOS and Windows 32 version" → http://adoxa.110mb.com/global/index.html

今回は GLOBAL 5.9.1 を使用した。

ダウンロードしたアーカイブを適当な場所に展開し、バイナリelispをコピーする。

  • glo591wb\bin\*.* → c:\emacs\bin\
  • glo591wb\share\gtags\gtags.el → %HOME%\.emacs.d\

IPA (In-place annotations)

gtags と同様、anythingから要求されるelispインストールする。こちらもauto-installで簡単。

M-x auto-install-from-emacswiki
PageName: ipa.el
C-c C-c

再anything

要求されるelispインストールできたら、念のためもう一度 auto-install-batch で anything をインストールしておく。

M-x auto-install-batch
Extension Name: anything
C-c C-c
~/.emacs.d/init.d/099-anything.el
(require 'anything-startup)

~/.emacs

このままだと再起動時に elisp が読み込まれないので、.emacs.el に仕掛けをしていく。ただしせっかくEmacs23を使っているので、Emacs22から導入された ~/.emacs.d/init.el に初期化設定を行う。


まず load-path を設定し、次に ~/.emacs.d/init.d/*.el を番号順に順次ロードしていく。init.d による分割.emacsの考えは 分割 .emacs のすゝめ « 【IT-rescue】 から拝借。なお .emacs文字コードJISでないとエラーになるので保存する際は C-x Enter f ISO-2022-JP文字コード変換してから保存すること。

~/.emacs.d/init.el
(setq load-path
      (append
       (list 
	(expand-file-name "~/.emacs.d/")
	(expand-file-name "~/.emacs.d/auto-install")
	) load-path))

;; 分割 .emacs のすゝめ
;; http://memo.jj-net.jp/41
;; 2010-07-24
(let* ((dir "~/.emacs.d/init.d")
       (el-suffix "\\.el\\'")
       (files (mapcar
	       (lambda (path) (replace-regexp-in-string el-suffix "" path))
	       (directory-files dir t el-suffix))))
  (while files
    (load (car files))
    (setq files (cdr files))))

追加elisp

後は好き好きにelispを入れていけばOK。auto-install に対応していないものは、個別に ~/.emacs.d 以下にファイルをダウンロードして、~/.emacs.d/init.d/NNN-xxxx.el に初期化設定をしていく。

ちなみに自分が使っているelispは以下のとおり。


[] elsccreen + APELをインストールする 15:24

APEL-10.8

elscreeはAPELを使うのでまずこちらを入れる。

http://www.kanji.zinbun.kyoto-u.ac.jp/~tomo/elisp/APEL/index.html.ja からアーカイブダウンロードしてきて展開し、中のapel-10.8フォルダを ~/.emacs.d/ にコピーする。


次にバイトコンパイルする。BATファイルが提供されているので、makeit.batをエディタで開きEMACSを適切なパスに修正する。その後コマンドプロンプトからバッチを実行する。

set EMACS=C:\emacs-23.2\bin\emacs.exe


> cd %HOME%\.emacs.d\apel-10.8
> makeit.bat elc

elscreen

APELにパスを通したいので、先に scratch バッファーでload-pathを変更する。

(setq load-path
      (append
       (list 
	(expand-file-name "~/.emacs.d/apel-10.8")
	) load-path))

http://www.morishima.net/~naoto/software/elscreen/index.php.ja :title] から elscreen-1.4.6.tar.gz をダウンロードして展開し、elscreen.el を ~/.emacs.d にコピーする。バイトコンパイルしたら完了。

最後に ~/.emacs.d/init.d/099-elscreen.el を作成し、ロードしておく。ちなみにelscreeのコマンドプレフィックスは(FireFoxっぽく) Ctrl + t にしてる。

~/.emacs.d/init.d/099-elscreen.el
(setq load-path
      (append
       (list 
	(expand-file-name "~/.emacs.d/apel-10.8")
	) load-path))

(setq elscreen-prefix-key "\C-t")
(require 'elscreen)
トラックバック - http://araistudy.g.hatena.ne.jp/czk-htn/20100724

2010-05-11

[] LFS 番外編 $LFSのマウント 07:28

lfs ユーザで $LFS 以下をマウント、アンマウントするには sudo 権限を与えておく必要がある。root になって /etc/sudoers を編集する。

# visudo
lfs     ALL=STORAGE

これで mount, unmount コマンドが実行できるようになる。

lfs ユーザに戻り、sudo で mount する。

$ sudo mount -v -t ext3 /dev/sdb2 $LFS
$ sudo mount -v -t ext3 /dev/sdb1 $LFS/boot

[] LFS part4 07:28

5.4. Binutils-2.20 - 1回め

標準ビルド単位(Standard Build Unit; SBU)値をtimeを用いて計測する。

$ cd $LFS/sources
$ tar xjf binutils-2.20.tar.bz2
$ mkdir -v ../binutils-build
$ cd ../binutils-build
$ time { ../binutils-2.20/configure \
    --target=$LFS_TGT --prefix=/tools \
    --disable-nls --disable-werror \
    && make && make install; } 

...

real    3m45.427s
user    1m30.113s
sys     1m39.119s

概ね4分。ということで SBU = 4。

binutils でインストールされたファイルを確認してみる。

$ find /tools/ -type f |xargs file
/tools/lib64/libiberty.a:                                 current ar archive
/tools/bin/x86_64-lfs-linux-gnu-size:                     ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
/tools/bin/x86_64-lfs-linux-gnu-strip:                    ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
/tools/bin/x86_64-lfs-linux-gnu-readelf:                  ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
/tools/bin/x86_64-lfs-linux-gnu-ar:                       ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
/tools/bin/x86_64-lfs-linux-gnu-ranlib:                   ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
/tools/bin/x86_64-lfs-linux-gnu-addr2line:                ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped/tools/bin/x86_64-lfs-linux-gnu-objdump:                  ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped/tools/bin/x86_64-lfs-linux-gnu-objcopy:                  ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped/tools/bin/x86_64-lfs-linux-gnu-ld:                       ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped/tools/bin/x86_64-lfs-linux-gnu-strings:                  ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped/tools/bin/x86_64-lfs-linux-gnu-c++filt:                  ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped/tools/bin/x86_64-lfs-linux-gnu-as:                       ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped/tools/bin/x86_64-lfs-linux-gnu-nm:                       ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped/tools/bin/x86_64-lfs-linux-gnu-gprof:                    ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
/tools/share/info/configure.info:                         data
/tools/share/info/standards.info:                         data
/tools/share/info/bfd.info:                               data
/tools/share/info/as.info:                                data
/tools/share/info/gprof.info:                             data
/tools/share/info/binutils.info:                          data
/tools/share/info/ld.info:                                data
/tools/share/man/man1/x86_64-lfs-linux-gnu-ar.1:          troff or preprocessor input text
/tools/share/man/man1/x86_64-lfs-linux-gnu-c++filt.1:     troff or preprocessor input text
/tools/share/man/man1/x86_64-lfs-linux-gnu-nlmconv.1:     troff or preprocessor input text
/tools/share/man/man1/x86_64-lfs-linux-gnu-windres.1:     troff or preprocessor input text
/tools/share/man/man1/x86_64-lfs-linux-gnu-nm.1:          troff or preprocessor input text
/tools/share/man/man1/x86_64-lfs-linux-gnu-objcopy.1:     troff or preprocessor input text
/tools/share/man/man1/x86_64-lfs-linux-gnu-as.1:          troff or preprocessor input text
/tools/share/man/man1/x86_64-lfs-linux-gnu-ld.1:          troff or preprocessor input text
/tools/share/man/man1/x86_64-lfs-linux-gnu-ranlib.1:      troff or preprocessor input text
/tools/share/man/man1/x86_64-lfs-linux-gnu-objdump.1:     troff or preprocessor input text
/tools/share/man/man1/x86_64-lfs-linux-gnu-size.1:        troff or preprocessor input text
/tools/share/man/man1/x86_64-lfs-linux-gnu-readelf.1:     troff or preprocessor input text
/tools/share/man/man1/x86_64-lfs-linux-gnu-strip.1:       troff or preprocessor input text
/tools/share/man/man1/x86_64-lfs-linux-gnu-strings.1:     troff or preprocessor input text
/tools/share/man/man1/x86_64-lfs-linux-gnu-dlltool.1:     troff or preprocessor input text
/tools/share/man/man1/x86_64-lfs-linux-gnu-windmc.1:      troff or preprocessor input text
/tools/share/man/man1/x86_64-lfs-linux-gnu-addr2line.1:   troff or preprocessor input text
/tools/share/man/man1/x86_64-lfs-linux-gnu-gprof.1:       troff or preprocessor input text
/tools/x86_64-lfs-linux-gnu/bin/nm:                       ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
/tools/x86_64-lfs-linux-gnu/bin/ar:                       ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
/tools/x86_64-lfs-linux-gnu/bin/strip:                    ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
/tools/x86_64-lfs-linux-gnu/bin/as:                       ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
/tools/x86_64-lfs-linux-gnu/bin/objdump:                  ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
/tools/x86_64-lfs-linux-gnu/bin/objcopy:                  ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
/tools/x86_64-lfs-linux-gnu/bin/ranlib:                   ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
/tools/x86_64-lfs-linux-gnu/bin/ld:                       ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/i386linux.xu:   ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_i386.xdc:   ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_i386.xu:    ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/i386linux.xbn:  ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_x86_64.xdc: ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/i386linux.x:    ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_x86_64.xdw: ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/i386linux.xr:   ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_l1om.x:     ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_l1om.xn:    ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_x86_64.xu:  ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_x86_64.xr:  ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_i386.xr:    ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_l1om.xbn:   ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_i386.xsw:   Palm OS dynamic library data "/* Script for --shared -z combr"
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_i386.xw:    ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_i386.xdw:   ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_x86_64.xd:  ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_i386.xsc:   ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_x86_64.xs:  ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_x86_64.xsc: ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_i386.xs:    ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_l1om.xdw:   ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_l1om.xsc:   ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_x86_64.xw:  ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_x86_64.x:   ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_l1om.xdc:   ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_i386.xc:    ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_l1om.xw:    ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/i386linux.xn:   ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_i386.x:     ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_x86_64.xn:  ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_l1om.xs:    ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_x86_64.xc:  ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_i386.xn:    ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_l1om.xd:    ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_x86_64.xbn: ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_x86_64.xsw: Palm OS dynamic library data "/* Script for --shared -z combr"
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_i386.xbn:   ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_l1om.xsw:   Palm OS dynamic library data "/* Script for --shared -z combr"
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_l1om.xc:    ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_l1om.xr:    ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_l1om.xu:    ASCII C program text
/tools/x86_64-lfs-linux-gnu/lib/ldscripts/elf_i386.xd:    ASCII C program text

/bin (/tools/x86_64-lfs-linux-gnu/bin) の下のファイルに注目してみる。

ar
create, modify, and extract from archives:
as
the portable GNU assembler.:
ld
The GNU linker:
nm
list symbols from object files:
objcopy
copy and translate object files:
objdump
objdump - display information from object files.:
ranlib
generate index to archive.:
strip
Discard symbols from object files.:

コンパイルが終わったら作業ディレクトリを消しておく。

$ cd $LFS/sources
$ rm -rf binutils-build/ binutils-2.20/

[] LFS part5 07:28

5.5. GCC-4.4.3 - 1回め

gccのTARファイルを展開したディレクトリにmpfrとgmpも展開する。ビルドは専用ディレクトリ(gcc-build)を作成し、そこで行う。

$ cd $LFS/sources
$ tar xjf gcc-4.4.3.tar.bz2
$ cd gcc-4.4.3
$ tar xjf ../mpfr-2.4.2.tar.bz2
$ mv -v mpfr-2.4.2 mpfr
$ tar xjf ../gmp-5.0.0.tar.bz2
$ mv -v gmp-5.0.0 gmp
$ mkdir -v gcc-build
$ cd gcc-build
$ ../gcc-4.4.3/configure \
    --target=$LFS_TGT --prefix=/tools \
    --disable-nls --disable-shared --disable-multilib \
    --disable-decimal-float --disable-threads \
    --disable-libmudflap --disable-libssp \
    --disable-libgomp --enable-languages=c
$ make && make install

...

real    20m38.935s
user    8m12.243s
sys     5m53.496s

gccはSBUが5なので予定通り20分ほどで完了。

LFSの説明にある通り、libgcc_eh.a が作成されないので libgcc.a へのシンボリックリンクを作成する。

$ $LFS_TGT-gcc -print-libgcc-file-name
/mnt/lfs/tools/bin/../lib/gcc/x86_64-lfs-linux-gnu/4.4.3/libgcc.a
$ ln -vs libgcc.a `$LFS_TGT-gcc -print-libgcc-file-name | sed  's/libgcc/&_eh/'`
トラックバック - http://araistudy.g.hatena.ne.jp/czk-htn/20100511

2010-03-13

[][] WindowsXP + Apache 2.2 + ruby-1.8.7 + fastcgi 06:59

最初に

当初 ActiveRuby で fastcgi 環境を作ろうと試みたのですが、いざ fcgi にアクセスしてみると

[Sat Mar 13 20:58:18 2010] [crit] (OS 3)指定されたパスが見つかりません。  : FastCGI: can't start (dynamic) server "C:/app/kagemai-0.8.8/html/guest.fcgi": spawn_fs_process() failed
[Sat Mar 13 20:58:23 2010] [alert] [client 127.0.0.1] FastCGI: failed to connect to (dynamic) server "C:/app/kagemai-0.8.8/html/guest.fcgi": something is seriously wrong, any chance the socket/named_pipe directory was removed?, see the FastCgiIpcDir directive
[Sat Mar 13 20:58:23 2010] [error] [client 127.0.0.1] FastCGI: incomplete headers (0 bytes) received from server "C:/app/kagemai-0.8.8/html/guest.fcgi"

とエラーがでて実行できませんでした。どうやらActiveRubyには fcgi.so が含まれていないのが原因? のようです。fastcgi のコンポーネント構成がどうなっているのか詳しくないので、fcgi.soがないことがどこに不足することにあたるのかは分かっていないのですが、gem でゴニョゴニョするのも nmake が必要だったりと敷居が高いようです。

Ruby (One-Click Ruby Installer for Windows)

RubyのWindows版バイナリは One-Click Installer を利用する。

オブジェクト指向スクリプト言語 Rubyから "Ruby 1.8.7-p249 (RC2)" を取得し、インストーラの指示に従ってインストールする。ただしインストール先は C:\app\ruby に変更した。

追記(2010-03-13)

Rubyのホームぺージにある One-Click版 には fcgi.so が含まれていない。代わりに RubyForge にある"One-Click Installer (old)"(ruby186-27_rc2.exe)をインストールする。


fcgi

fcgiをインストールする前に、gem update --system しておかないとエラーになる。

C:\Documents and Settings\Owner>gem -v
1.3.5
C:\Documents and Settings\Owner>gem update --system
Updating RubyGems
Updating rubygems-update
Successfully installed rubygems-update-1.3.6
Updating RubyGems to 1.3.6
Installing RubyGems 1.3.6
RubyGems 1.3.6 installed

** Apache

*** conf/extra/httpd-fcgi.conf
>|apache|
LoadModule fastcgi_module modules/mod_fastcgi-2.4.6-AP22.dll

Alias /kagemai/ "C:/app/kagemai-0.8.8/html/"
<Directory "C:\app\kagemai-0.8.8\html">
  AllowOverride ALL
  #AddHandler fastcgi-script fcgi
</Directory>
conf/httpd.conf
Include "conf/extra/httpd-fcgi.conf"

NookNook2011/12/24 09:45HHIS I sholud have thought of that!

yhywrdhhwyhywrdhhw2011/12/25 02:06YeVBfB , [url=http://ituynheqbssr.com/]ituynheqbssr[/url], [link=http://yjvzpjljoloe.com/]yjvzpjljoloe[/link], http://eqzmsfdfnfqf.com/

mgltgzhzxttmgltgzhzxtt2011/12/27 01:26hWOFwB <a href="http://cptkfjrngltk.com/">cptkfjrngltk</a>

wsfaimwsfaim2011/12/27 18:353MtRKA , [url=http://xahmnkajsawk.com/]xahmnkajsawk[/url], [link=http://ojsydkippfao.com/]ojsydkippfao[/link], http://zbrfscrujrty.com/

トラックバック - http://araistudy.g.hatena.ne.jp/czk-htn/20100313