Index: head/ja_JP.eucJP/books/handbook/linuxemu/chapter.xml =================================================================== --- head/ja_JP.eucJP/books/handbook/linuxemu/chapter.xml (revision 48446) +++ head/ja_JP.eucJP/books/handbook/linuxemu/chapter.xml (revision 48447) @@ -1,2651 +1,1373 @@ Linux バイナリ互換機能 JimMock再構成と一部の更新: Brian N.Handyオリジナルの文書を執筆: RichMurphey 訳: &a.jp.kiroh;、1996 年 9 月 24 日 - + この章では Linux バイナリ互換機能 バイナリ互換機能 Linux - FreeBSD は、Linux を含む Unix-like + FreeBSD は、Linux を含む &unix; like なオペレーティングシステムとのバイナリ互換機能を提供しています。 現時点では、一体なぜ FreeBSD が Linux バイナリを実行できるようにならなければならないのか自問しているのではないでしょうか? 答えはきわめて簡単です。 Linux は現在コンピュータの世界では最もホットなモノなのでたくさんの会社や開発者たちが Linux のためだけに開発を行なっています。そのため、残された私たち FreeBSD ユーザは彼らに対して FreeBSD ネイティブなアプリケーションも出すように言うしかないのです。 問題は、FreeBSD バージョンも出した場合にどれくらいの数のユーザーが使うのかわからない、 ということであり、そのため Linux 版のみを開発しているということなのです。 そこで FreeBSD では Linux バイナリ互換機能が役に立つのです。 簡単に言ってしまえば、この機能により全ての Linux アプリケーションの 90% が修正なしに FreeBSD 上で起動できます。 - この中には Star Office や Linux 版の - NetscapeAdobe Acrobat、 - RealPlayer 5 と 7、 - VMWareOracle、 - WordPerfectDoom、 + この中には &staroffice; や Linux 版の + &netscape;, + &adobe; &acrobat;, + &realplayer;, + VMware, + &oracle;, + &wordperfect;, Doom, Quake などがあります。 また、ある状況においては Linux バイナリを Linux で動かすよりも FreeBSD で動かすほうが良いパフォーマンスが出るという報告もあります。 - - Linux - /proc ファイルシステム - しかしながら、いくつかの Linux に特有な OS の機能は FreeBSD ではサポートされていません。 - 例えば、Linux の /proc ファイルシステムを過度に使うような - Linux バイナリは FreeBSD では動きません (FreeBSD の /proc - ファイルシステムとは異なるのです) し、 - 仮想 8086 モードを有効にするような i386 特有の呼び出しも動きません。 + 仮想 8086 モードを有効にするような i386 特有の呼び出しを過度に使うような + Linux バイナリは FreeBSD では動きません。 この章を読むと、以下のことがわかります。 - Linux バイナリ互換機能を有効にする方法。 - Linux 共有ライブラリを追加する方法。 - Linux アプリケーションを - FreeBSD システムにインストールする方法 - FreeBSD における Linux - 互換機能の実装の詳細。 + + Linux バイナリ互換機能を有効にする方法。 + + + + Linux 共有ライブラリを追加する方法。 + + + + Linux アプリケーションを + FreeBSD システムにインストールする方法 + + + + FreeBSD における Linux 互換機能の実装の詳細。 + この章を読む前に、以下のことを理解しておく必要があります。 - サードパーティ製ソフトウェアのインストール方法 () + + サードパーティ製ソフトウェアのインストール方法 + () + インストール KLD (kernel loadable object) Linux バイナリ互換機能は、デフォルトでは有効ではありません。 この機能を有効にする最も簡単な方法は、 linux KLD オブジェクト (Kernel LoaDable object) を読み込むことです。 - コマンドプロンプトで linux - と打つだけでモジュールを読み込むことができます。 + root 権限で、 + 以下のコマンドを打つだけでモジュールを読み込むことができます。 + &prompt.root; kldload linux + Linux 互換機能を常に有効にする場合には、 /etc/rc.conf に以下の行を追加してください。 linux_enable="YES" - この設定により、/etc/rc.i386 - では次のような操作が行なわれます。 - - # Start the Linux binary compatibility if requested. -# -case ${linux_enable} in -[Yy][Ee][Ss]) - echo -n ' linux'; linux > /dev/null 2>&1 - ;; -esac - - 望みの KLD モジュールがロードされているか確認したい時には &man.kldstat.8; コマンドを利用します。 &prompt.user; kldstat Id Refs Address Size Name 1 2 0xc0100000 16bdb8 kernel 7 1 0xc24db000 d000 linux.ko カーネルオプション - LINUX + COMPAT_LINUX 何らかの理由で Linux KLD をロードしたくない、 あるいはロードできないような場合には、 - options LINUX + options COMPAT_LINUX をカーネルの設定ファイルに指定して、 Linux バイナリ互換機能をカーネルにスタティックリンクしてください。 そして、 の記述にしたがって新しいカーネルをインストールしてください。 Linux ランタイムライブラリのインストール - Linux + Linux Linux ライブラリのインストール これは、linux_base - port を用いるか、もしくは 手動で インストールします。 + port を用いるか、もしくは + 手動で + インストールします。 linux_base の port を用いたインストール - ports collection + Ports Collection ランタイムライブラリをインストールするには最も簡単な方法です。 Ports Collection から他の port をインストールするのと全く同じようにできます。 - &prompt.root; cd /usr/ports/emulators/linux_base + &prompt.root; cd /usr/ports/emulators/linux_base-f10 &prompt.root; make install distclean + + &os; 8.0 よりも前の &os; システムでは、 + emulators/linux_base-f10 + ではなく、emulators/linux_base-fc4 port + を使う必要があります。 + + これで Linux バイナリ互換機能が使えるはずです。 いくつかのプログラムはシステムライブラリのマイナーバージョンが違うと文句を言うかもしれませんが一般的には大した問題ではありません。 + + Linux ディストリビューションおよびバージョンに対応して、 + 複数のバージョンの emulators/linux_base port が用意されています。 + インストールを考えている Linux アプリケーションが必要とする条件に近い + port をインストールする必要があります。 + 手動でのライブラリのインストール ports コレクションをインストールしていない場合、 代わりに手動でライブラリをインストールすることができます。 プログラムが必要とする Linux のシェアードライブラリとランタイムリンカが必要です。 また Linux ライブラリ用の shadow root ディレクトリ、 /compat/linux を作成する必要があります。 FreeBSD で動作する Linux プログラムが使用するシェアードライブラリは、 まずこのファイルツリーから検索されます。例えば、 Linux のプログラムが /lib/libc.so をロードしようとした場合には、FreeBSD はまず /compat/linux/lib/libc.so を開こうとします。これが存在しなかった場合には、次に /lib/libc.so を試します。 シェアードライブラリは、Linux の ld.so が報告するパスではなく、 /compat/linux/lib 以下にインストールする必要があります。 Linux のプログラムが必要とする シェアードライブラリを探す必要があるのは、FreeBSD のシステムに Linux のプログラムをインストールする最初の数回だけでしょう。 それが過ぎれば、十分な Linux のシェアードライブラリがシステムにインストールされ、 新しくインストールした Linux のバイナリも余計な作業をせずに動作させることができるようになります。 シェアードライブラリの追加 共有ライブラリ linux_base port をインストールした後に、 アプリケーションが必要なライブラリが存在しないというエラーを出したらどうしたらよいでしょうか? Linux のバイナリがどのシェアードライブラリを必要とし、 そしてどこで入手できるか、どのように探したらよいでしょうか? 基本的には、以下の 2 種類の方法があります (以下の手順に従う場合には、 必要なインストール作業をおこなう FreeBSD システム上で root として作業をおこなう必要があります)。 Linux システムにアクセス可能ならば、 そのアプリケーションがどういうシェアードライブラリを必要としているのか調べ、 単に FreeBSD にそのライブラリをコピーするだけです。 次の例を見てみましょう。 - FTP を使って Doom の Linux バイナリを取ってきて、 + FTP を使って Doom + の Linux バイナリを取ってきて、 アクセスできる Linux システムに置いたとしましょう。 次のように ldd linuxdoom とするだけでどのシェアードライブラリが必要かチェックできます。 &prompt.user; ldd linuxxdoom libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0 libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0 libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29 シンボリックリンク 最後のカラムに表示されているすべてのファイルを持って来て、 /compat/linux の下に置き、 最初のカラムに示されるファイル名にシンボリックリンクを張ります。 すなわち、FreeBSD システムでは以下のようなファイルが必要となります。 /compat/linux/usr/X11/lib/libXt.so.3.1.0 /compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0 /compat/linux/usr/X11/lib/libX11.so.3.1.0 /compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0 -/compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29 +/compat/linux/lib/libc.so.4.6.29 +/compat/linux/lib/libc.so.4 -> libc.so.4.6.29
最初のカラムに表示されているファイルとメジャーバージョンが同じ Linux シェアードライブラリを既にインストールしている場合は、 新たにコピーする 必要はありません。 既にあるライブラリで動作するはずです。 ただ、新しいバージョンのものをコピーすることをお奨めします。 新しいライブラリにシンボリックリンクを変更したら、 古いライブラリは削除してかまいません。 /compat/linux/lib/libc.so.4.6.27 /compat/linux/lib/libc.so.4 -> libc.so.4.6.27 従って、以上のようなライブラリがインストールされており、 新しいバイナリに対する ldd の出力が以下のようになる場合を考えます。 libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29 このように最後の番号が 1 つか 2 つ古いだけならば、普通は /lib/libc.so.4.6.29 をコピーする必要はありません。わずかに古いライブラリでもプログラムは動作するはずだからです。 もちろん、以下のように新しいライブラリと置き換えても構いません。 /compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29
シンボリックリンクのメカニズムは Linux バイナリにのみ必要なことに注意してください。 FreeBSD のランタイムリンカはメジャーリビジョン番号の一致したライブラリを検索するので、 ユーザが気にする必要はありません。
Linux の ELF バイナリのインストール - Linux + Linux ELF バイナリ ELF のバイナリを使うためには、 マークをつける (branding) 作業が必要になります。 マークのない ELF バイナリを実行しようとすると以下のようなエラーメッセージを受けとってしまうことでしょう。 &prompt.user; ./my-linux-elf-binary ELF binary type not known Abort - カーネルが FreeBSD の ELF バイナリと Linux のバイナリとを - 見分けられるようにするためには、&man.brandelf.1; + カーネルが FreeBSD の ELF バイナリと Linux + のバイナリとを見分けられるようにするためには、&man.brandelf.1; ユーティリティを以下のようにして使ってください。 &prompt.user; brandelf -t Linux my-linux-elf-binary GNU ツールチェイン 今では GNU のツールたちが ELF バイナリに自動的に適切なマークを付加するようになったので、 今後はこの作業もだんだんと必要なくなってゆくでしょう。 + Random Linux RPM ベースのアプリケーションのインストール + + FreeBSD は、(&linux; ports を含む) すべての ports の追跡に使われる独自の + package データベースを持っています。 + そのため、&linux; RPM データベースは必要ありません (対応していません)。 + + しかしながら、random &linux; RPM + ベースのアプリケーションをインストールする必要があるのでしたら、 + 以下のように実行してください。 + + &prompt.root; cd /compat/linux +&prompt.root; rpm2cpio -q < /path/to/linux.archive.rpm | cpio -id + + その後、インストールした ELF + (ライブラリではなく) バイナリに brandelf を実行してください。 + 綺麗にアンインストールできないかもしれませんが、試験の手助けとなります。 + + + ホストネームリゾルバの設定 DNS がうまく動作しなかったり、 以下のようなエラーメッセージが表示され る場合は、/compat/linux/etc/host.conf ファイルを設定する必要があります。 resolv+: "bind" is an invalid keyword resolv+: "hosts" is an invalid keyword ファイルの内容を以下のように設定してください。 order hosts, bind multi on ここで、order は /etc/hosts を最初に検索し、 次に DNS を検索するように指定します。 /compat/linux/etc/host.conf がインストールされていない場合、 Linux アプリケーションは FreeBSD の /etc/host.conf を使用しようとして、 文法の違いによる警告を出力します。 /etc/resolv.conf を利用してネームサーバの設定をしていない場合には、 bind を削除してください。
- Mathematica のインストール + &mathematica; のインストール - Murray - Stokely - Mathematica 4.X 向けの改訂: + Boris + Hollas + Mathematica 5.X 向けの改訂: - - - Bojan - Bistrovic - マージ作業: - - アプリケーション Mathematica - この章では、Mathematica 4.X Linux 版の FreeBSD - へのインストールについて説明します。 + この章では、&mathematica; 5.X + Linux 版の FreeBSD へのインストールについて説明します。 - Linux 版の Mathematica は - FreeBSD においても完璧に動きます。 - ただ、実行する際に Linux ABI を用いる必要があることを - FreeBSD に教えるために、Wolfram によって出荷されているバイナリにマーク付け - (branded) をする必要があります。 - - Mathematica や - Mathematica for Students の Linux 版は Wolfram + Linux 版の &mathematica; または + &mathematica; for Students は、Wolfram (http://www.wolfram.com/) から直接注文することができます。 - Linux バイナリへのマーク付け (branding) + &mathematica; インストーラの実行 - Linux 用バイナリは Wolfram の Mathematica - CD-ROM の Unix ディレクトリにあります。 - インストーラーを起動する前にこのディレクトリをローカルディスクにコピーし、 - &man.brandelf.1; により Linux バイナリにマークを付けます。 + 最初に、&os; 対して &mathematica; + の Linux バイナリが、Linux ABI を使用していることを指定する必要があります。 + 最も簡単な方法は、すべてのマーク付けされていないコマンドに対し、 + デフォルトの ELF ブランドを Linux に設定することです。 + &prompt.root; sysctl kern.fallback_elf_brand=3 + + これにより、&os; はマーク付が行われていない ELF バイナリは + Linux ABI を使用すると見なすので、CDROM から直接インストーラを実行できます。 + + MathInstaller + ファイルをハードディスクにコピーしてください。 + &prompt.root; mount /cdrom -&prompt.root; cp -rp /cdrom/Unix/ /localdir/ -&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Kernel/Binaries/Linux/* -&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/FrontEnd/Binaries/Linux/* -&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Installation/Binaries/Linux/* -&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Graphics/Binaries/Linux/* -&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Converters/Binaries/Linux/* -&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/LicenseManager/Binaries/Linux/mathlm -&prompt.root; cd /localdir/Installers/Linux/ -&prompt.root; ./MathInstaller +&prompt.root; cp /cdrom/Unix/Installers/Linux/MathInstaller /localdir/ - また以下のようにすると、マーク付けされていない - ELF バイナリすべての扱いを、デフォルトで Linux - バイナリとすることが可能です。 + このファイルの中で、最初の行の /bin/sh + を /compat/linux/bin/sh に置き換えてください。 + これにより、インストーラは Linux 版の &man.sh.1; + により実行されるようになります。 + 次に、テキストエディタもしくは次の節で説明するスクリプトを用いて、 + Linux)FreeBSD) + に置き換えてください。 + この置き換えにより、&mathematica; + のインストーラ (オペレーティングシステムを決定するのに + uname -s を用います) が、 + &os; を Linux like なオペレーティングシステムとして扱うようになります。 + MathInstaller を実行すると、 + &mathematica; をインストールします。 + - &prompt.root; sysctl -w kern.fallback_elf_brand=3 + + &mathematica; 実行ファイルの変更 - これは FreeBSD システムに対して、 - マーク付けされていない ELF バイナリが - Linux ABI を利用するように設定します。こうすることで、 - CDROM から直接インストーラを実行することが可能になります。 + &mathematica; + がインストール中に作成したシェルスクリプトは、使用する前に変更する必要があります。 + &mathematica; の実行ファイルが置かれているディレクトリが + /usr/local/bin とすると、 + math, mathematica, + Mathematica および + MathKernel + といったファイルへのシンボリックリンクがこのディレクトリにあります。 + どちらの場合でも、 + 次に、テキストエディタもしくは以下のスクリプトを用いて、 + Linux)FreeBSD) + に置き換えてください。 + + #!/bin/sh +cd /usr/local/bin +for i in math mathematica Mathematica MathKernel + do sed 's/Linux)/FreeBSD)/g' $i > $i.tmp + sed 's/\/bin\/sh/\/compat\/linux\/bin\/sh/g' $i.tmp > $i + rm $i.tmp + chmod a+x $i +done - Mathematica パスワードの取得 + &mathematica; パスワードの取得 - Mathematica を起動する前に Wolfram から自分の - マシン ID に対応したパスワードを取得しなければいけません。 - イーサネット - MAC アドレス + イーサネット + MAC アドレス - 一旦 Linux 互換ランタイムライブラリをインストールし、 - Mathematica を展開すれば Install ディレクトリにある - mathinfo プログラムを起動して - マシン ID を得ることができます。 - このマシン ID は、最初に見つかったイーサネットカードの MAC アドレスをベースに生成されます。 + 初めて &mathematica; を起動すると、 + パスワードを尋ねられます。 + Wolfram からパスワードをまだ入手していないのであれば、 + インストールディレクトリにある mathinfo + というプログラムを実行して、マシン ID を入手してください。 + このマシン ID は、最初に見つかったイーサネットカードの + MAC アドレスのみをベースとして作成されるので、他のコンピュータで + &mathematica; を実行することはできません。 - &prompt.root; cd /localdir/Files/SystemFiles/Installation/Binaries/Linux -&prompt.root; mathinfo -disco.example.com 7115-70839-20412 - 電子メールや電話、FAX などで Wolfram に登録する時にはこの マシン ID を渡します。 - するといくつかの数字から構成されるパスワードが返されるので、 - 他の Mathematica - プラットホームでするのと全く同じように最初に - Mathematica - を立ち上げる時にその情報を入力します。 + するといくつかの数字から構成されるパスワードが返されます。 - ネットワーク経由での Mathematica フロントエンドの起動 + ネットワーク経由での &mathematica; フロントエンドの起動 - Mathematica + &mathematica; は標準フォントセットにない特別な記号 (積分記号、総和記号、ギリシャ文字など) を表示するために特殊なフォントを使用します。 X プロトコルは、これらのフォントが ローカルマシンに インストールされていることを要求します。 - これはつまり、ローカルマシンに (CD-ROM や Mathematica + これはつまり、ローカルマシンに (CD-ROM や + &mathematica; がインストールされているホストマシンから) そのフォントをコピーしなければならないということです。 これらのフォントは通常、CD-ROM の /cdrom/Unix/Files/SystemFiles/Fonts か、もしくはハードディスクの /usr/local/mathematica/SystemFiles/Fonts に置かれており、実際に使用されるフォントは Type1X のサブディレクトリに格納されています。 これらを利用するには次のような二つ方法があります。 一つは、フォントファイルをすべて /usr/X11R6/lib/X11/fonts/ 以下にある既存のフォントディレクトリにコピーする方法です。 この場合、fonts.dir にフォント名を追加し、 先頭行のフォント総数を変更することも必要になります。 あるいは、フォントをコピーしたディレクトリで - mkfontdir を実行するだけでもかまいません。 + &man.mkfontdir.1; を実行するだけでもかまいません。 もう一つの方法は、 /usr/X11R6/lib/X11/fonts/ にフォントディレクトリごとコピーする方法です。 &prompt.root; cd /usr/X11R6/lib/X11/fonts &prompt.root; mkdir X &prompt.root; mkdir MathType1 &prompt.root; cd /cdrom/Unix/Files/SystemFiles/Fonts &prompt.root; cp X/* /usr/X11R6/lib/X11/fonts/X &prompt.root; cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1 &prompt.root; cd /usr/X11R6/lib/X11/fonts/X &prompt.root; mkfontdir &prompt.root; cd ../MathType1 &prompt.root; mkfontdir そして、フォントパスに新しいフォントディレクトリを追加します。 &prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/X &prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/MathType1 &prompt.root; xset fp rehash - XFree86 サーバを使用しているなら、 - /etc/XF86Config - に加えることでこれらのフォントを自動的に読み込むことができます。 + &xorg; サーバを使用しているなら、 + xorg.conf + ファイルに加えることでこれらのフォントを自動的に読み込むことができます。 + フォント /usr/X11R6/lib/X11/fonts/Type1 という ディレクトリが存在していない場合には、 上記例の MathType1Type1 とすることができます。 - Maple のインストール + &maple; のインストール Aaron Kaplan 寄稿: Robert Getschmann 感謝: applications Maple - Maple は Mathematica に似た商用の数式処理プログラムです。 + &maple; + は &mathematica; + に似た商用の数式処理プログラムです。 ソフトウェアを http://www.maplesoft.com/ で購入し、 ライセンスファイルの登録手続きを行ってください。 このソフトウェアを FreeBSD にインストールするには、 以下のステップに従ってください。 製品の配布物から INSTALL シェルスクリプトを実行してください。 インストールプログラムからの質問には、 RedHat オプションを選択してください。 一般的なインストールのディレクトリは、/usr/local/maple です。 - ライセンスがなければ、 - Maple Waterloo Software (http://register.maplesoft.com) で登録し、 + &maple; + のライセンスがなければ、 + Maple Waterloo Software (http://register.maplesoft.com") で登録し、 /usr/local/maple/license/license.dat にコピーしてください。 - Maple についてくる + &maple; についてくる INSTALL_LIC というインストールシェルスクリプトを実行し、 FLEXlm ラインセンスマネージャをインストールしてください。 ライセンスサーバに対して、 コンピュータのホスト名を設定してください。 以下のパッチを - usr/local/maple/bin/maple.system.type + /usr/local/maple/bin/maple.system.type ファイルにあててください。 ----- snip ------------------ *** maple.system.type.orig Sun Jul 8 16:35:33 2001 --- maple.system.type Sun Jul 8 16:35:51 2001 *************** *** 72,77 **** --- 72,78 ---- # the IBM RS/6000 AIX case MAPLE_BIN="bin.IBM_RISC_UNIX" ;; + "FreeBSD"|\ "Linux") # the Linux/x86 case # We have two Linux implementations, one for Red Hat and ----- snip end of patch ----- - "FreeBSD"|\ の後に空白を入れてはいけません。 + "FreeBSD"|\ + の後に空白を入れてはいけません。 - このパッチにより Maple は、 + このパッチにより &maple; は、 FreeBSD を Linux システムと認識します。 bin/maple シェルスクリプトは bin/maple.system.type を呼び出します。 - このスクリプトは、uname -a を実行し、 + このスクリプトは、uname -a を実行し、 オペレーティングシステムの名前を入手します。 OS 名にから、どのバイナリを使用するかを判断します。 ライセンスサーバを起動してください。 /usr/local/etc/rc.d/lmgrd.sh としてインストールされる、以下のスクリプトは、 - lmgrd を起動する便利な方法です。 + lmgrd を起動する便利な方法です。 ----- snip ------------ #! /bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bn PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX export PATH LICENSE_FILE=/usr/local/maple/license/license.dat LOG=/var/log/lmgrd.log case "$1" in start) - lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>>2 + lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2 echo -n " lmgrd" ;; stop) - lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>>2 + lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2 ;; *) - echo "Usage: `basename $0` {start|stop}" 1>>2 + echo "Usage: `basename $0` {start|stop}" 1>&2 exit 64 ;; esac exit 0 ----- snip ------------ - maple の試験的に起動してください。 - &prompt.user; cd /usr/local/maple/bin -&prompt.user; ./xmaple + &maple; + を試験的に起動してください。 + &prompt.user; cd /usr/local/maple/bin +&prompt.user; ./xmaple + maple を使う用意はできました。 ネイティブ FreeBSD 版を希望していることを Maplesoft に連絡してください! 落とし穴 - FLEXlm ライセンスマネージャは、 - 動かすことが難しいツールでもあります。 + FLEXlm + ライセンスマネージャは、動かすことが難しいツールでもあります。 http://www.globetrotter.com/ にも文書が用意されています。 lmgrd は、 ライセンスファイルに依存し、問題があると core dump してしまいます。 正しいライセンスファイルは以下のようなものです。 # ======================================================= # License File for UNIX Installations ("Pointer File") # ======================================================= SERVER chillig ANY #USE_SERVER VENDOR maplelmg FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \ PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \ ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \ SN=XXXXXXXXX - + シリアル番号およびキーは 'X' に置き換えています。 - "chillig" は、ホスト名です。 + chillig は、ホスト名です。 ライセンスファイルを編集する際に、 - (ライセンスキーで保護されている) "FEATURE" + (ライセンスキーで保護されている) FEATURE の行を書き換えてしまうと、動かなくなるでしょう。 + + + &matlab; のインストール + + + + Dan + Pelleg + + 寄稿: + + + + + + + applications + MATLAB + + + この節では、&os; システムへ、Linux 版の + &matlab; version 6.5 + をインストールするプロセスについて説明します。 + &java.virtual.machine; + ( をご覧ください) を除けば、 + 極めてよく動作します。 + + Linux 版の &matlab; は、 + MathWorks (http://www.mathworks.com) + から直接注文することができます。 + ライセンスファイルを入手するか、 + ライセンスファイルを作成する手順を確認してください。 + 彼らに対して、ネイティブの &os; 版を必要としていることを伝えてください。 + + + &matlab; のインストール + + &matlab; + をインストールするには、以下のようにしてください。 + + + + インストール CD を挿入して、マウントしてください。 + インストールスクリプトで推奨されているように、 + root になってください。 + 以下のように入力して、インストールスクリプトを実行してください。 + + &prompt.root; /compat/linux/bin/sh /cdrom/install + + + インストーラはグラフィカルです。 + ディスプレイを表示できないエラーが起きるようでしたら、 + setenv HOME ~USER + と実行してください。ここで、 + USER は、&man.su.1; を実行したユーザ名です。 + + + + + + &matlab; + ルートディレクトリの入力を求められたら、 + /compat/linux/usr/local/matlab + と入力してください。 + + + 残りのインストールプロセスでの入力を簡単にするために、 + シェルプロンプトで、 + set MATLAB=/compat/linux/usr/local/matlab + と実行してください。 + + + + + &matlab; + ライセンスを入手時の手順に従い、ライセンスファイルを編集してください。 + + + あなたがいつも使っているエディタを使って、このファイルを準備してください。 + そして、インストーラが + $MATLAB/license.dat を編集するように尋ねる前に、 + $MATLAB/license.dat + にコピーしてください。 + + + + + インストールプロセスを完了してください。 + + + + この時点で、&matlab; + のインストールは終わりました。 + 以下の手順は、&os; システムに結びつけるための + glue です。 + + + + ライセンスマネージャの起動 + + + ライセンスマネージャのスクリプトへのシンボリックリンクを作成してください。 + + &prompt.root; ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW +&prompt.root; ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMW + + + + スタートアップファイルを + /usr/local/etc/rc.d/flexlm.sh + に作成してください。 + 以下の例は、配布されている + $MATLAB/etc/rc.lm.glnx86 + の改良版です。 + 変更点はファイルの位置、Linux エミュレーションでライセンスマネージャを起動する点です。 + + #!/bin/sh +case "$1" in + start) + if [ -f /usr/local/etc/lmboot_TMW ]; then + /compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u username && echo 'MATLAB_lmgrd' + fi + ;; + stop) + if [ -f /usr/local/etc/lmdown_TMW ]; then + /compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1 + fi + ;; + *) + echo "Usage: $0 {start|stop}" + exit 1 + ;; +esac + +exit 0 + + + ファイルに対し実行の権限を指定してください。 + + &prompt.root; chmod +x /usr/local/etc/rc.d/flexlm.sh + + ここで、上記のコマンドの中の、 + username を + (root ではなく) + システムに存在するユーザの名前に置き換えてください。 + + + + + 以下のコマンドでライセンスマネージャを起動してください。 + + &prompt.root; /usr/local/etc/rc.d/flexlm.sh start + + + + + + &java; Runtime Environment のリンク + + &java; Runtime + Environment (JRE) のリンクを、&os; の作業場所に変更してください。 + + &prompt.root; cd $MATLAB/sys/java/jre/glnx86/ +&prompt.root; unlink jre; ln -s ./jre1.1.8 ./jre + + + + &matlab; 起動スクリプトの作成 + + + + 以下の起動スクリプトを + /usr/local/bin/matlab + に置いてください。 + + #!/bin/sh +/compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@" + + + + その後、 + chmod +x /usr/local/bin/matlab + コマンドを実行してください。 + + + + + 使用している + emulators/linux_base + のバージョンによっては、 + このスクリプトを実行するとエラーが出ることがあります。 + これを避けるためには、 + /compat/linux/usr/local/matlab/bin/matlab + ファイルを編集して、以下の行を変更してください。 + + if [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then + + この行 (バージョン 13.0.1 では、410 行目にあります) を、 + 以下に置きかえてください。 + + if test -L $newbase; then + + + + + &matlab; シャットダウンスクリプトの作成 + + 以下のスクリプトは、&matlab; が正常に終了しない問題を解決します。 + + + + $MATLAB/toolbox/local/finish.m + ファイルを作成して、以下の一行を加えてください。 + + ! $MATLAB/bin/finish.sh + + ここで $MATLAB は、 + 文字通り入力してください。 + + + 同じディレクトリの中には、 + finishsav.m および + finishdlg.m というファイルがあります。 + それらのファイルは、終了する前にワークスペースを保存します。 + これらのうちどちらかを使うには、 + save コマンドのすぐ後に、 + 上記の行を挿入してください。 + + + + 以下の行を含む、 + $MATLAB/bin/finish.sh + ファイルを作成してください。 + + #!/usr/compat/linux/bin/sh +(sleep 5; killall -1 matlab_helper) & +exit 0 + + + + ファイルを実行可能に設定してください。 + + &prompt.root; chmod +x $MATLAB/bin/finish.sh + + + + + + &matlab; を使用する + + この時点で、 + matlab を実行できるようになったので、 + 起動して使用してください。 + + + - Oracle のインストール + &oracle; のインストール MarcelMoolenaar寄贈: アプリケーション Oracle はじめに - このドキュメントでは Oracle 8.0.5 と Oracle 8.0.5.1 Enterprise Edition + このドキュメントでは &oracle; 8.0.5 + と &oracle; 8.0.5.1 Enterprise Edition の Linux 版を FreeBSD にインストールするための手順を解説します。 Linux 環境のインストール - まずは Ports Collection から linux_base と - linux_devtools をインストールしてください。 - これらの ports は FreeBSD 3.2 のリリース後にコレクションに加えられました。 - もし FreeBSD 3.2 もしくはそれよりも古いものを使っている場合は - ports コレクションをアップデートしましょう。ついでに FreeBSD - をアップデートするのもいいでしょう。もし linux_base-6.1 - や linux_devtools-6.1 でうまくいかなければ - 5.2 を試してみてください。 + まずは Ports Collection から emulators/linux_base と + devel/linux_devtools をインストールしてください。 + もしこれらの ports がうまく動かなければ、package もしくは Ports Collection + で利用可能な古いバージョンを試してみてください。 もし賢いエージェント (intelligent agent) を起動したいなら Red Hat Tcl パッケージ tcl-8.0.3-20.i386.rpm もインストールする必要があるでしょう。 - 公式の RPM パッケージをインストールするには一般的に次のようにします。 + 公式の RPM port (archivers/rpm) + をインストールするには一般的に次のようにします。 &prompt.root; rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm package - パッケージのインストール時にエラーが出てはいけません。 + package のインストール時にエラーが出てはいけません。 - Oracle 環境の構築 + &oracle; 環境の構築 - Oracleをインストールする前に、適切な環境を設定する必要があります。 + &oracle; をインストールする前に、 + 適切な環境を設定する必要があります。 このドキュメントでは、 - Oracle のインストールガイドに書いてあるようなことではなく - FreeBSD で Linux 用 Oracle + &oracle; のインストールガイドに書いてあるようなことではなく + FreeBSD で Linux 用 &oracle; を動かすために特別に必要なことのみを解説します。 カーネルのチューニング カーネルのチューニング - Oracle インストールガイドにあるように、 + &oracle; インストールガイドにあるように、 シェアードメモリーの最大サイズを設定しなければいけません。 FreeBSD では SHMMAX を使わないようにしてください。 SHMMAX は単に SHMMAXPGSPGSIZE から計算されるだけなのです。 従って、SHMMAXPGS を使うようにしましょう。 インストールガイドに記述されている他のオプションは使えます。 例えば以下のようにします。 options SHMMAXPGS=10000 options SHMMNI=100 options SHMSEG=10 options SEMMNS=200 options SEMMNI=70 options SEMMSL=61 - これらのオプションを意図した Oracle + これらのオプションを意図した &oracle; の使い方に合わせて設定してください。 また、 次のオプションがカーネルのコンフィギュレーションファイルにあることも確認します。 options SYSVSHM #SysV shared memory options SYSVSEM #SysV semaphores options SYSVMSG #SysV interprocess communication - Oracle 用アカウント + &oracle; 用アカウント - 他のアカウントを作るのと同じように Oracle 用のアカウントを作ります。 - Oracle 用のアカウントに特別なのは Linux のシェルを割り当てるところだけです。 + 他のアカウントを作るのと同じように oracle + 用のアカウントを作ります。 + oracle 用のアカウントに特別なのは + Linux のシェルを割り当てるところだけです。 /etc/shells/compat/linux/bin/bash - を加え、Oracle 用のアカウントに設定します。 + を加え、oracle 用のアカウントに設定します。 環境設定 ORACLE_HOMEORACLE_SID - といった通常の Oracle 用の変数の他に次の変数も設定しなければなりません。 + といった通常の &oracle; + 用の変数の他に次の変数も設定しなければなりません。 - + + + 変数 LD_LIBRARY_PATH $ORACLE_HOME/lib CLASSPATH $ORACLE_HOME/jdbc/lib/classes111.zip PATH /compat/linux/bin /compat/linux/sbin /compat/linux/usr/bin /compat/linux/usr/sbin /bin /sbin /usr/bin /usr/sbin /usr/local/bin $ORACLE_HOME/bin 全ての環境変数は .profile で設定することをお勧めします。 完璧なサンプルは以下の通りです。 ORACLE_BASE=/oracle; export ORACLE_BASE ORACLE_HOME=/oracle; export ORACLE_HOME LD_LIBRARY_PATH=$ORACLE_HOME/lib export LD_LIBRARY_PATH ORACLE_SID=ORCL; export ORACLE_SID ORACLE_TERM=386x; export ORACLE_TERM CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip export CLASSPATH PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin export PATH - Oracle のインストール + &oracle; のインストール インストーラーを起動する前に、/var/tmp.oracle という名前のディレクトリを作る必要がありますが、 これは Linux エミュレーターにおけるちょっとした不整合のためです。 - このディレクトリは誰でもが書けるか、もしくは oracle ユーザーのものにしておきます。 - これで特に問題なく Oracle がインストールできるでしょう。 - もし問題が起こったら、まずは Oracle の配布物や設定をチェックしてください。 - Oracle のインストールが終わったら次の二つのサブセクションで解説するパッチを当てます。 + このディレクトリは oracle + ユーザーのものにしておきます。 + これで特に問題なく &oracle; がインストールできるでしょう。 + もし問題が起こったら、まずは &oracle; + の配布物や設定をチェックしてください。 + &oracle; + のインストールが終わったら次の二つのサブセクションで解説するパッチを当てます。 よくあるトラブルは、TCP プロトコルアダプターが正しくインストールされていないことです。 そのため、一切 TCP リスナーを起動することができないのです。 次の操作はこの問題を解決するのに役立ちます。 &prompt.root; cd $ORACLE_HOME/network/lib &prompt.root; make -f ins_network.mk ntcontab.o &prompt.root; cd $ORACLE_HOME/lib &prompt.root; ar r libnetwork.a ntcontab.o &prompt.root; cd $ORACLE_HOME/network/lib &prompt.root; make -f ins_network.mk install もう一度 root.sh を起動するのを忘れないように! root.sh へのパッチ - Oracle をインストールする時、root + &oracle; をインストールする時、 + root で行なう必要のあるいくつかの操作は root.sh と呼ばれるシェルスクリプトに記録されます。 - root.shorainst - ディレクトリにあります。次のパッチを root.sh に当てて + このスクリプトは、orainst + ディレクトリにあります。次のパッチを root.sh に当てて 正しい場所にある chown コマンドを使うようにするか、 代わりに Linux ネイティブなシェルのもとでスクリプトを走らせましょう。 *** orainst/root.sh.orig Tue Oct 6 21:57:33 1998 --- orainst/root.sh Mon Dec 28 15:58:53 1998 *************** *** 31,37 **** # This is the default value for CHOWN # It will redefined later in this script for those ports # which have it conditionally defined in ss_install.h ! CHOWN=/bin/chown # # Define variables to be used in this script --- 31,37 ---- # This is the default value for CHOWN # It will redefined later in this script for those ports # which have it conditionally defined in ss_install.h ! CHOWN=/usr/sbin/chown # # Define variables to be used in this script - CD-ROM からのインストールでない場合は root.sh + &oracle; + を CD-ROM からインストールしない場合は root.sh のソースにパッチを当ててもいいでしょう。 rthd.sh という名前でソースツリーの orainst というディレクトリにあります。 genclntsh へのパッチ genclntsh スクリプトは一つの共有クライアントライブラリを生成するのに用いられます。 - これはデモを作る時に使われます。 - PATH の定義をコメントアウトするために次のパッチを当ててください。 + これはデモを作る時に使われます。PATH + の定義をコメントアウトするために次のパッチを当ててください。 *** bin/genclntsh.orig Wed Sep 30 07:37:19 1998 --- bin/genclntsh Tue Dec 22 15:36:49 1998 *************** *** 32,38 **** # # Explicit path to ensure that we're using the correct commands #PATH=/usr/bin:/usr/ccs/bin export PATH ! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH # # each product MUST provide a $PRODUCT/admin/shrept.lst --- 32,38 ---- # # Explicit path to ensure that we're using the correct commands #PATH=/usr/bin:/usr/ccs/bin export PATH ! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH # # each product MUST provide a $PRODUCT/admin/shrept.lst - Oracle の起動 + &oracle; の起動 インストラクションに従えば、Linux でと同じように - Oracle を起動できるでしょう。 + &oracle; を起動できるでしょう。 - - SAP R/3 (4.6B - IDES) のインストール - - HolgerKipp寄稿: - - - - ValentinoVaschettoSGML への変換: - - - - - - - アプリケーション - SAP R/3 - - - SAP サポートチームは、 - 認定されたプラットフォームのみをサポートしているので、 - FreeBSD 上への SAP システムのインストールについてはサポートしていません。 - - - まえがき - - この文書は、SAP R/3 4.6B IDES-System - with Oracle 8.0.5 for - Linux を FreeBSD 4.3 上にインストールする方法を、FreeBSD - 4.3-STABLE と Oracle 8.0.5 - のインストール方法と一緒に説明しています。 - - この文書では、重要な手順をすべて詳しく説明しようとしていますが、 - Oracle および SAP R/3 - のインストールの手引きを置き換えるものではありません。 - - SAPOracle - に特有の質問については、SAP R/3 の - Linux 版についてくる文書や Oracle と - SAP OSS - が出している資料をご覧ください。 - - - - ソフトウェア - - SAP のインストールには以下の CDROM を使いました。 - - - - - 名称 番号 説明 - - - - - KERNEL 51009113 SAP Kernel Oracle / - Installation / AIX, Linux, Solaris - - - RDBMS 51007558 Oracle / RDBMS 8.0.5.X / - Linux - - - EXPORT1 51010208 IDES / DB-Export / Disc - 1 of 6 - - - EXPORT2 51010209 IDES / DB-Export / Disc - 2 of 6 - - - EXPORT3 51010210 IDES / DB-Export / - Disc3 of 6 - - - EXPORT4 51010211 IDES / DB-Export / - Disc4 of 6 - - - EXPORT5 51010212 IDES / DB-Export / - Disc5 of 6 - - - EXPORT6 51010213 IDES / DB-Export / - Disc6 of 6 - - - - - - 更に、Oracle 8 Server - (Pre-production バージョン 8.0.5 for Linux, カーネルバージョン - 2.0.33) の CD も使いましたが、これは必ずしも必要ではありません。 - また、もちろん FreeBSD 4.3-STABLE - (4.3-RELEASE から間もない時期のものです) も利用しました。 - - - - SAP ノート - - 以下のノートは、SAP R/3 - をインストールする前に読んでおくべき、 - もしくはインストールの際に役立つことが分かっているものです。 - - - - - - 番号 - 題名 - - - - - 0171356 SAP Software auf Linux: grundlegenden - Anmerkungen - - - 0201147 INST: 4.6C R/3 Inst. on UNIX - - Oracle - - - 0373203 Update / Migration Oracle 8.0.5 --> - 8.0.6/8.1.6 LINUX - - - 0072984 Release of Digital UNIX 4.0B for - Oracle - - - 0130581 R3SETUP step DIPGNTAB terminates - - - 0144978 Your system has not been installed - correctly - - - 0162266 Questions and tips for R3SETUP on Windows - NT / W2K - - - - - - - - - ハードウェア要件 - - 以下の機器であれば SAP R/3 - System (4.6B) を動かすのに十分です。 - - - - - - 構成部品 - 4.6B - 4.6C - - - - - プロセッサ - 2 × 800MHz Pentium III - 2 × 800MHz Pentium III - - - メモリ - 1GB ECC - 2GB ECC - - - ハードディスク容量 - 50-60GB (IDES) - 50-60GB (IDES) - - - - - - 業務で利用するなら、大容量キャッシュメモリを備えた Xeon - プロセッサ、高速なディスク (SCSI, ハードウェア RAID コントローラ)、 - USV および ECC-RAM を推奨します。 - ハードディスク容量が大きいのは、設定済みの IDES システムが、 - インストール時に 27 GB のデータベースファイルを作成するためです。 - 通常、インストール後には一部のテーブル領域を拡張する必要があります。 - - 私は、800MHz の Pentium III を 2 個、Adaptec 29160 - Ultra160 SCSI アダプタ (40/80 GB DLT テープドライブと CDROM - にアクセスするため)、Mylex AcelleRAID - (2 チャンネル、ファームウェアバージョン 6.00-1-00、32MB RAM) - を積んだデュアルプロセッサボードを使いました。Mylex RAID - コントローラには 17GB のハードディスク 2 台 (ミラー) と - 36GB のハードディスク (RAID 5) 4 台が接続されています。 - - - - - FreeBSD 4.3-STABLE のインストール - - まず、FreeBSD 4.3-STABLE をインストールしました。FTP - 経由のデフォルトインストールを行いました。 - - - FTP 経由のインストール - ディスクイメージ kern.flp と mfsroot.flp を入手して、 - フロッピーディスクに書き込んでください (私は - ftp7.de.FreeBSD.org から入手しました。 - 適切なミラーサイトを選んでください)。 - - &prompt.root; dd if=kern.flp of=/dev/fd0 -&prompt.root; dd if=mfsroot.flp of=/dev/fd0 - - 2 つのイメージファイルそれぞれについて、 - 別のディスクを使うようにしてください。それから kern.flp - を書き込んだフロッピーディスクで起動して、指示に従ってください。 - 私は、次のようにディスクを分割しました。 - - - - - - ファイルシステム - 容量 (1kB ブロック) - 容量 (GB) - マウントポイント - - - - - /dev/da0s1a - 1.016.303 - 1 - / - - - /dev/da0s1b - - 6 - <swap> - - - /dev/da0s1e - 2.032.623 - 2 - /var - - - /dev/da0s1f - 8.205.339 - 8 - /usr - - - /dev/da1s1e - 45.734.361 - 45 - /compat/linux/oracle - - - /dev/da1s1f - 2.032.623 - 2 - /compat/linux/sapmnt - - - /dev/da1s1g - 2.032.623 - 2 - /compat/linux/usr/sap - - - - - - はじめに、Mylex のソフトウェアで論理ドライブ - 2 台を設定して初期化しなければなりませんでした。 - このソフトウェアはボードに組み込まれていて、 - PC 起動時に動かせます。 - - このディスクの割り当て方は SAP - の推奨と少し異なることに注意してください。SAP は oracle (その他) - サブディレクトリを別途マウントするように提案していますが、 - 私は簡便であることを優先して、 - 実際にサブディレクトリとして作成するだけにしました。 - - - - - 最新の STABLE のソースコードの入手 - - FreeBSD 4.3-STABLE 以降では、 - 最新のソースコードは楽に手に入ります。それより前のバージョンの - FreeBSD では、/etc/cvsup - に自分で書いたスクリプトを置いていました。FreeBSD 4.3 で - CVSup を設定するのは簡単です。 - root で以下を実行してください。 - - &prompt.root; cp /etc/defaults/make.conf /etc/make.conf -&prompt.root; vi /etc/make.conf - - /etc/make.conf ファイルで、 - 以下の項目を有効にしておかねばなりません。 - - SUP_UPDATE= yes -SUP= /usr/local/bin/cvsup -SUPFLAGS= -g -L 2 -SUPHOST= cvsup8.FreeBSD.org -SUPFILE= /usr/share/examples/cvsup/stable-supfile -PORTSSUPFILE= /usr/share/examples/cvsup/ports-supfile -DOCSUPFILE= /usr/share/examples/cvsup/doc-supfile - - SUPHOST - の値は適切なものに変更してください。 - /usr/share/examples/cvsup - にある supfile で十分でしょう。 - もしもすべてのドキュメントを持ってくるのが嫌なら、 - DOCSUPFILE - の項は無効なままにしておいてください。 - ここまでくれば、cvsup - を起動して stable - の最新のソースコードを入手するのはたやすいことです。 - - &prompt.root; cd /usr/src -&prompt.root; make update - - - - - - <command>make world</command> と新しいカーネル - - 最初にすべきことは、ソースコードのインストールです。 - root - ユーザで次の作業を行ってください。 - - &prompt.root; cd /usr/src -&prompt.root; make world - - 最後まで実行できたら、 - 新しいカーネルの作成と設定を行えます。 - 通常はここでカーネルコンフィグレーションファイルをカスタマイズします。 - コンピュータに troubadix という名前をつけているので、 - コンフィグレーションファイルを troubadix - という名称にするのが自然です。 - - &prompt.root; cd /usr/src/sys/i386/conf -&prompt.root; cp GENERIC TROUBADIX -&prompt.root; vi TROUBADIX - - この段階で、どのドライバを使うか、 - 使わないかといったことを決定できます。詳しい説明は、適当な文書や - LINT ファイルをご覧ください。 - - また、後述するパラメータをいれることもできます。 - 新しいカーネルを作成するには次のようにしてください。 - - &prompt.root; cd /usr/src/sys/i386/conf -&prompt.root; config TROUBADIX -&prompt.root; cd /usr/src/sys/compile/TROUBADIX -&prompt.root; make depend -&prompt.root; make -&prompt.root; make install - - - make install が無事終わったら、 - コンピュータを再起動して新しいカーネルを動かしてください。 - - - - - - Linux 環境のインストール - - (2001 年 5 月 2 日時点の 4.3-STABLE 用に) 必要な - RPM ファイルをダウンロードするのに多少問題があったので、 - 以下の場所も (他がすべてだめで、ここが古くなってしまっていなければ) - 試してみるとよいかもしれません。 - - - ftp7.de.FreeBSD.org/pub/FreeBSD/distfiles/rpm - ftp.redhat.com/pub/redhat/linux/6.1/en/os/i386/RedHat/RPMS - - - - Linux ベースシステムのインストール - まず、Linux のベースシステムを - (root で) - インストールしなければなりません。 - - &prompt.root; cd /usr/ports/emulators/linux_base -&prompt.root; make package - - - - - Linux 開発環境のインストール - - 次に、必要なら Linux 開発環境をインストールします。 - - &prompt.root; cd /usr/ports/devel/linux_devtools -&prompt.root; make package - - - - - - 必要な RPM のインストール - RPMs - - R3SETUP プログラムを動かすには、pam - サポートが必要になります。 - これが更に他の package を必要としているので、 - 私は結局いくつもの package をインストールすることになりました。 - それでも、pam は足りない package があると文句をいうので、 - 強制的にインストールしたら動きました。 - pam 以外にインストールした package が本当に必要なのか、pam - package をインストールするのに十分だったのかよくわかっていません。 - - なんにせよ、これが私がインストールした package 一覧です。 - - - cracklib-2.7-5.i386.rpm - cracklib-dicts-2.7-5.i386.rpm - pwdb-0.60-1.i386.rpm - pam-0.68-7.i386.rpm - - - これらの package は、 - 以下のコマンドでインストールしました。 - - &prompt.root; rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm <package_name> - - ただし、pam - パッケージは次のようにして強制的にインストールしました。 - - &prompt.root; rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \ - pam-0.68-7.i386.rpm - - Oracle が intelligent agent - を動作させるには、次の RedHat Tcl package を (FreeBSD - ハンドブックにあるように) インストールしなければなりませんでした。 - tcl-8.0.5-30.i386.rpm (そうしないと、 - Oracle - インストール中の再リンクがうまくゆきません)。 - Oracle - の再リンクについては他にも問題がありますが、 - 私が理解している限りでは Oracle-Linux の問題で、FreeBSD - に特有のものではありません。 - - - - - - SAP/R3 環境の構築 - - - 必要となるファイルシステムとマウントポイントの作成 - - 単純なインストールでは、 - 次のファイルシステムを作成すれば事足ります。 - - - - - - マウントポイント - サイズ (GB) - - - - - /compat/linux/oracle - 45 GB - - - /compat/linux/sapmnt - 2 GB - - - /compat/linux/usr/sap - 2 GB - - - - - - また、私は FreeBSD が正しいパスを見付けられるように、 - いくつかリンクを作成しました。 - - &prompt.root; ln -s /compat/linux/oracle /oracle -&prompt.root; ln -s /compat/linux/sapmnt /sapmnt -&prompt.root; ln -s /compat/linux/usr/sap /usr/sap - - - - ユーザとディレクトリの作成 - - SAP R/3 には、 - 2 名のユーザと 3 つのグループが必要です。 - ユーザ名は 3 文字からなる SAP システム ID (SID) - に準じています。SID の中には SAP - が予約しているものがあります - (たとえば SAPNIX - です。すべて網羅した一覧は SAP のドキュメントをご覧ください)。 - IDES のインストールでは、IDS を使いました。 - したがって、次のグループができます (グループ ID - は異なっていてもかまいません。 - これは単に私がインストールした時に使用した値です)。 - - - - - - グループ ID - グループ名 - 説明 - - - - - 100 - dba - データベース管理者 - - - 101 - sapsys - SAP システム - - - 102 - oper - データベースオペレータ - - - - - - デフォルトの Oracle のインストールでは、 - dba グループだけが使われます。 - oper グループとして、 - dba を使う人もいます。(詳しくは Oracle と - SAP のドキュメントを参照してください)。 - - 以下のユーザも必要になります。 - - - - - - ユーザ ID - ユーザ名 - 一般名称 - グループ - 追加グループ - 説明 - - - - - 1000 - idsadm - <sid>adm - sapsys - oper - SAP 管理者 - - - 1002 - oraids - ora<sid> - dba - oper - DB 管理者 - - - - - - adduser でユーザを追加するには、 - 以下の項目が必要になります - (シェルとホームディレクトリを控えてください)。 - SAP 管理者については、 - - Name: idsadm <sid>adm -Password: ****** -Fullname: SAP IDES Administrator -Uid: 1000 -Gid: 101 (sapsys) -Class: -Groups: sapsys dba -HOME: /home/idsadm /home/<sid>adm -Shell: /bin/sh - - そしてデータベース管理者については、 - - Name: oraids ora<sid> -Password: ****** -Fullname: Oracle IDES Administrator -Uid: 1002 -Gid: 100 (dba) -Class: -Groups: dba -HOME: /oracle/IDS /oracle/<sid> -Shell: /bin/sh - - あなたが dba と - oper の両方のグループを使っていたら、 - ここには oper - グループもいれるべきです。 - - - - - ディレクトリ作成 - - 以下のディレクトリは、 - 普通は別のファイルシステムとして作成します。 - どうするかは、あなたの要件に応じて決めてください。 - 結局はすべてが同じ RAID 5 におかれるので、 - 私は単なるディレクトリにしました。 - - まず、一部のディレクトリに (root - ユーザで) 所有者と権限を設定しましょう。 - - &prompt.root; chmod 775 /oracle -&prompt.root; chmod 777 /sapmnt -&prompt.root; chown root:dba /oracle -&prompt.root; chown idsadm:sapsys /compat/linux/usr/sap -&prompt.root; chmow 775 /compat/linux/usr/sap - - 第二に、ユーザ ora<sid> - 権限でディレクトリを作成します。 - すべて /oracle/IDS のサブディレクトリになります。 - - &prompt.root; su - oraids -&prompt.root; mkdir mirrlogA mirrlogB origlogA origlogB -&prompt.root; mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6 -&prompt.root; mkdir saparch sapreorg -&prompt.root; exit - - 第三段階では、idsadm (<sid>adm) - ユーザ権限でディレクトリを作成します。 - - &prompt.root; su - idsadm -&prompt.root; cd /usr/sap -&prompt.root; mkdir IDS -&prompt.root; mkdir trans -&prompt.root; exit - - - - /etc/services 内の項目 - - SAP R/3 は、/etc/services - にいくつか項目を必要としますが、FreeBSD - にインストールする場合は正しく設定されません。 - 次の項目を追加してください - (少なくとも、インスタンス番号に対応する項目が必要で、 - この場合は 00 です。 - dp, gw, - sp および ms - について - 00 から 99 - まで項目を追加してもなんの問題もないでしょう)。 - - sapdp00 3200/tcp # SAP Dispatcher. 3200 + インスタンス番号 -sapgw00 3300/tcp # SAP Gateway. 3300 + インスタンス番号 -sapsp00 3400/tcp # 3400 + インスタンス番号 -sapms00 3500/tcp # 3500 + インスタンス番号 -sapmsIDS 3600/tcp # SAP Message Server. 3600 + インスタンス番号 - - - - 必要となるロケール - ロケール - - SAP は、デフォルトの RedHat - のインストールでは入らないロケールを少なくとも - 2 つ必要とします。 - SAP は、必要な RPM を FTP - サーバからダウンロードする形で提供しています - (OSS アクセス契約している顧客でなければアクセスできません)。 - 必要な RPM の一覧は note 0171356 をご覧ください。 - - 適切なリンクを (たとえば de_DE と - en_US から) 作成するという手もありますが、 - 業務用システムでそうすることはお勧めしません - (いまのところ、IDES システムで問題なく動いてはいますが)。 - 必要なのは、次のロケールです。 - - de_DE.ISO-8859-1 -en_US.ISO-8859-1 - - このロケールがないと、 - インストール時になんらかの問題が起きるでしょう。 - それを (たとえば CENTRDB.R3S ファイルで問題の段階を - OK にして) 無視してしまうと、追加でなにかしないと - SAP システムにログオンできないでしょう。 - - - - カーネルのチューニング - カーネルのチューニング - - SAP R/3 システムには多くのリソースが必要です。 - そのため、私はカーネルコンフィグレーションファイルに - 以下のパラメータを追加しました。 - - # Set these for memory pigs (SAP and Oracle): -options MAXDSIZ="(1024*1024*1024)" -options DFLDSIZ="(1024*1024*1024)" # System V options needed. -options SYSVSHM #SYSV-style shared memory -options SHMMAXPGS=262144 #max amount of shared mem. pages -options SHMMNI=256 #max number of shared memory ident if. -options SHMSEG=100 #max shared mem.segs per process -options SYSVMSG #SYSV-style message queues -options MSGSEG=32767 #max num. of mes.segments in system -options MSGSSZ=32 #size of msg-seg. MUST be power of 2 -options MSGMNB=65535 #max char. per message queue -options MSGTQL=2046 #max amount of msgs in system -options SYSVSEM #SYSV-style semaphores -options SEMMNU=256 #number of semaphore UNDO structures -options SEMMNS=1024 #number of semaphores in system -options SEMMNI=520 #number of semaphore indentifiers -options SEMUME=100 #number of UNDO keys - - SAP についてくる文書に最小値が指定されています。Linux - に関する記述はないので、詳しいことは HP-UX (32-bit) - の節を参照してください。 - - - - - SAP R/3 のインストール - - - SAP CDROM の準備 - - インストールの際にマウントしてアンマウントしなければならない - CDROM が山ほどあります。十分な数の - CDROM ドライブを持っていれば、 - すべてマウントしてしまえばよいでしょう。私は、CDROM - の中身をそれぞれに対応するディレクトリにコピーすることにしました。 - - /oracle/IDS/sapreorg/<cd-name> - - ここで、<cd-name> は KERNEL, - RDBMS, EXPORT1, - EXPORT2, EXPORT3, - EXPORT4, EXPORT5 - および EXPORT6 - のいずれかです。すべてのファイル名を大文字にするか、 - さもなければ、マウントする際に -g オプションをつけるべきです。 - 次のコマンドを使ってください。 - - &prompt.root; mount_cd9660 -g /dev/cd0a /mnt -&prompt.root; cp -R /mnt/* /oracle/IDS/sapreorg/<cd-name> -&prompt.root; umount /mnt - - - - インストールスクリプトの実行 - - まず、インストールディレクトリを用意しなければなりません。 - - &prompt.root; cd /oracle/IDS/sapreorg -&prompt.root; mkdir install -&prompt.root; cd install - - その後、インストールスクリプトを起動すると、 - 関連するファイルがほぼすべてインストールディレクトリにコピーされます。 - - /oracle/IDS/sapreorg/KERNEL/UNIX/INSTTOOL.SH - - これは、完全にカスタマイズされた SAP R/3 - デモシステム付きの IDES のインストールなので、EXPORT CD は - 3 枚ではなく 6 枚あります。この時点では、 - インストールテンプレート CENTRDB.R3S - は標準の中心インスタンス (R/3 とデータベース) - をインストールするためのもので、 - IDES 中心インスタンスをインストールするためのものではありません。 - ですから、それに対応する CENTRDB.R3S ファイルを - EXPORT1 ディレクトリからコピーしてください。さもないと、 - R3SETUP は EXPORT CD を 3 枚しか要求しません。 - - - - R3SETUP の起動 - - LD_LIBRARY_PATH - が正しく設定されていることを確認してください。 - - &prompt.root; export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/lib - - インストールディレクトリから - root ユーザで - R3SETUP を起動してください。 - - &prompt.root; cd /oracle/IDS/sapreorg/install -&prompt.root; ./R3SETUP -f CENTRDB.R3S - - スクリプトがいくつか質問してきます - (デフォルトが括弧に囲まれて表示され、 - その後に実際に入力します)。 - - - - - - 質問 - デフォルト - 入力 - - - - - Enter SAP System ID - (SAP システム ID を入力してください) - [C11] - IDS<ret> - - - Enter SAP Instance Number - (SAP インスタンス番号を入力してください) - [00] - <ret> - - - Enter SAPMOUNT Directory - (SAPMOUNT ディレクトリを入力してください) - [/sapmnt] - <ret> - - - Enter name of SAP central host - (SAP 中心ホストの名称を入力してください) - [troubadix.domain.de] - <ret> - - - Enter name of SAP db host - (SAP データベースホストの名称を入力してください) - [troubadix] - <ret> - - - Select character set - (文字集合を選択してください) - [1] (WE8DEC) - <ret> - - - Enter Oracle server version - (Oracle サーバのバージョンを入力してください) - (1) Oracle 8.0.5, (2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.6 - - 1<ret> - - - Extract Oracle Client archive - (Oracle クライアントアーカイブを展開しますか) - [1] (はい、展開します) - <ret> - - - Enter path to KERNEL CD - (KERNEL CD へのパスを入力してください) - [/sapcd] - /oracle/IDS/sapreorg/KERNEL - - - Enter path to RDBMS CD - (RDBMS CD へのパスを入力してください) - [/sapcd] - /oracle/IDS/sapreorg/RDBMS - - - Enter path to EXPORT1 CD - (EXPORT1 CD へのパスを入力してください) - [/sapcd] - /oracle/IDS/sapreorg/EXPORT1 - - - Directory to copy EXPORT1 CD - (EXPORT1 CD をコピーするディレクトリ) - [/oracle/IDS/sapreorg/CD4_DIR] - <ret> - - - Enter path to EXPORT2 CD - (EXPORT2 CD へのパスを入力してください) - [/sapcd] - /oracle/IDS/sapreorg/EXPORT2 - - - Directory to copy EXPORT2 CD - (EXPORT2 CD をコピーするディレクトリ) - [/oracle/IDS/sapreorg/CD5_DIR] - <ret> - - - Enter path to EXPORT3 CD - (EXPORT3 CD へのパスを入力してください) - [/sapcd] - /oracle/IDS/sapreorg/EXPORT3 - - - Directory to copy EXPORT3 CD - (EXPORT3 CD をコピーするディレクトリ) - [/oracle/IDS/sapreorg/CD6_DIR] - <ret> - - - Enter path to EXPORT4 CD - (EXPORT4 CD へのパスを入力してください) - [/sapcd] - /oracle/IDS/sapreorg/EXPORT4 - - - Directory to copy EXPORT4 CD - (EXPORT4 CD をコピーするディレクトリ) - [/oracle/IDS/sapreorg/CD7_DIR] - <ret> - - - Enter path to EXPORT5 CD - (EXPORT5 CD へのパスを入力してください) - [/sapcd] - /oracle/IDS/sapreorg/EXPORT5 - - - Directory to copy EXPORT5 CD - (EXPORT5 CD をコピーするディレクトリ) - [/oracle/IDS/sapreorg/CD8_DIR] - <ret> - - - Enter path to EXPORT6 CD - (EXPORT6 CD へのパスを入力してください) - [/sapcd] - /oracle/IDS/sapreorg/EXPORT6 - - - Directory to copy EXPORT6 CD - (EXPORT6 CD をコピーするディレクトリ) - [/oracle/IDS/sapreorg/CD9_DIR] - <ret> - - - Enter amount of RAM for SAP + DB - (SAP + DB に割り当てる RAM の合計を入力してください) - - 850<ret> (MB) - - - Service Entry Message Server - [3600] - <ret> - - - Enter Group-ID of sapsys - (sapsys のグループ ID を入力してください) - [101] - <ret> - - - Enter Group-ID of oper - (oper のグループ ID を入力してください) - [102] - <ret> - - - Enter Group-ID of dba - (dba のグループ ID を入力してください) - [100] - <ret> - - - Enter User-ID of <sid>adm - (<sid>adm のユーザ ID を入力してください) - [1000] - <ret> - - - Enter User-ID of ora<sid> - (ora<sid> のユーザ ID を入力してください) - [1002] - <ret> - - - Number of parallel procs - (並列プロセスの数) - [2] - <ret> - - - - - - CD をそれぞれ別の場所にコピーしないと、SAP - インストーラは (CD 内の LABEL.ASC - ファイルで識別される) 必要な CD を見つけられず、CD - を挿入 / マウントして承認するかマウントパスを入力するよう求めてくるでしょう。 - - CENTRDB.R3S - ファイルには、間違いがないわけではありません。 - 私の場合は、EXPORT4 を再度要求されました - (が、正しいキーを表示していたので - (6_LOCATION、それから 7_LOCATION など))、 - 正しい値を入力して進めて問題ありませんでした。 - いらいらしないようにしてください。 - - 後で触れるいくつかの問題を除けば、Oracle - データベースソフトウェアをインストールするところまでは - 素直に進むはずです。 - - - - - Oracle 8.0.5 のインストール - - Linux と Oracle DB で起こりうる問題についての SAP-Notes と - Oracle の Readme を読むようにしてください。 - すべてではないにしても、 - ほとんどは互換性のないライブラリに起因しています。 - - Oracle のインストールについて詳しいことは、Oracle のインストール - の章をご覧ください。 - - - orainst による Oracle 8.0.5 のインストール - - Oracle 8.0.5 - を利用する予定なら、 - 無事に再リンクするのにライブラリがいくつか追加で必要です。 - なぜなら、Oracle 8.0.5 は古い glibc (RedHat 6.0) - とリンクされていますが、RedHat 6.1 は新しい glibc - を利用しているからです。 - ですから、リンクが行われることを保証するには、 - 次の追加パッケージをインストールしなければなりません。 - - compat-libs-5.2-2.i386.rpm - compat-glibc-5.2-2.0.7.2.i386.rpm - compat-egcs-5.2-1.0.3a.1.i386.rpm - compat-egcs-c++-5.2-1.0.3a.1.i386.rpm - compat-binutils-5.2-2.9.1.0.23.1.i386.rpm - - 詳しくは、対応する SAP-Note や Oracle Readme - をご覧ください。他に選択肢がなければ - (私がインストールした時は、確認している暇がありませんでした)、 - 元のバイナリまたは再リンクされたバイナリを、 - 元の RedHat システムから持ってきて使うこともできるでしょう。 - - インテリジェントエージェントをコンパイルするために、 - RedHat Tcl パッケージがインストールされていなければなりません。 - tcl-8.0.3-20.i386.rpm - が入手できないなら、RedHat 6.1 用の - tcl-8.0.5-30.i386.rpm - など新しいものでも構いません。 - - 再リンク以外は、インストールは簡単です。 - - &prompt.root; su - oraids -&prompt.root; export TERM=xterm -&prompt.root; export ORACLE_TERM=xterm -&prompt.root; export ORACLE_HOME=/oracle/IDS -&prompt.root; cd /ORACLE_HOME/orainst_sap -&prompt.root; ./orainst - - ソフトウェアのインストールが終わるまで、すべての画面で - Enter を押して承認してください。ただし、 - Oracle On-Line Text Viewer - は現時点では Linux 版がないので選択を外してください。 - その後、Oracle は利用可能な - gcc, egcs や - i386-redhat-linux-gcc ではなく、 - i386-glibc20-linux-gcc - で再リンクしようとします。 - - 時間が限られていたので、私は - Oracle 8.0.5 PreProduction - リリースのバイナリを利用することにしました。 - 最初 RDBMS-CD 収録のバージョンを動かそうとして失敗し、 - その時点では正しい RPM - を見つけて利用するのはまるで悪夢のようだったからです。 - - - - - Linux (Kernel 2.0.33) 用の - Oracle 8.0.5 Pre-Production リリースのインストール - - これをインストールするのは簡単です。 - CD をマウントして、インストーラを起動してください。 - インストーラが Oracle ホームディレクトリの位置をたずねて、 - そこにすべてのバイナリをコピーします。 - もっとも、私はその前の RDBMS - インストールを試した時の残りを削除していませんでした。 - - この後、Oracle データベースは問題なく起動できました。 - - - - - SAP R/3 のインストールの続行 - - まず、idsamd (<sid>adm) ユーザと - oraids (ora<sid>) ユーザの環境設定を確認してください。 - 両者とも、.profile, - .login.cshrc - をもっていて、いずれも hostname - を使っているはずです。 - そのシステムのホスト名が完全修飾名であれば、すべてのファイルで - hostname を - hostname -s に変更する必要があります。 - - - データベースの読み込み - - その後、(exit を選択したかどうかによって) R3SETUP - を再起動または継続実行します。R3SETUP - は、テーブル領域を作成し、EXPORT1 から EXPORT6 - までデータを R3load でデータベースに読み込みます - (これは IDES システムです。違う場合は、EXPORT1 から EXPORT3 - だけになります)。 - - データベースの読み込みが完了したら - (数時間に渡るかもしれません)、何かパスワードを要求されます。 - テスト用にインストールしたのであれば、 - 周知のデフォルトパスワードを使ってもよいでしょう - (セキュリティが問題になるなら、異なるものを使ってください!)。 - - - - - - 質問 - 入力 - - - - - Enter Password for sapr3 - (sapr3 のパスワードを入力してください) - sap<ret> - - - Confirum Password for sapr3 - (sapr3 のパスワードを再入力してください) - sap<ret> - - - Enter Password for sys - (sys のパスワードを入力してください) - change_on_install<ret> - - - Confirm Password for sys - (sys のパスワードを再入力してください) - change_on_install<ret> - - - Enter Password for system - (system のパスワードを入力してください) - manager<ret> - - - Confirm Password for system - (system のパスワードを再入力してください) - manager<ret> - - - - - - ここで、dipgntab で少し問題がありました。 - - - - Listener - - 次のように、Oracle-Listener を oraids - (ora<sid>) ユーザで起動してください。 - - umask 0; lsnrctl start - - そうしないと、ソケットが正しいパーミッションにならないので、 - ORA-12546 が発生するかもしれません。SAP note 072984 - をご覧ください。 - - - - - インストール後の手順 - - - SAP R/3 ライセンスキーの要求 - - 一時ライセンスは - 4 週間だけ有効なので、これが必要になります。 - オペレーティングシステムを正しく入力するようにしてください: - (X) Other (その他): FreeBSD 4.3 Stable。 - まず、ハードウェアキーを入手してください。 - idsadm ユーザでログオンし、 - saplicense を呼び出してください。 - - &prompt.root; /sapmnt/IDS/exe/saplicense -get - - saplicense - をオプションなしで起動すると、オプション一覧を出力します。 - ライセンスキーを受け取ったら、 - 次のようにしてインストールできます。 - - &prompt.root; /sapmnt/IDS/exe/saplicense -install - - そうしたら、次の値を入力します。 - - SAP SYSTEM ID = <SID, 3 chars> -CUSTOMER KEY = <hardware key, 11 chars> -INSTALLATION NO = <installation, 10 digits> -EXPIRATION DATE = <yyyymmdd, usually "99991231"> -LICENSE KEY = <license key, 24 chars> - - - - ユーザの作成 - - クライアント 000 内でユーザを作成します - (クライアント 000 内で行わなければなりませんが、 - ユーザ sap*ddic - 以外のユーザでなければならないタスクのためです)。 - ユーザ名として、私は通常 - wartung (または - 英語で service) - を選択しています。必要となるプロファイルは - sap_newsap_all - です。セキュリティを高めるため、 - すべてのクライアントのデフォルトユーザのパスワードを変更すべきです - (ユーザ sap*ddic - を含みます)。 - - - - トランスポートシステム、プロファイル、操作モードなどの設定 - - クライアント 000 内で、ddic と sap* - 以外のユーザについて、少なくとも次のことを行ってください。 - - - - - - 作業 - トランザクション - - - - - トランスポートシステムの設定。たとえば、 - スタンドアロントランスポートエンティティ - STMS - - - システム用のプロファイルの作成・編集 - RZ10 - - - 操作モードとインスタンスの維持管理 - RZ04 - - - - - - これらのインストール後の手順は、それ以外も含めて - SAP インストールガイドにすべて書かれています。 - - - - Edit init<sid>.sap (initIDS.sap) - - /oracle/IDS/dbs/initIDS.sap - ファイルには - SAP バックアッププロファイルが含まれます。ここで、 - 使用するテープの容量、 - 圧縮の種類などを定義しなければなりません。 - sapdbabrbackup - と共に動かすため、以下の値を変更しました。 - - compress = hardware -archive_function = copy_delete_save -cpio_flags = "-ov --format=newc --block-size=128 --quiet" -cpio_in_flags = "-iuv --block-size=128 --quiet" -tape_size = 38000M -tape_address = /dev/nsa0 -tape_address_rew = /dev/sa0 - - 説明: - - compress 私が使っているテープは - HP DLT1 で、ハードウェア圧縮を行います。 - - archive_function - この変数は、Oracle - のアーカイブログを保存する際のデフォルトの振る舞いを定義します。 - 新規のログファイルはテープに保存され、 - 保存済みのログファイルは再度保存された後、削除されます。 - これは、もし、データベースを復旧しなければならなくなったのに、 - アーカイブテープのどれかが駄目になっていたという場合にも問題を回避します。 - - cpio_flags - デフォルトはブロックサイズを 5120 バイトに設定する -B - が使われます。DLT テープについては、HP はブロックサイズに - 32 キロバイト以上を推奨していますので、64 キロバイトに設定する - --block-size=128 を用いました。65535 より多くの - inode 番号があるので、--format=newc が必要になります。 - 最後のオプション --quiet は、cpio - が保存したブロック数を出力すると - brbackup が文句をいうので必要になります。 - - cpio_in_flags - は、データをテープから読み込むのに必要となるフラグです。 - データ形式は自動的に認識されます。 - - tape_size - これは通常、テープの raw (生の) 容量を表します。 - (ハードウェア圧縮を利用しているので) 安全のため、 - - value - は実際の値よりもわずかに小さくしています。 - - tape_address - cpio と組み合わせて用いる巻き戻し不可なデバイス。 - - tape_address_rew - cpio と組み合わせて用いる巻き戻し可能なデバイス。 - - - - インストール後の設定 - - 以下の SAP パラメータについてはインストール後に調整する必要があります。 - - - - - - 名前 - - - - - - ztta/roll_extension - 250000000 - - - abap/heap_area_dia - 300000000 - - - abap/heap_area_nondia - 400000000 - - - em/initial_size_MB - 256 - - - em/blocksize_kB - 1024 - - - ipc/shm_psize_40 - 70000000 - - - - - - SAP-Note 0013026: - - - - - - 名前 - - - - - - ztta/dynpro_area - 2500000 - - - - - - SAP-Note 0157246: - - - - - - 名前 - - - - - - rdisp/ROLL_MAXFS - 16000 - - - rdisp/PG_MAXFS - 30000 - - - - - - - 以上のパラメータと、1 ギガバイトのメモリを持つシステムでは、 - 以下のようなメモリ使用量となるでしょう。 - - Mem: 547M Active, 305M Inact, 109M Wired, 40M Cache, 112M Buf, 3492K Free - - - - - - インストール中の問題 - - - R3SETUP 中の OSUSERSIDADM_IND_ORA エラー - - この段階で R3SETUP がエラーを報告したら、CENTRDB.R3S - ファイルを編集します。[OSUSERSIDADM_IND_ORA] - という項目を探して、以下の値を変更します。 - - HOME=/home/idsadm (was empty) -STATUS=OK (had status ERROR) - - 以下のように、R3SETUP を再起動します。 - - &prompt.root; ./R3SETUP -f CENTRDB.R3S - - - - R3SETUP 中の OSUSERDBSID_IND_ORA - - この段階で R3SETUP がエラーを報告する可能性もあります。 - CENTRDB.R3S を編集して、[OSUSERDBSID_IND_ORA] - という項目を探し、その項目内の次の値を変更してください。 - - STATUS=OK - - その後、R3SETUP を再起動します。 - - &prompt.root; ./R3SETUP -f CENTRDB.R3S - - - - Oracle のインストール中に oraview.vrf - ファイルがみつからないという (FILE NOT FOUND) エラー - - インストールを開始する前に - Oracle On-Line Text Viewer - の選択を外すのを忘れています。この選択肢は現在 Linux - にはないにもかかわらず、インストール対象に選ばれています。 - Oracle のインストールメニューでこの製品を選択しているのを外して、 - インストールを再開してください。 - - - - R3SETUP, RFC または SAPGUI 起動時に - TEXTENV_INVALID エラー - - このエラーが起きた場合は、正しいロケールがありません。 - SAP note 0171356 にインストールしておかなければならない - RPM が挙げられています (たとえば、RedHat 6.1 なら - saplocales-1.0-3, - saposcheck-1.0-1)。R3SETUP - がこれに関係するエラーを出してもすべて無視して、対応する状態を - ERROR から OK に (CENTRDB.R3S で) 変更して R3SETUP - を再起動していると、SAP システムは正しく設定されず、 - システムを起動できたとしても、sapgui - でシステムに接続することはできません。古い Linux 版 sapgui - で接続しようとすると、次のメッセージがでます。 - - Sat May 5 14:23:14 2001 -*** ERROR => no valid userarea given [trgmsgo. 0401] -Sat May 5 14:23:22 2001 -*** ERROR => ERROR NR 24 occured [trgmsgi. 0410] -*** ERROR => Error when generating text environment. [trgmsgi. 0435] -*** ERROR => function failed [trgmsgi. 0447] -*** ERROR => no socket operation allowed [trxio.c 3363] -Speicherzugriffsfehler - - これは、SAP R/3 がロケールを割り当てられないか、 - 正しく設定されていない - (データベーステーブルの一部の項目が不足している) - ためです。SAP に接続するためには、次の項目をファイル - DEFAULT.PFL に追加してください (note 0043288 参照)。 - - abap/set_etct_env_at_new_mode =0 -install/collate/active =0 -rscp/TCP0B =TCP0B - - SAP システムを再起動してください。 - 地域特有の言語設定が期待どおりに動かないかもしれませんが、 - システムに接続できるはずです。 - 地域設定を修正 (して、適切なロケールを提供) したら、 - これらの項目を DEFAULT.PFL から削除して - SAP システムを再起動してかまいません。 - - - - - ORA-12546 エラー。リスナーの適切なパーミッションによる操作 - - 次のコマンドを実行して、Oracle リスナーをユーザ - oraids で起動してください。 - - &prompt.root; umask 0; lsnrctl start - - そうしないと、 - ソケットが正しいパーミッションになっていないという - ORA-12546 エラーを受け取るかもしれません。 - SAP note 0072984 をご覧ください。 - - - - R3SETUP 中の [DIPGNTAB_IND_IND] エラー - - 一般的なことは SAP note 0130581 (R3SETUP の - DIPGNTAB 段階での終了) をご覧ください。 - この特定のインストール段階において、 - なぜかインストールプロセスは、適切な SAP システム名 - "IDS" を使うかわりに、空文字列 "" を使います。 - ディレクトリにアクセスするのにパスを <sid> - (この場合は IDS) を使って生成するので、 - これはちょっとした問題を起こすことがあります。 - - /usr/sap/IDS/SYS/... -/usr/sap/IDS/DVMGS00 - - にアクセスするかわりに、 - つぎのパスを使います。 - - /usr/sap//SYS/... -/usr/sap/D00i - - インストールを続けるため、 - リンクと追加のディレクトリを作成します。 - - &prompt.root; pwd -/compat/linux/usr/sap -&prompt.root; ls -l -total 4 -drwxr-xr-x 3 idsadm sapsys 512 May 5 11:20 D00 -drwxr-x--x 5 idsadm sapsys 512 May 5 11:35 IDS -lrwxr-xr-x 1 root sapsys 7 May 5 11:35 SYS -> IDS/SYS -drwxrwxr-x 2 idsadm sapsys 512 May 5 13:00 tmp -drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 trans - - この現象を解説している SAP notes (0029227 and 0008401) - があります。 - - - - R3SETUP 中の [RFCRSWBOINI_IND_IND] エラー - - (ファイル CENTRDB.R3S で) - 問題の段階の状態 (STATUS) を ERROR から OK に設定して - R3SETUP を再起動してください。 - インストール後、レポート RSWBOINS - をトランザクション SE38 から実行しなければなりません。 - RFCRSWBOINI および RFCRADDBDIF - 段階の詳細については - SAP note 0162266 をご覧ください。 - - - - R3SETUP 中の [RFCRADDBDIF_IND_IND] エラー - - (ファイル CENTRDB.R3S で) - 問題の段階の状態 (STATUS) を ERROR から OK に設定して - R3SETUP を再起動してください。 - インストール後、レポート RADDBDIF をトランザクション SE38 - から実行しなければなりません。詳しくは - SAP note 0162266 をご覧ください。 - - - - - + 高度なトピックス Linux バイナリ互換機能がどのような仕組みなのか興味がある人はこのセクションを読んでください。 以下の文章で説明されていることのほとんどは &a.chat; に投稿された Terry Lambert (tlambert@primenet.com) 氏のメール (Message ID: <199906020108.SAA07001@usr09.primenet.com>) をもとにしています。 どのように動くのでしょう? execution class loader FreeBSD は、“実行クラスローダ (execution class loader) ” と呼ばれる抽象的な機構を持っています。これは &man.execve.2; システムコールへの楔という形で実装されています。 FreeBSD は、シェルインタプリタやシェルスクリプトを実行するための #! ローダを持った単一のプログラムローダではなく、 ローダのリストを持っているのです。 - 歴史的には、Unix プラットフォーム上の唯一のローダーがマジックナンバー + 歴史的には、&unix; プラットフォーム上の唯一のローダーがマジックナンバー (一般的にはファイルの先頭の 4 ないし 8 バイトの部分) の検査を行ないシステムで実行できるバイナリかどうかを検査し、 もしそうならバイナリローダーを呼び出すというようになっていました。 もし、そのシステム用のバイナリでない場合には、 &man.execve.2; システムコールの呼び出しは失敗の戻り値を返し、 シェルがシェルコマンドとして実行しようと試みていたわけです。 この仮定は現在利用しているシェルがどのようなものであっても変わりません。 後に &man.sh.1; に変更が加えられ、先頭の 2 バイトを検査した結果 :\n であれば代わりに &man.csh.1; を呼び出す、 というようになりました (この変更は SCO が最初に行なったと思われます)。 現在の FreeBSD は、プログラムローダリストを走査します。 その際、空白文字までの文字列をインタプリタとして認識する、 通常の #! ローダを用いるため、 該当するものが存在しなければ最終的に /bin/sh がロードされます。 ELF Linux ABI をサポートするため、FreeBSD は ELF バイナリを示すマジックナンバを確認します。 - (ただし、この段階では FreeBSD、Solaris、Linux、そしてその他の + (ただし、この段階では FreeBSD、&solaris;, Linux、そしてその他の ELF イメージ形式を使っている OS を区別することはできません)。 Solaris ELF ローダは、特殊なマーク (brand) があるかどうか探します。 このマークとは、ELF イメージのコメントセクションのことです。 - SVR4/Solaris の ELF バイナリには、このセクションは存在しません。 + SVR4/&solaris; の ELF バイナリには、このセクションは存在しません。 Linux バイナリを実行するためには、 ELF バイナリに &man.brandelf.1; で説明されている Linux のマークが付けられていなければなりません。 &prompt.root; brandelf -t Linux file 上のようにすることで、指定されたファイルは Linux のマークが付けられ、 ELF ローダが認識できるようになります。 ELF branding ELF ローダが Linux マークを確認すると、 ローダは proc 構造体内の ある一つのポインタを置き換えます。システムコールは全て、 - このポインタ (伝統的な Unix システムではこれは構造体の配列 sysent[] + このポインタ (伝統的な &unix; システムではこれは構造体の配列 sysent[] で、システムコールが含まれています) を通してインデックスされます。 さらに、そのプロセスには Linux カーネルモジュールに必要な シグナルトランポリンコード (訳注: シグナルの伝播を実現するコード) 用の特殊なトラップベクタの設定や、 他の (細かな) 調整のための設定が行なわれます。 Linux システムコールベクタは、 さまざまなデータに加えて sysent[] エントリーのリストを含んでおり、それらのアドレスはカーネルモジュール内にあります。 Linux バイナリがシステムコールを発行する際、トラップコードは proc 構造体を用いてシステムコール関数ポインタを 解釈します。そして FreeBSD ではなく Linux 用のシステムコールエントリポイントを得るわけです。 さらに、Linux モードは状況に応じてファイルシステム本来のルートマウントポイントを置き換えてファイルの参照を行ないます。 - これは、union オプションを指定してマウントされたファイルシステム - (unionfs ではありません!)が行なっていることと同じです。 + これは、 オプションを指定してマウントされたファイルシステム + (unionfs ファイルシステムではありません!) + が行なっていることと同じです。 ファイルを検索する際にはまず /compat/linux/original-path ディレクトリを、それから見つけられなかったときにのみ、 /original-path を調べます。 こうすることで、他のバイナリを要求するバイナリの実行を可能にしています (したがって、Linux 用プログラムツールは Linux ABI サポート環境下で完全に動作するわけです)。 またこれは、もし対応する Linux バイナリが存在しない場合に Linux バイナリが FreeBSD バイナリをロードしたり、実行したりすることが可能であること、 その Linux バイナリに自分自身が Linux 上で実行されていないことを 気付かせないようにする目的で、&man.uname.1; コマンドを /compat/linux ディレクトリに置くことができる、 ということを意味します。 要するに、Linux カーネルが FreeBSD カーネルの内部に存在しているわけです。 カーネルによって提供されるサービス全ての実装の基礎となるさまざまな関数は FreeBSD システムコールテーブルエントリと Linux システムコールテーブルエントリの両方で共通に利用されています。 これらにはファイルシステム処理、仮想メモリ処理、シグナル伝送、System V IPC などが含まれますが、 FreeBSD バイナリは FreeBSD グルー (訳注: glue; 二者の間を仲介するという意味) 関数群、 そして Linux バイナリは Linux グルー関数群を用いる、 という点だけが異なります (過去に存在したほとんどの OS は、 自分自身のためのグルー関数群しか備えていません。 前述したように、システムコールを発行する際、 各々のプロセスの proc 構造体内にある、 ローダによって動的に初期化されるポインタを参照してアドレスを得る代わりに、 静的でグローバルな sysent[] 構造体の配列に システムコール関数のアドレスが直接格納されているのです)。 さて、どちらを本来の FreeBSD ABI (訳注: Applications Binary Interface; 同じ CPU を利用したコンピュータ間でバイナリを共有するための規約のこと) と呼ぶべきなのでしょうか? 実は、どちらが本来のものであるかということを論ずることに意味はありません。 基本的に、FreeBSD グルー関数群はカーネルの中に静的にリンクされていて、 Linux グルー関数群は静的にリンクすることも、 カーネルモジュールを介して利用することもできるようになっている、 という違いがあるだけ (ただしこれは現時点においての話であり、 将来のリリースで変更される可能性がありますし、 おそらく実際に変更されるでしょう) です。 あ、「でもこれは本当にエミュレーションと呼べるのか」って? 答えは「いいえ」です。これは ABI の実装であり、 エミュレーションとは異なります。エミュレータが呼び出されているわけではありません (シミュレータでもないことをあらかじめ断っておきましょう)。 では、これがよく Linux エミュレーションと呼ばれるのは何故でしょうか? それはもちろん FreeBSD の売りにするためでもあるのですが、 実際には、次のような理由によります。 この機能が初めて実装された頃、 動作原理を説明する以外にこの機能を表現する言葉はありませんでした。 しかし、コードをコンパイルしたりモジュールをロードしない場合、 「FreeBSD 上で Linux バイナリを実行する」という表現は、 厳密に考えると適切ではありません。 そこで、その際にロードされているもの自身を表現する言葉 — すなわち Linux エミュレータが必要だったのです。