diff options
Diffstat (limited to 'ja_JP.eucJP/books/handbook/linuxemu/chapter.xml')
-rw-r--r-- | ja_JP.eucJP/books/handbook/linuxemu/chapter.xml | 1304 |
1 files changed, 0 insertions, 1304 deletions
diff --git a/ja_JP.eucJP/books/handbook/linuxemu/chapter.xml b/ja_JP.eucJP/books/handbook/linuxemu/chapter.xml deleted file mode 100644 index 9a43e912ac..0000000000 --- a/ja_JP.eucJP/books/handbook/linuxemu/chapter.xml +++ /dev/null @@ -1,1304 +0,0 @@ -<?xml version="1.0" encoding="euc-jp"?> -<!-- - The FreeBSD Documentation Project - The FreeBSD Japanese Documentation Project - - Original revision: r53722 - $FreeBSD$ ---> -<chapter xmlns="http://docbook.org/ns/docbook" - xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" - xml:id="linuxemu"> - - <info> - <title>&linux; バイナリ互換機能</title> - - <authorgroup> - <author> - <personname> - <firstname>Jim</firstname> - <surname>Mock</surname> - </personname> - <contrib>再構成と一部の更新: </contrib> - </author> - <!-- 22 Mar 2000 --> - </authorgroup> - - <authorgroup> - <author> - <personname> - <firstname>Brian N.</firstname> - <surname>Handy</surname> - </personname> - <contrib>オリジナルの文書を執筆: </contrib> - </author> - - <author> - <personname> - <firstname>Rich</firstname> - <surname>Murphey</surname> - </personname> - </author> - </authorgroup> - </info> - -<!-- <para><emphasis>訳: &a.jp.kiroh;、1996 年 9 月 24 日</emphasis></para> --> - - <sect1 xml:id="linuxemu-synopsis"> - <title>この章では</title> - - <indexterm> - <primary>Linux バイナリ互換機能</primary> - </indexterm> - <indexterm> - <primary>バイナリ互換機能</primary> - <secondary>Linux</secondary> - </indexterm> - - <para>&os; は、&linux; とのバイナリ互換機能を提供しています。 - このバイナリ互換機能を使うことで、ユーザは、ほとんどの - &linux; バイナリを変更することなく、&os; - システム上にインストールして実行できるようになります。 - ある状況においては &linux; バイナリを &linux; で動かすよりも - &os; で動かすほうが良いパフォーマンスが出るという報告もあります。</para> - - <para>しかしながら、いくつかの &linux; - に特有なオペレーティングシステムの機能は &os; - ではサポートされていません。たとえば、 - 仮想 8086 モードを有効にするような &i386; - 特有の呼び出しを過度に使う - &linux; バイナリは &os; では動きません。</para> - - <note> - <para>64 ビットの &linux; バイナリ互換機能は、 - &os; 10.3 で追加されました。</para> - </note> - - <para>この章を読むと、以下のことがわかります。</para> - - <itemizedlist> - <listitem> - <para>&os; システムで &linux; バイナリ互換機能を有効にする方法。</para> - </listitem> - - <listitem> - <para>&linux; 共有ライブラリを追加する方法。</para> - </listitem> - - <listitem> - <para>&linux; アプリケーションを - &os; システムにインストールする方法</para> - </listitem> - - <listitem> - <para>&os; における &linux; 互換機能の実装の詳細。</para> - </listitem> - </itemizedlist> - - <para>この章を読む前に、以下のことを理解しておく必要があります。</para> - - <itemizedlist> - <listitem> - <para><link linkend="ports">サードパーティ製ソフトウェア</link> - のインストール方法</para> - </listitem> - </itemizedlist> - </sect1> - - <sect1 xml:id="linuxemu-lbc-install"> - <title>&linux; バイナリ互換機能の設定</title> - - <indexterm><primary>Ports Collection</primary></indexterm> - - <para>&linux; ライブラリは、デフォルトでは &os; にインストールされません。 - また、&linux; バイナリ互換機能も、デフォルトでは有効ではありません。 - &linux; ライブラリは、手動もしくは - &os; Ports Collection を使ってインストールできます。</para> - - <para>port を構築する前に、 - <literal>linux</literal> カーネルモジュールを読み込んでください。 - このモジュールを読み込んでいないと、構築に失敗してしまいます。</para> - - <screen>&prompt.root; <userinput>kldload linux</userinput></screen> - - <para>64 ビットの互換機能を使うには、以下を実行してください。</para> - - <screen>&prompt.root; <userinput>kldload linux64</userinput></screen> - - <para>以下のようにしてモジュールが読み込まれていることを確認してください。</para> - - <screen>&prompt.user; <userinput>kldstat</userinput> - Id Refs Address Size Name - 1 2 0xc0100000 16bdb8 kernel - 7 1 0xc24db000 d000 linux.ko</screen> - - <para>&linux; - ライブラリおよびバイナリの基本セットを &os; - システムにインストールする最も簡単な方法は、 - <package>emulators/linux_base-c7</package> package または port - を使う方法です。port をインストールするには、 - 以下のコマンドを実行してください。</para> - - <screen>&prompt.root; <userinput>pkg install emulators/linux_base-c7</userinput></screen> - - <para>起動時から &linux; 互換機能を有効にする場合には、 - <filename>/etc/rc.conf</filename> に以下の行を追加してください。</para> - - <programlisting>linux_enable="YES"</programlisting> - - <para>64 ビットのコンピュータでは、 - <filename>/etc/rc.d/abi</filename> - により 64 ビット互換のためのモジュールは自動的に読み込まれます。</para> - - <indexterm> - <primary>カーネルオプション</primary> - <secondary>COMPAT_LINUX</secondary> - </indexterm> - - <para>&linux; バイナリ互換機能のレイヤには、(64 ビット x86 ホストにおける) - 32 および 64 ビット Linux バイナリのサポートが追加されたため、 - エミュレーション機能をカスタムカーネルに静的にリンクする必要はありません。</para> - - <sect2 xml:id="linuxemu-libs-manually"> - <title>手動によるライブラリの追加のインストール</title> - - <indexterm> - <primary>共有ライブラリ</primary> - </indexterm> - - <para>&linux; バイナリ互換機能を設定した後に、&linux; - アプリケーションが必要な共有ライブラリが存在しないというエラーを出した場合には、 - &linux; バイナリがどの共有ライブラリを必要としているかを確認して、 - 手動でインストールしてください。</para> - - <para>&linux; システムで、<command>ldd</command> を使うことにより、 - アプリケーションが必要とする共有ライブラリを調べることができます。 - たとえば、<command>linuxdoom</command> - が必要とする共有ライブラリを調べるには、 - <application>Doom</application> がインストールされている - &linux; システム上で、以下のコマンドを実行してください。</para> - - <screen>&prompt.user; <userinput>ldd linuxxdoom</userinput> -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</screen> - - <indexterm> - <primary>シンボリックリンク</primary> - </indexterm> - - <para>&linux; - システムでの出力の最後のカラムに表示されているすべてのファイルを - &os; システムの - <filename class="directory">/compat/linux</filename> - の下にコピーしてください。コピーしたら、 - 最初のカラムに示されるファイル名でコピーしたファイルに対してシンボリックリンクを張ってください。 - この例では、&os; システムで以下のようになります。</para> - - <screen>/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</screen> - - <para><command>ldd</command> - の出力の最初のカラムに表示されているメジャーバージョンが同じ - &linux; 共有ライブラリが既にインストールされている場合は、 - 最後のコラムにある名前のファイルを新たにコピーする必要はありません。 - 既にあるライブラリで動作するはずです。 - ただ、新しいバージョンの共有ライブラリがある場合には、 - コピーすることをお奨めします。 - 新しいライブラリにシンボリックリンクを変更したら、 - 古いライブラリは削除してかまいません。</para> - - <para>たとえば、以下のライブラリがすでに - &os; システムに存在するとします。</para> - - <screen>/compat/linux/lib/libc.so.4.6.27 -/compat/linux/lib/libc.so.4 -> libc.so.4.6.27</screen> - - <para>そして、<command>ldd</command> の出力が以下のように、 - バイナリが新しいバージョンを必要とする場合を考えます。</para> - - <screen>libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29</screen> - - <para>存在しているライブラリの最後の番号が - 1 つか 2 つ古いだけなので、 - わずかに古いライブラリでもプログラムは動作するはずです。 - しかしながら、<filename>libc.so</filename> - を新しいバージョンに置き換えるのが安全です。</para> - - <screen>/compat/linux/lib/libc.so.4.6.29 -/compat/linux/lib/libc.so.4 -> libc.so.4.6.29</screen> - - <para>通常は、&linux; - のバイナリが必要とする共有ライブラリを探す必要があるのは、 - &os; のシステムに &linux; - のプログラムをインストールする最初の数回だけです。 - それが過ぎれば、十分な &linux; - の共有ライブラリがシステムに存在するので、 - 新しくインストールした &linux; - のバイナリも追加の作業をせずに動作させることができるようになります。</para> - </sect2> - - <sect2> - <title>&linux; の <acronym>ELF</acronym> バイナリのインストール</title> - - <indexterm> - <primary>Linux</primary> - <secondary>ELF バイナリ</secondary> - </indexterm> - - <para><acronym>ELF</acronym> のバイナリを使うためには、 - 追加の作業が必要です。 - マークのない (unbranded) <acronym>ELF</acronym> - バイナリを実行しようとすると、 - 以下のようなエラーメッセージが表示されてしまうことでしょう。</para> - - <screen>&prompt.user; <userinput>./my-linux-elf-binary</userinput> -ELF binary type not known -Abort</screen> - - <para>&os; のカーネルが &os; の <acronym>ELF</acronym> バイナリと &linux; - のバイナリとを見分けられるようにするために、&man.brandelf.1; - を以下のようにして使ってください。</para> - - <screen>&prompt.user; <userinput>brandelf -t Linux my-linux-elf-binary</userinput></screen> - - <indexterm> - <primary>GNU ツールチェイン</primary> - </indexterm> - - <para>GNU のツール群が <acronym>ELF</acronym> - バイナリに自動的に適切なマークを付加するようになったので、 - この作業は通常必要ありません。</para> - </sect2> - - <sect2> - <title>&linux; <acronym>RPM</acronym> - ベースのアプリケーションのインストール</title> - - <para>&linux; <acronym>RPM</acronym> - ベースのアプリケーションをインストールするには、 - 最初に <package>archivers/rpm4</package> package または - port をインストールしてください。 - インストールすると、このコマンドを - <systemitem class="username">root</systemitem> 権限で使うことで、 - <filename>.rpm</filename> をインストールできます。</para> - - <screen>&prompt.root; <userinput>cd /compat/linux</userinput> -&prompt.root; <userinput>rpm2cpio < /path/to/linux.archive.rpm | cpio -id</userinput></screen> - - <para>必要に応じて、インストールした <acronym>ELF</acronym> - バイナリに <command>brandelf</command> を実行してください。 - 綺麗にアンインストールできないかもしれませんので注意してください。</para> - </sect2> - - <sect2> - <title>ホストネームリゾルバの設定</title> - - <para><acronym>DNS</acronym> がうまく動作しなかったり、 - 以下のようなエラーメッセージが表示される場合は、 - <filename>/compat/linux/etc/host.conf</filename> - ファイルを以下のように設定する必要があります。</para> - - <screen>resolv+: "bind" is an invalid keyword resolv+: -"hosts" is an invalid keyword</screen> - - <para>ファイルの内容を以下のように設定してください。</para> - - <programlisting>order hosts, bind -multi on</programlisting> - - <para>この設定では <filename>/etc/hosts</filename> を最初に検索し、 - 次に <acronym>DNS</acronym> を検索するように指定します。 - <filename>/compat/linux/etc/host.conf</filename> - が存在しない場合には、 - &linux; アプリケーションは - <filename>/etc/host.conf</filename> を使用しようとし、 - &os; の文法とは互換性がないと警告を出力します。 - <filename>/etc/resolv.conf</filename> - を利用してネームサーバの設定をしていない場合には、 - <literal>bind</literal> を削除してください。</para> - </sect2> - </sect1> - -<?ignore - - While the installer works, the binaries do not. As of Oct 2013, - Linux emulation is 32-bit but the trial version of Mathematica is - only available as 64-bit. This section should be revisited if Linux - emulation gets 64-bit binary support. - - <sect1 xml:id="linuxemu-mathematica"> - <info><title>&mathematica; のインストール</title> - <authorgroup> - <author><personname> - <firstname>Boris</firstname> - <surname>Hollas</surname></personname> - <contrib>Mathematica 9.X 向けの改訂: </contrib> - </author> - </authorgroup> - </info> - - <indexterm> - <primary>アプリケーション</primary> - <secondary><application>Mathematica</application></secondary> - </indexterm> - - <para>この節では、&linux; 版の - <application>&mathematica; 5.X</application> を - &os; へインストールするプロセスについて説明します。 - <application>&mathematica;</application> - は商用の科学、工学および数学で使われる計算ソフトウェアプログラムです。 - 30 日のトライアル版を <ulink - url="http://www.wolfram.com/mathematica/">wolfram.com/mathematica</ulink> - からダウンロードできます。</para> - - <sect2> - <title>&mathematica; インストーラの実行</title> - - <para>&mathematica; をインストールする前に、 - <filename role="package">textproc/linux-c7-aspell</filename> - package または port がインストールされていることと、 - &man.linprocfs.5; - ファイルシステムがマウントされていることを確認してください。</para> - - <screen>&prompt.root; <userinput>sysctl kern.fallback_elf_brand=3</userinput></screen> - - <para>これで &os; はマーク付が行われていない ELF バイナリは - &linux; <acronym>ABI</acronym> を使用すると見なすので、 - CDROM から直接インストーラを実行できます。</para> - - <para>ダウンロードファイルは、 - <filename>/tmp/Mathematica_9.0.1_LINUX.sh</filename> - と保存されます。スーパユーザになり、 - このインストールファイルを実行してください。</para> - - <programlisting>&prompt.root; <userinput>sh /tmp/Mathematica_9.0.1_LINUX.sh</userinput> -Mathematica Secured 9.0.1 for LINUX Installer Archive - -Verifying archive integrity. -Extracting installer. ... - Wolfram Mathematica 9 Installer -Copyright (c) 1988-2013 Wolfram Research, Inc. All rights reserved. - -WARNING: Wolfram Mathematica is protected by copyright law and international treaties. Unauthorized -reproduction or distribution may result in severe civil and criminal -penalties and will be prosecuted to the maximum extent possible under law. - -Enter the installation directory, or press ENTER to select /usr/local/Wolfram/Mathematica/9.0: -> -Now installing... -*********************** -Installation complete.</programlisting> - </sect2> - - <sect2> - <title>ネットワーク経由での &mathematica; フロントエンドの起動</title> - - <para><application>&mathematica;</application> - は標準フォントセットにない特別な記号を表示するために特殊なフォントを使用します。 - <application>Xorg</application> は、 - これらのフォントがローカルマシンにインストールされていることを要求します。 - これはつまり、これらのフォントを CD-ROM や - <application>&mathematica;</application> - がインストールされているホストマシンからローカルマシンにコピーしなければならないということです。 - これらのフォントは通常、CD-ROM の <filename - >/cdrom/Unix/Files/SystemFiles/Fonts</filename> - か、もしくはハードディスクの <filename - >/usr/local/mathematica/SystemFiles/Fonts</filename> - に置かれており、実際に使用されるフォントは - <filename>Type1</filename> および - <filename>X</filename> - サブディレクトリに格納されています。 - これらを利用するには次のようないくつかの方法があります。</para> - - <para>一つ目の方法は、フォントファイルを <filename - >/usr/local/lib/X11/fonts</filename> - 以下にある既存のフォントディレクトリにコピーし、 - 新しいフォントを含むディレクトで - &man.mkfontdir.1; を実行してください。</para> - - <para>もう一つの方法は、 - <filename - >/usr/local/lib/X11/fonts</filename> - にフォントディレクトリごとコピーする方法です。</para> - - <screen>&prompt.root; <userinput>cd /usr/local/lib/X11/fonts</userinput> -&prompt.root; <userinput>mkdir X</userinput> -&prompt.root; <userinput>mkdir MathType1</userinput> -&prompt.root; <userinput>cd /cdrom/Unix/Files/SystemFiles/Fonts</userinput> -&prompt.root; <userinput>cp X/* /usr/local/lib/X11/fonts/X</userinput> -&prompt.root; <userinput>cp Type1/* /usr/local/lib/X11/fonts/MathType1</userinput> -&prompt.root; <userinput>cd /usr/local/lib/X11/fonts/X</userinput> -&prompt.root; <userinput>mkfontdir</userinput> -&prompt.root; <userinput>cd ../MathType1</userinput> -&prompt.root; <userinput>mkfontdir</userinput></screen> - - <para>そして、 - フォントパスに新しいフォントディレクトリを追加してください。</para> - - <screen>&prompt.root; <userinput>xset fp+ /usr/local/lib/X11/fonts/X</userinput> -&prompt.root; <userinput>xset fp+ /usr/local/lib/X11/fonts/MathType1</userinput> -&prompt.root; <userinput>xset fp rehash</userinput></screen> - - <para><application>&xorg;</application> サーバを使用しているなら、 - <filename>/etc/X11/xorg.conf</filename> - に加えることでこれらのフォントディレクトリを自動的に読み込むようにできます。</para> - - <indexterm><primary>フォント</primary></indexterm> - - <para><filename - >/usr/local/lib/X11/fonts/Type1</filename> - というディレクトリが存在していない場合には、 - 上記例の <filename - >MathType1</filename> を <filename - >Type1</filename> - としてください。</para> - </sect2> - </sect1> - --> - - <!-- - As of October 2013, the trial version is only available in the - Professional and Academic editions (not the Student or Personal - editions) and requires a contact with a product specialist before - the evaluation download link is made available. - <sect1 xml:id="linuxemu-maple"> - <info><title>&maple; のインストール</title> - <authorgroup> - <author><personname> - <firstname>Aaron</firstname> - <surname>Kaplan</surname></personname> - <contrib>寄稿: </contrib> - </author> - </authorgroup> - <authorgroup> - <author><personname> - <firstname>Robert</firstname> - <surname>Getschmann</surname> - </personname> - <contrib>感謝: </contrib> - </author> - </authorgroup> - </info> - - <indexterm> - <primary>applications</primary> - <secondary><application>Maple</application></secondary> - </indexterm> - - <para><application>&maple;</application> - は <application>&mathematica;</application> - に似た商用の数式処理プログラムです。 - このソフトウェアを <link - xlink:href="http://www.maplesoft.com/products/maple/">Maplesoft</link> - で購入し、ライセンスを入手してください。 - このソフトウェアの &linux; 版を &os; にインストールするには、 - 以下のステップに従ってください。</para> - - <procedure> - <step><para>製品の配布物から <filename>INSTALL</filename> - シェルスクリプトを実行してください。 - インストールプログラムからの質問には、 - <quote>RedHat</quote> オプションを選択してください。 - 一般的なインストールのディレクトリは、<filename - >/usr/local/maple</filename> です。</para></step> - - <step> - <para>ライセンスを - <filename>/usr/local/maple/license/license.dat</filename> - にコピーしてください。</para> - </step> - - <step> - <para><application>&maple;</application> についてくる - <filename>INSTALL_LIC</filename> - というインストールシェルスクリプトを実行し、 - <application>FLEXlm</application> - ラインセンスマネージャをインストールしてください。 - ライセンスサーバに対して、 - コンピュータのホスト名を設定してください。</para> - </step> - - <step> - <para>以下のパッチを - <filename>/usr/local/maple/bin/maple.system.type</filename> - ファイルにあててください。</para> - - - <programlisting> ----- 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 -----</programlisting> - - <para><literal>"FreeBSD"|\</literal> - の後に空白を入れてはいけません。</para> - - <para>このパッチにより <application>&maple;</application> は、 - &os; を &linux; システムと認識します。 - <filename>bin/maple</filename> シェルスクリプトは - <filename>bin/maple.system.type</filename> を呼び出します。 - このスクリプトは、<command>uname -a</command> を実行し、 - オペレーティングシステムの名前を入手します。 - OS 名にから、どのバイナリを使用するかを判断します。</para> - </step> - - <step> - <para>ライセンスサーバを起動してください。</para> - - <para><filename>/usr/local/etc/rc.d/lmgrd</filename> - としてインストールされる、以下のスクリプトは、 - <command>lmgrd</command> を起動する便利な方法です。</para> - - <programlisting> ----- snip ------------ - -#! /bin/sh -PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin -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 - echo -n " lmgrd" - ;; -stop) - lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2 - ;; -*) - echo "Usage: `basename $0` {start|stop}" 1>&2 - exit 64 - ;; -esac - -exit 0 - ----- snip ------------</programlisting> - </step> - - <step> - <para><application>&maple;</application> - を起動して試験を行ってください。</para> - - <screen>&prompt.user; <userinput>cd /usr/local/maple/bin</userinput> -&prompt.user; <userinput>./xmaple</userinput></screen> - - <para>正常に動作することを確認したら、Maplesoft に対し、 - ネイティブ &os; - 版を希望することの連絡を検討してみてください。</para> - </step> - </procedure> - - <sect2> - <title>落とし穴</title> - - <itemizedlist> - <listitem><para><command>lmgrd</command> は、 - ライセンスファイルに依存し、問題があると - core dump してしまいます。 - 正しいライセンスファイルは以下のようなものです。</para> - - <programlisting># ======================================================= -# 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</programlisting> - - <note> - <para>この例において、 - シリアル番号およびキーは <literal>X</literal> - に置き換えています。 - chillig は、ホスト名です。</para> - </note> - - <para>ライセンスファイルを編集する際に、 - <quote>FEATURE</quote> - の行を書き換えてしまうと、動かなくなるでしょう。 - この行は、ライセンスキーで保護されています。</para> - </listitem> - </itemizedlist> - </sect2> - </sect1> - - --> - <!-- - As of October, 2013, the Linux version of Matlab is only available - for 64-bit. - - <sect1 xml:id="linuxemu-matlab"> - <info> - <title>&matlab; のインストール</title> - <authorgroup> - <author> - <personname> - <firstname>Dan</firstname> - <surname>Pelleg</surname> - </personname> - <contrib>寄稿: </contrib> - </author> - </authorgroup> - </info> - - <indexterm> - <primary>applications</primary> - <secondary><application>MATLAB</application></secondary> - </indexterm> - - <para>この節では、&os; システムへ、&linux; 版の - <application>&matlab; version 6.5</application> - をインストールするプロセスについて説明します。 - <xref linkend="matlab-jre"/> で詳細を説明する - <application>&java.virtual.machine;</application> を除けば、 - 極めてよく動作します。</para> - - <para>&linux; 版の <application>&matlab;</application> は、 - MathWorks (<link - xlink:href="http://www.mathworks.com/products/matlab/">MathWorks</link>) - から購入しライセンスを入手できます。 - ベンダに対し、ネイティブの &os; - 版を必要としていることを伝えてください。</para> - - <sect2> - <title>&matlab; のインストール</title> - - <para><application>&matlab;</application> - をインストールするには、以下のようにしてください。</para> - - <procedure> - <step> - <para>インストールスクリプトで推奨されているように、 - <systemitem class="username">root</systemitem> になり、 - インストール CD を挿入し、マウントしてください。 - 以下のように入力して、インストールスクリプトを実行してください。</para> - - <screen>&prompt.root; <userinput>/compat/linux/bin/sh /cdrom/install</userinput></screen> - - <tip> - <para>インストーラはグラフィカルです。 - ディスプレイを表示できなければ、 - <command>setenv HOME - ~<replaceable>USER</replaceable></command> - と実行してください。ここで、 - <replaceable>USER</replaceable> は、 - &man.su.1; を実行したユーザ名です。</para> - </tip> - </step> - - <step> - <para><application>&matlab;</application> - ルートディレクトリの入力を求められたら、 - <userinput>/compat/linux/usr/local/matlab</userinput> - と入力してください。</para> - - <tip> - <para>残りのインストールプロセスでの入力を簡単にするために、 - シェルプロンプトで、<command>set - MATLAB=/compat/linux/usr/local/matlab</command> - と実行してください。</para> - </tip> - </step> - - <step> - <para><application>&matlab;</application> - ライセンスを入手時の手順に従い、 - ライセンスファイルを編集してください。</para> - - <tip> - <para>エディタを使って、このファイルを準備してください。 - そして、インストーラが - <filename>$MATLAB/license.dat</filename> - を編集するように尋ねる前に、 - <filename>$MATLAB/license.dat</filename> - にコピーしてください。</para> - </tip> - </step> - - <step> - <para>インストールプロセスを完了してください。</para> - </step> - </procedure> - - <para>これで <application>&matlab;</application> - のインストールは終わりました。 - 以下の手順は、&os; システムに結びつけるための - <quote>glue</quote> です。</para> - </sect2> - - <sect2> - <title>ライセンスマネージャの起動</title> - - <procedure> - <step> - <para>ライセンスマネージャのスクリプトへのシンボリックリンクを作成してください。</para> - - <screen>&prompt.root; <userinput>ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW</userinput> -&prompt.root; <userinput>ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMW</userinput></screen> - </step> - - <step> - <para><filename>/usr/local/etc/rc.d/flexlm</filename> - という名前のスタートアップファイルを作成してください。 - 以下の例は、配布されている - <filename>$MATLAB/etc/rc.lm.glnx86</filename> - の改良版です。 - 変更点はファイルの位置、&linux; - エミュレーションでライセンスマネージャを起動する点です。</para> - - <programlisting>#!/bin/sh -case "$1" in - start) - if [ -f /usr/local/etc/lmboot_TMW ]; then - /compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u <replaceable>username</replaceable> && 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</programlisting> - - <important> - <para>ファイルに対し実行の権限を指定してください。</para> - - <screen>&prompt.root; <userinput>chmod +x /usr/local/etc/rc.d/flexlm</userinput></screen> - - <para>ここで、上記のコマンドの中の、 - <replaceable>username</replaceable> を - <systemitem class="username">root</systemitem> - ではないシステムのユーザ名に置き換えてください。</para> - </important> - </step> - - <step> - <para>以下のコマンドでライセンスマネージャを起動してください。</para> - - <screen>&prompt.root; <userinput>service flexlm start</userinput></screen> - </step> - </procedure> - </sect2> - - <sect2 xml:id="matlab-jre"> - <title>&java; Runtime Environment のリンク</title> - - <para><application>&java;</application> Runtime - Environment (<acronym>JRE</acronym>) のリンクを、 - &os; の作業場所に変更してください。</para> - - <screen>&prompt.root; <userinput>cd $MATLAB/sys/java/jre/glnx86/</userinput> -&prompt.root; <userinput>unlink jre; ln -s ./jre1.1.8 ./jre</userinput></screen> - </sect2> - - <sect2> - <title>&matlab; 起動スクリプトの作成</title> - - <procedure> - <step> - <para>以下の起動スクリプトを - <filename>/usr/local/bin/matlab</filename> - に置いてください。</para> - - <programlisting>#!/bin/sh -/compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@"</programlisting> - </step> - - <step> - <para>その後、 - <command>chmod +x /usr/local/bin/matlab</command> - コマンドを実行してください。</para> - </step> - </procedure> - - <tip> - <para>使用している - <filename role="package">emulators/linux_base</filename> - のバージョンによっては、 - このスクリプトを実行するとエラーが出ることがあります。 - エラーを避けるには、 - <filename>/compat/linux/usr/local/matlab/bin/matlab</filename> - ファイルを編集して、以下の行を変更してください。</para> - - <programlisting>if [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then</programlisting> - - <para>この行を、以下に置きかえてください。</para> - - <programlisting>if test -L $newbase; then</programlisting> - </tip> - </sect2> - - <sect2> - <title>&matlab; シャットダウンスクリプトの作成</title> - - <para>以下のスクリプトは、&matlab; が正常に終了しない問題を解決します。</para> - - <procedure> - <step> - <para><filename>$MATLAB/toolbox/local/finish.m</filename> - を作成して、以下の一行を加えてください。</para> - - <programlisting>! $MATLAB/bin/finish.sh</programlisting> - - <note> - <para>ここで <literal>$MATLAB</literal> は、 - 文字通り入力してください。</para> - </note> - - <tip> - <para>同じディレクトリの中には、 - <filename>finishsav.m</filename> および - <filename>finishdlg.m</filename> というファイルがあります。 - それらのファイルは、終了する前にワークスペースを保存します。 - これらのうちどちらかを使うには、 - <literal>save</literal> コマンドのすぐ後に、 - 上記の行を挿入してください。</para> - </tip> - </step> - - <step> - <para>以下の行を含む、 - <filename>$MATLAB/bin/finish.sh</filename> - ファイルを作成してください。</para> - - <programlisting>#!/compat/linux/bin/sh -(sleep 5; killall -1 matlab_helper) & -exit 0</programlisting> - </step> - - <step> - <para>ファイルを実行可能に設定してください。</para> - - <screen>&prompt.root; <userinput>chmod +x $MATLAB/bin/finish.sh</userinput></screen> - </step> - </procedure> - </sect2> - - <sect2 xml:id="matlab-using"> - <title>&matlab; を使用する</title> - - <para>これで <command>matlab</command> - を実行できるようになりました。</para> - </sect2> - </sect1> - - <sect1 xml:id="linuxemu-oracle"> - While the Oracle website is unclear, the installation script is: You - are attempting to install 64-bit Oracle on a 32-bit operating system. - This is not supported and will not work. - - <info><title>&oracle; のインストール</title> - <authorgroup> - <author><personname><firstname>Marcel</firstname><surname>Moolenaar</surname></personname><contrib>寄贈: </contrib></author> - </authorgroup> - </info> - - - <indexterm> - <primary>アプリケーション</primary> - <secondary><application>Oracle</application></secondary> - </indexterm> - - <para>このドキュメントでは <application>&oracle; 8.0.5</application> - および <application>&oracle; 8.0.5.1 Enterprise Edition</application> - の &linux; 版を &os; にインストールするための手順を解説します。</para> - - <sect2> - <title>&linux; 環境のインストール</title> - - <para>まずは Ports Collection から <filename - role='package'>emulators/linux_base</filename> - をインストールしてください。</para> - - <para>intelligent agent を起動したいなら - Red Hat Tcl パッケージ <filename>tcl-8.0.3-20.i386.rpm</filename> - もインストールしてください。 - <filename - role='package'>archivers/rpm</filename> port を使って、 - RPM をインストールするには一般的に次のようにします。</para> - - <screen>&prompt.root; <userinput>rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm package</userinput></screen> - - <para>このコマンドの実行時に、エラーが出てはいけません。</para> - </sect2> - - <sect2> - <title>&oracle; 環境の構築</title> - - <para><application>&oracle;</application> をインストールする前に、 - 環境を適切に設定する必要があります。 - この節では、<application>&oracle;</application> - のインストールガイドに書いてあるようなことではなく、 - &os; で &linux; 版の <application>&oracle;</application> - を動かす方法についてのみを解説します。</para> - - <sect3 xml:id="linuxemu-kernel-tuning"> - <title>カーネルのチューニング</title> - - <indexterm> - <primary>カーネルのチューニング</primary> - </indexterm> - - <para><application>&oracle;</application> - インストールガイドにあるように、 - 共有メモリの最大サイズを設定しなければいけません。 - &os; では <literal>SHMMAX</literal> を使わないようにしてください。 - <literal>SHMMAX</literal> は <literal>SHMMAXPGS</literal> - および <literal>PGSIZE</literal> から計算されます。 - 従って、<literal>SHMMAXPGS</literal> を使うようにしましょう。 - インストールガイドに記述されている他のオプションは使えます。 - 例えば以下のようにします。</para> - - <programlisting>options SHMMAXPGS=10000 -options SHMMNI=100 -options SHMSEG=10 -options SEMMNS=200 -options SEMMNI=70 -options SEMMSL=61</programlisting> - - <para>これらのオプションを意図した <application>&oracle;</application> - の使い方に合わせて設定してください。</para> - - <para>また、 - 次のオプションがカーネルのコンフィギュレーションファイルにあることも確認します。</para> - - <programlisting>options SYSVSHM #SysV shared memory -options SYSVSEM #SysV semaphores -options SYSVMSG #SysV interprocess communication</programlisting> - </sect3> - - <sect3 xml:id="linuxemu-oracle-account"> - - <title>&oracle; 用アカウント</title> - - <para><systemitem class="username">oracle</systemitem> - アカウントとして使われるユーザアカウントを作成してください。 - <systemitem class="username">oracle</systemitem> - 用のアカウントに特別なのは - Linux のシェルを割り当てるところだけです。 - <filename>/etc/shells</filename> に - <literal>/compat/linux/bin/bash</literal> を加え、<systemitem - class="username">oracle</systemitem> 用のアカウントに設定します。</para> - </sect3> - - <sect3 xml:id="linuxemu-environment"> - <title>環境設定</title> - - <para><envar>ORACLE_HOME</envar> や <envar>ORACLE_SID</envar> - といった通常の <application>&oracle;</application> - 用の変数の他に次の変数も設定しなければなりません。</para> - - <informaltable frame="none" pgwide="1"> - <tgroup cols="2"> - <colspec colwidth="1*"/> - <colspec colwidth="2*"/> - <thead> - <row> - <entry>変数</entry> - <entry>値</entry> - </row> - </thead> - - <tbody> - <row> - <entry><envar>LD_LIBRARY_PATH</envar></entry> - <entry><literal>$ORACLE_HOME/lib</literal></entry> - </row> - - <row> - <entry><envar>CLASSPATH</envar></entry> - <entry><literal>$ORACLE_HOME/jdbc/lib/classes111.zip</literal></entry> - </row> - - <row> - <entry><envar>PATH</envar></entry> - <entry><literal>/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</literal></entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>すべての環境変数は <filename>~/.profile</filename> - で以下のように設定することをお勧めします。</para> - - <programlisting>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</programlisting> - </sect3> - </sect2> - - <sect2> - <title>&oracle; のインストール</title> - - <para>インストーラを起動する前に、 - <systemitem class="username">oracle</systemitem> ユーザ所有の - <filename>/var/tmp/.oracle</filename> - という名前のディレクトリを作る必要があります。 - これで特に問題なく <application>&oracle;</application> - がインストールできるでしょう。 - もし問題が起こったら、まずは <application>&oracle;</application> - の配布物や設定をチェックしてください。 - <application>&oracle;</application> のインストールが終わったら、 - 次の二つの節で解説するパッチを当ててください。</para> - - <para>よくあるトラブルは、TCP - プロトコルアダプタが正しくインストールされていないことです。 - そのため、一切 TCP リスナを起動することができないのです。 - 次の操作はこの問題を解決するのに役立ちます。</para> - - <screen>&prompt.root; <userinput>cd $ORACLE_HOME/network/lib</userinput> -&prompt.root; <userinput>make -f ins_network.mk ntcontab.o</userinput> -&prompt.root; <userinput>cd $ORACLE_HOME/lib</userinput> -&prompt.root; <userinput>ar r libnetwork.a ntcontab.o</userinput> -&prompt.root; <userinput>cd $ORACLE_HOME/network/lib</userinput> -&prompt.root; <userinput>make -f ins_network.mk install</userinput></screen> - - <para>もう一度 <filename>root.sh</filename> - を起動するのを忘れないようにしてください。</para> - - <sect3 xml:id="linuxemu-patch-root"> - <title><filename>root.sh</filename> へのパッチ</title> - - <para><application>&oracle;</application> をインストールする時、 - <systemitem class="username">root</systemitem> - で行なう必要のあるいくつかの操作は <filename>root.sh</filename> - と呼ばれるシェルスクリプトに記録されます。 - このスクリプトは、<filename>orainst</filename> - にあります。次のパッチを <filename>root.sh</filename> に当てて、 - &os; の <command>chown</command> コマンドの正しい場所を指定するか、 - 代わりに &linux; ネイティブなシェルのもとでスクリプトを走らせてください。</para> - - <programlisting>*** 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</programlisting> - - <para><application>&oracle;</application> - を CD-ROM からインストールしない場合は <filename>root.sh</filename> - のソースにパッチを当ててもいいでしょう。 - <filename>rthd.sh</filename> という名前でソースツリーの - <filename>orainst</filename> - にあります。</para> - </sect3> - - <sect3 xml:id="linuxemu-patch-tcl"> - <title><filename>genclntsh</filename> へのパッチ</title> - - <para><command>genclntsh</command> スクリプトは、 - デモを作る時に一つの共有クライアントライブラリを生成するのに用いられます。 - <envar>PATH</envar> - の定義をコメントアウトするために次のパッチを当ててください。</para> - - <programlisting>*** 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 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: export PATH -# -# each product MUST provide a $PRODUCT/admin/shrept.lst</programlisting> - </sect3> - </sect2> - - <sect2> - <title>&oracle; の起動</title> - - <para>これまでの手順に従えば、&linux; でと同じように - <application>&oracle;</application> を起動できるでしょう。</para> - </sect2> - </sect1> - ?> - - <sect1 xml:id="linuxemu-advanced"> - <title>高度なトピックス</title> - - <para>この節では、&linux; - バイナリ互換機能がどのような仕組みで動作をしているかを説明します。 - 以下の文章は &a.chat; に投稿された - Terry Lambert (<email>tlambert@primenet.com</email>) 氏のメール - (Message ID: <literal><199906020108.SAA07001@usr09.primenet.com></literal>) - をもとにしています。</para> - - <indexterm><primary>execution class loader</primary></indexterm> - - <para>&os; は、<quote>実行クラスローダ (execution class loader) </quote> - と呼ばれる抽象的な機構を持っています。これは &man.execve.2; - システムコールへの楔という形で実装されています。</para> - - <para>歴史的には、&unix; のローダはマジックナンバー - (一般的にはファイルの先頭の 4 ないし 8 バイトの部分) - の検査を行ない、システムで実行できるバイナリかどうかを検査し、 - もしそうならバイナリローダを呼び出すというようになっていました。</para> - - <para>もし、そのシステム用のバイナリでない場合には、 - &man.execve.2; システムコールの呼び出しは失敗の戻り値を返し、 - シェルがシェルコマンドとして実行しようと試みていたわけです。 - この仮定は<quote>現在利用しているシェルがどのようなものであっても</quote>デフォルトでした。</para> - - <para>後に &man.sh.1; に変更が加えられ、先頭の 2 バイトを検査した結果 - <literal>:\n</literal> であれば代わりに &man.csh.1; を呼び出す、 - というようになりました。</para> - - <para>&os; は、単一のローダではなく、ローダの一覧を走査します。 - 動作しているシェルインタプリタもしくはシェルスクリプトとして、 - 該当するものが存在しなければ、<literal>#!</literal> - ローダが用いられます。</para> - - <indexterm> - <primary>ELF</primary> - </indexterm> - - <indexterm> - <primary>Solaris</primary> - </indexterm> - - <para>&linux; <acronym>ABI</acronym> をサポートするため、&os; は - ELF バイナリを示すマジックナンバを確認します。 - ELF ローダは、特殊な<emphasis>マーク (brand)</emphasis> - があるかどうか探します。 - このマークとは、ELF イメージのコメントセクションのことです。 - SVR4/&solaris; の ELF バイナリには、このセクションは存在しません。</para> - - <para>&linux; バイナリを実行するためには、 - &man.brandelf.1; を使って <literal>Linux</literal> - のマークが<emphasis>付けられて</emphasis>いなければなりません。</para> - - <screen>&prompt.root; <userinput>brandelf -t Linux file</userinput></screen> - - <indexterm> - <primary>ELF</primary> - <secondary>branding</secondary> - </indexterm> - - <para>ELF ローダが <literal>Linux</literal> マークを確認すると、 - ローダは <literal>proc</literal> 構造体内の - ある一つのポインタを置き換えます。システムコールは全て、 - このポインタを通してインデックスされます。 - さらに、そのプロセスには &linux; - カーネルモジュールに必要なシグナルトランポリンコード (訳注: - シグナルの伝播を実現するコード) 用の特殊なトラップベクタの設定や、 - 他の (細かな) 調整のための設定が行なわれます。</para> - - <para>&linux; システムコールベクタは、 - さまざまなデータに加えて <literal>sysent[]</literal> - エントリーのリストを含んでおり、 - それらのアドレスはカーネルモジュール内にあります。</para> - - <para>&linux; バイナリがシステムコールを発行する際、トラップコードは - <literal>proc</literal> 構造体を用いてシステムコール関数ポインタを - 解釈します。そして &os; ではなく - &linux; 用のシステムコールエントリポイントを得るわけです。</para> - - <para>&linux; - モードは状況に応じて<emphasis>ファイルシステム本来のルートマウントポイントを置き換えて</emphasis>ファイルの参照を行ないます。 - これは、<option>union</option> - を指定してマウントされたファイルシステムが行なっていることと同じです。 - ファイルを検索する際にはまず - <filename>/compat/linux/original-path</filename> - を調べます。見つけられなかったときには、 - <filename>/<replaceable>original-path</replaceable></filename> - を調べます。 - こうすることで、他のバイナリを要求するバイナリの実行を可能にしています。 - たとえば、&linux; 用ツールチェインは - &linux; ABI サポート環境下で完全に動作します。 - またこれは、もし対応する &linux; バイナリが存在しない場合に - &linux; バイナリが &os; バイナリをロードしたり、 - 実行したりすることが可能であること、 - その &linux; バイナリに自分自身が &linux; 上で実行されていないことを - 気付かせないようにする目的で、&man.uname.1; コマンドを - <filename class="directory">/compat/linux</filename> - ディレクトリに置くことができる、 - ということを意味します。</para> - - <para>要するに、&linux; カーネルが &os; - カーネルの内部に存在しているわけです。 - カーネルによって提供されるサービス全ての実装の基礎となるさまざまな関数は - &os; システムコールテーブルエントリと - &linux; システムコールテーブルエントリの両方で共通に利用されています。 - これらにはファイルシステム処理、仮想メモリ処理、シグナル伝送、 - System V IPC が含まれますが、 - &os; バイナリは &os; <emphasis>グルー</emphasis> (訳注: glue; - 二者の間を仲介するという意味) 関数群、 - そして &linux; バイナリは &linux; - <emphasis>グルー</emphasis>関数群を用いる、 - という点だけが異なります。 - &os; の<emphasis>グルー</emphasis>関数群は、 - カーネルの中に静的にリンクされ、 - &linux; の<emphasis>グルー</emphasis>関数群は静的にリンクすることも、 - カーネルモジュールを介して利用することもできるようになっています。</para> - - <para>技術的には、これはエミュレーションではなく、 - <acronym>ABI</acronym> の実装です。 - よく <quote>&linux; エミュレーション</quote>と呼ばれるのは、 - この機能が初めて実装された頃、 - この機能を表現する言葉がなかったためです。 - コードをコンパイルしてはいないので、 - &os; 上で &linux; バイナリを実行するという表現は、 - 厳密に考えると適切ではありません。</para> - </sect1> -</chapter> |