Page MenuHomeFreeBSD

D3597.diff
No OneTemporary

D3597.diff

Index: head/zh_TW.UTF-8/books/handbook/linuxemu/chapter.xml
===================================================================
--- head/zh_TW.UTF-8/books/handbook/linuxemu/chapter.xml
+++ head/zh_TW.UTF-8/books/handbook/linuxemu/chapter.xml
@@ -6,65 +6,73 @@
Original revision: 1.132
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="linuxemu">
- <info><title>與 Linux Binary 的相容方面</title>
+ <info>
+ <title>&linux; 二進位檔的相容性</title>
+
<authorgroup>
- <author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Restructured and parts updated by </contrib></author>
+ <author>
+ <personname>
+ <firstname>Jim</firstname>
+ <surname>Mock</surname>
+ </personname>
+ <contrib>Restructured and parts updated by </contrib>
+ </author>
<!-- 22 Mar 2000 -->
</authorgroup>
+
<authorgroup>
- <author><personname><firstname>Brian N.</firstname><surname>Handy</surname></personname><contrib>Originally contributed by </contrib></author>
- <author><personname><firstname>Rich</firstname><surname>Murphey</surname></personname></author>
+ <author>
+ <personname>
+ <firstname>Brian N.</firstname>
+ <surname>Handy</surname>
+ </personname>
+ <contrib>Originally contributed by </contrib>
+ </author>
+
+ <author>
+ <personname>
+ <firstname>Rich</firstname>
+ <surname>Murphey</surname>
+ </personname>
+ </author>
</authorgroup>
</info>
-
-
<sect1 xml:id="linuxemu-synopsis">
<title>概述</title>
- <indexterm><primary>Linux binary compatibility</primary></indexterm>
+
+ <indexterm>
+ <primary>Linux binary compatibility</primary>
+ </indexterm>
<indexterm>
<primary>binary compatibility</primary>
<secondary>Linux</secondary>
</indexterm>
- <para>FreeBSD 有提供其他幾種 &unix; like 作業系統的 binary 相容性,其中包括了 Linux。
- 你可能會納悶:為什麼 FreeBSD 需要能夠執行 Linux 專用執行檔(binary)呢?答案很簡單,
- 許多公司、開發者只會 Linux 開發程式,因為這是目前資訊界 <quote>最熱門</quote> 的玩意。
- 這逼得許多 FreeBSD 使用者不得不去勸說這些人是否提供可直接在 FreeBSD 上執行的版本。
- 但問題是,大多數公司並不瞭解會有多少人會用 FreeBSD 版,因此他們仍只開發 Linux 版。
- 那麼 FreeBSD 使用者該怎麼辦呢?答案就是用 FreeBSD 所提供的 Linux binary 相容。</para>
-
- <para>簡單來講,這種相容性可讓 FreeBSD 使用者直接執行約 90% 的 Linux 程式,而不必做任何修改。
- 這些包括了: <application>&staroffice;</application>、
- <application>&netscape;</application> 的 Linux 版、
- <application>&adobe;&nbsp;&acrobat;</application>、
- <application>RealPlayer</application>、
- <application>VMware</application>、
- <application>&oracle;</application>、
- <application>WordPerfect</application>、<application>Doom</application>、
- <application>Quake</application> 等等。此外,也有人回報說在某些情況下,
- 這些在 FreeBSD 上執行的 Linux 程式,甚至比原本在 Linux 執行得更好。</para>
-
- <para>然而呢,還是有些只限 Linux 特定的作業系統功能,在 FreeBSD 上並未支援。
- 如果 Linux 程式過於濫用只有 &i386; 架構上才能用的功能,比如:虛擬 8086 模式,
- 則可能無法在 FreeBSD 運作正常。</para>
+ <para>&os; 提供和32位元 &linux; 二進位檔的相容性,允許使用者在 &os;不需要修改就可以安裝和執行大部份32位元 &linux; 二進位檔。
+ 曾經有人指出,在某些情況下,32位元 &linux;二進位檔在 &os; 的表現比在 &linux;好。</para>
+
+ <para>然而,某些However, some &linux;作業系統的特色在 &os; 並未支援。
+ 例如,如果 &linux; 二進位檔過度使用&i386;特定的呼叫,像是啟動虛擬8086模式,將無法在 &os; 執行。此外,64位元 &linux; 二進位檔目前也尚未支援。</para>
+
+ <para>讀完本章後,您將了解:</para>
- <para>讀完這章,您將了解:</para>
<itemizedlist>
<listitem>
- <para>如何啟用 Linux 相容模式。</para>
+ <para>如何在&os;系統啟用 &linux; 相容模式 &os;。</para>
</listitem>
<listitem>
- <para>如何安裝額外的 Linux share libraries。</para>
- </listitem>
+ <para>如何安裝額外的 &linux; 共享程式庫。</para>
+ </listitem>
<listitem>
- <para>如何在 FreeBSD 上安裝 Linux 程式。</para>
+ <para>如何在&os;系統安裝 &linux; 應用程式。</para>
</listitem>
<listitem>
- <para>FreeBSD 上的 Linux 相容模式的實作細節。</para>
+ <para>The implementation details of &linux; compatibility in
+ &os;.</para>
</listitem>
</itemizedlist>
@@ -72,466 +80,375 @@
<itemizedlist>
<listitem>
- <para>知道如何透過 port 機制來安裝軟體(<xref linkend="ports"/>)。</para>
+ <para>知道如何安裝 <link linkend="ports">額外的第3方軟體</link>。</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="linuxemu-lbc-install">
- <title>安裝</title>
+ <title>設置 &linux; 二進位檔相容性</title>
- <indexterm><primary>KLD (kernel loadable object)</primary></indexterm>
+ <indexterm><primary>Ports Collection</primary></indexterm>
- <para>預設並不會打開 Linux 相容模式,最簡單的啟用方式,就是載入
- <literal>linux</literal> KLD object (<quote>Kernel LoaDable
- object</quote>)。 載入方式,請切為 <systemitem class="username">root</systemitem>
- 權限,然後打下列指令:</para>
+ <para> &linux; 程式庫並未預設安裝,而且 &linux; 二進位檔相容性並未啟用。
+ &linux; 程式庫可以手動安裝或是從 &os; Ports 安裝。</para>
+
+ <para>編譯 port 前,要載入 &linux; 核心模組,否則編譯會失敗:</para>
<screen>&prompt.root; <userinput>kldload linux</userinput></screen>
- <para>若要每次開機都啟用的話,請把下列內容加到
- <filename>/etc/rc.conf</filename> 檔:</para>
+ <para>確認模組已載入:</para>
- <programlisting>linux_enable="YES"</programlisting>
+ <screen>&prompt.user; <userinput>kldstat</userinput>
+ Id Refs Address Size Name
+ 1 2 0xc0100000 16bdb8 kernel
+ 7 1 0xc24db000 d000 linux.ko</screen>
- <para>另外可以用 &man.kldstat.8; 指令,來確認有哪些 KLD 有載入:</para>
+ <para>在 &os; 安裝基本的 &linux; 程式庫和二進位檔最簡單的方式是安裝 <package>emulators/linux_base-c6</package> 套件或是 port 。安裝 port:</para>
+
+ <screen>&prompt.root; <userinput>printf "compat.linux.osrelease=2.6.18\n" >> /etc/sysctl.conf</userinput>
+&prompt.root; <userinput>sysctl compat.linux.osrelease=2.6.18</userinput>
+&prompt.root; <userinput>pkg install emulators/linux_base-c6</userinput></screen>
+
+ <para>要讓 &linux; 相容性在開機時就啟用,可以加入這行到 <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>linux_enable="YES"</programlisting>
- <screen>&prompt.user; <userinput>kldstat</userinput>
-Id Refs Address Size Name
- 1 2 0xc0100000 16bdb8 kernel
- 7 1 0xc24db000 d000 linux.ko</screen>
<indexterm>
<primary>kernel options</primary>
<secondary>COMPAT_LINUX</secondary>
</indexterm>
- <para>If for some reason you do not want to or cannot load the KLD,
- then you may statically link Linux binary compatibility into the kernel
- by adding <literal>options COMPAT_LINUX</literal> to your kernel
- configuration file. Then install your new kernel as described in
- <xref linkend="kernelconfig"/>.</para>
+ <para>想要靜態連結 &linux; 二進位檔相容性到自訂核心的使用者應該增加 <literal>options COMPAT_LINUX</literal> 到他們自訂核心設定檔。
+ 編譯和安裝新核心的方法,如 <xref linkend="kernelconfig"/>所述。</para>
+
+ <sect2 xml:id="linuxemu-libs-manually">
+ <title>手動安裝額外的程式庫</title>
- <sect2>
- <title>Installing Linux Runtime Libraries</title>
<indexterm>
- <primary>Linux</primary>
- <secondary>installing Linux libraries</secondary>
+ <primary>shared libraries</primary>
</indexterm>
- <para>This can be done one of two ways, either by using the
- <link linkend="linuxemu-libs-port">linux_base</link> port, or
- by installing them <link linkend="linuxemu-libs-manually">manually</link>.</para>
-
- <sect3 xml:id="linuxemu-libs-port">
- <title>Installing Using the linux_base Port</title>
- <indexterm><primary>Ports Collection</primary></indexterm>
-
- <para>This is by far the easiest method to use when installing the
- runtime libraries. It is just like installing any other port
- from the <link xlink:href="file://localhost/usr/ports/">Ports Collection</link>.
- Simply do the following:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/emulators/linux_base-fc4</userinput>
-&prompt.root; <userinput>make install distclean</userinput></screen>
-
- <para>You should now have working Linux binary compatibility.
- Some programs may complain about incorrect minor versions of the
- system libraries. In general, however, this does not seem to be
- a problem.</para>
-
- <note><para>There may be multiple versions of the <package>emulators/linux_base</package> port available,
- corresponding to different versions of various Linux distributions.
- You should install the port most closely resembling the
- requirements of the Linux applications you would like to
- install.</para></note>
-
- </sect3>
-
- <sect3 xml:id="linuxemu-libs-manually">
- <title>Installing Libraries Manually</title>
+ <para>如果一個 &linux; 應用程式在設定 &linux;二進位檔相容性後表示缺少共享程式庫,
+ 看看這個&linux; 二進位檔需要哪個共享程式庫,手動安裝他。</para>
- <para>If you do not have the <quote>ports</quote> collection
- installed, you can install the libraries by hand instead. You
- will need the Linux shared libraries that the program depends on
- and the runtime linker. Also, you will need to create a
- <quote>shadow root</quote> directory,
- <filename>/compat/linux</filename>, for Linux libraries on your
- FreeBSD system. Any shared libraries opened by Linux programs
- run under FreeBSD will look in this tree first. So, if a Linux
- program loads, for example, <filename>/lib/libc.so</filename>,
- FreeBSD will first try to open
- <filename>/compat/linux/lib/libc.so</filename>, and if that does
- not exist, it will then try <filename>/lib/libc.so</filename>.
- Shared libraries should be installed in the shadow tree
- <filename>/compat/linux/lib</filename> rather than the paths
- that the Linux <command>ld.so</command> reports.</para>
-
- <para>Generally, you will need to look for the shared libraries
- that Linux binaries depend on only the first few times that you
- install a Linux program on your FreeBSD system. After a while,
- you will have a sufficient set of Linux shared libraries on your
- system to be able to run newly imported Linux binaries without
- any extra work.</para>
- </sect3>
-
- <sect3>
- <title>How to Install Additional Shared Libraries</title>
- <indexterm><primary>shared libraries</primary></indexterm>
-
- <para>What if you install the <filename>linux_base</filename> port
- and your application still complains about missing shared
- libraries? How do you know which shared libraries Linux
- binaries need, and where to get them? Basically, there are 2
- possibilities (when following these instructions you will need
- to be <systemitem class="username">root</systemitem> on your FreeBSD system).</para>
-
- <para>If you have access to a Linux system, see what shared
- libraries the application needs, and copy them to your FreeBSD
- system. Look at the following example:</para>
-
- <informalexample>
- <para>Let us assume you used FTP to get the Linux binary of
- <application>Doom</application>, and put it on a Linux system you have access to. You
- then can check which shared libraries it needs by running
- <command>ldd linuxdoom</command>, like so:</para>
+ <para> &linux; 系統中, <command>ldd</command> 可以用來決定應用程式需要哪個。
+ 例如,檢查 <command>linuxdoom</command> 需要哪個共享程式庫,從安裝 <application>Doom</application>的 &linux; 系統中執行這個指令:</para>
- <screen>&prompt.user; <userinput>ldd linuxdoom</userinput>
+ <screen>&prompt.user; <userinput>ldd linuxdoom</userinput>
libXt.so.3 (DLL Jump 3.1) =&gt; /usr/X11/lib/libXt.so.3.1.0
libX11.so.3 (DLL Jump 3.1) =&gt; /usr/X11/lib/libX11.so.3.1.0
libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/libc.so.4.6.29</screen>
- <indexterm><primary>symbolic links</primary></indexterm>
- <para>You would need to get all the files from the last column,
- and put them under <filename>/compat/linux</filename>, with
- the names in the first column as symbolic links pointing to
- them. This means you eventually have these files on your
- FreeBSD system:</para>
+ <indexterm>
+ <primary>symbolic links</primary>
+ </indexterm>
+
+ <para>然後,複製所有 &linux; 系統輸出最後一欄的檔案到 &os;系統的 <filename>/compat/linux</filename> 。
+ 複製完後,建立符號連結到剛剛輸出第一欄的名字。這個例子會在 &os; 系統產生以下檔案:</para>
- <screen>/compat/linux/usr/X11/lib/libXt.so.3.1.0
+ <screen>/compat/linux/usr/X11/lib/libXt.so.3.1.0
/compat/linux/usr/X11/lib/libXt.so.3 -&gt; libXt.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3 -&gt; libX11.so.3.1.0
/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.29</screen>
- <blockquote>
- <note>
- <para>Note that if you already have a Linux shared library
- with a matching major revision number to the first column
- of the <command>ldd</command> output, you will not need to
- copy the file named in the last column to your system, the
- one you already have should work. It is advisable to copy
- the shared library anyway if it is a newer version,
- though. You can remove the old one, as long as you make
- the symbolic link point to the new one. So, if you have
- these libraries on your system:</para>
+ <para>If a &linux; shared library already exists with a
+ matching major revision number to the first column of the
+ <command>ldd</command> output, it does not need to be copied
+ to the file named in the last column, as the existing library
+ should work. It is advisable to copy the shared library if it
+ is a newer version, though. The old one can be removed, as
+ long as the symbolic link points to the new one.</para>
+
+ <para>For example, these libraries already exist on the &os;
+ system:</para>
- <screen>/compat/linux/lib/libc.so.4.6.27
+ <screen>/compat/linux/lib/libc.so.4.6.27
/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.27</screen>
- <para>and you find a new binary that claims to require a
- later version according to the output of
- <command>ldd</command>:</para>
-
- <screen>libc.so.4 (DLL Jump 4.5pl26) -&gt; libc.so.4.6.29</screen>
-
- <para>If it is only one or two versions out of date in the
- in the trailing digit then do not worry about copying
- <filename>/lib/libc.so.4.6.29</filename> too, because the
- program should work fine with the slightly older version.
- However, if you like, you can decide to replace the
- <filename>libc.so</filename> anyway, and that should leave
- you with:</para>
+ <para>and <command>ldd</command> indicates that a binary
+ requires a later version:</para>
+
+ <screen>libc.so.4 (DLL Jump 4.5pl26) -&gt; libc.so.4.6.29</screen>
+
+ <para>Since the existing library is only one or two versions out
+ of date in the last digit, the program should still work with
+ the slightly older version. However, it is safe to replace
+ the existing <filename>libc.so</filename> with the newer
+ version:</para>
- <screen>/compat/linux/lib/libc.so.4.6.29
+ <screen>/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.29</screen>
- </note>
- </blockquote>
- <blockquote>
- <note>
- <para>The symbolic link mechanism is
- <emphasis>only</emphasis> needed for Linux binaries. The
- FreeBSD runtime linker takes care of looking for matching
- major revision numbers itself and you do not need to worry
- about it.</para>
- </note>
- </blockquote>
- </informalexample>
- </sect3>
+ <para>Generally, one will need to look for the shared libraries
+ that &linux; binaries depend on only the first few times that
+ a &linux; program is installed on &os;. After a while, there
+ will be a sufficient set of &linux; shared libraries on the
+ system to be able to run newly installed &linux; binaries
+ without any extra work.</para>
</sect2>
<sect2>
- <title>Installing Linux ELF Binaries</title>
+ <title>安裝 &linux; <acronym>ELF</acronym>
+ 二進位檔</title>
+
<indexterm>
<primary>Linux</primary>
<secondary>ELF binaries</secondary>
</indexterm>
- <para>ELF binaries sometimes require an extra step of
- <quote>branding</quote>. If you attempt to run an unbranded ELF
- binary, you will get an error message like the following:</para>
+ <para><acronym>ELF</acronym> 二進位等有時候需要額外的步驟。當執行未標記的 <acronym>ELF</acronym> 二進位檔,會產生錯誤訊息:</para>
<screen>&prompt.user; <userinput>./my-linux-elf-binary</userinput>
ELF binary type not known
Abort</screen>
- <para>To help the FreeBSD kernel distinguish between a FreeBSD ELF
- binary from a Linux binary, use the &man.brandelf.1;
- utility.</para>
+ <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 toolchain</primary></indexterm>
- <para>The GNU toolchain now places the appropriate branding
- information into ELF binaries automatically, so this step
- should become increasingly unnecessary in the future.</para>
+ <indexterm>
+ <primary>GNU toolchain</primary>
+ </indexterm>
+
+ <para>因為GNU工具鏈會自動放置適當的標記資訊進 <acronym>ELF</acronym> 二進位檔,通常就不需要這個步驟。</para>
+ </sect2>
+
+ <sect2>
+ <title>安裝 &linux; <acronym>RPM</acronym> 基礎的應用程式</title>
+
+ <para>要安裝 &linux; <acronym>RPM</acronym> 基礎的應用程式,先安裝 <package>archivers/rpm</package> 套件或 port。
+ 安裝後, <systemitem class="username">root</systemitem> 可以使用這個指令來安裝<filename>.rpm</filename>檔:</para>
+
+ <screen>&prompt.root; <userinput>cd /compat/linux</userinput>
+&prompt.root; <userinput>rpm2cpio &lt; /path/to/linux.archive.rpm | cpio -id</userinput></screen>
+
+ <para>如果需要, <command>brandelf</command> 已安裝的 <acronym>ELF</acronym>二進位檔。注意,這將會無法乾淨地解除安裝。</para>
</sect2>
<sect2>
- <title>Configuring the Hostname Resolver</title>
+ <title>設定主機名稱解析器(Hostname Resolver)</title>
- <para>If DNS does not work or you get this message:</para>
+ <para>如果 <acronym>DNS</acronym> 有問題或是出現這個錯誤:</para>
<screen>resolv+: "bind" is an invalid keyword resolv+:
"hosts" is an invalid keyword</screen>
- <para>You will need to configure a
- <filename>/compat/linux/etc/host.conf</filename> file
- containing:</para>
+ <para>將 <filename>/compat/linux/etc/host.conf</filename>設定如下:</para>
<programlisting>order hosts, bind
multi on</programlisting>
- <para>The order here specifies that <filename>/etc/hosts</filename>
- is searched first and DNS is searched second. When
- <filename>/compat/linux/etc/host.conf</filename> is not
- installed, Linux applications find FreeBSD's
- <filename>/etc/host.conf</filename> and complain about the
- incompatible FreeBSD syntax. You should remove
- <literal>bind</literal> if you have not configured a name server
- using the <filename>/etc/resolv.conf</filename> file.</para>
+ <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>
- <sect1 xml:id="linuxemu-mathematica">
- <info><title>Installing &mathematica;</title>
+ <?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 id="linuxemu-mathematica">
+ <sect1info>
<authorgroup>
- <author><personname><firstname>Boris</firstname><surname>Hollas</surname></personname><contrib>Updated for Mathematica 5.X by </contrib></author>
+ <author>
+ <firstname>Boris</firstname>
+ <surname>Hollas</surname>
+ <contrib>Updated for Mathematica 5.X by </contrib>
+ </author>
</authorgroup>
- </info>
-
+ </sect1info>
+
+ <title>Installing &mathematica;</title>
<indexterm>
<primary>applications</primary>
<secondary><application>Mathematica</application></secondary>
</indexterm>
- <para>This document describes the process of installing the Linux
- version of <application>&mathematica; 5.X</application> onto
- a FreeBSD system.</para>
-
- <para>The Linux version of <application>&mathematica;</application>
- or <application>&mathematica; for Students</application> can
- be ordered directly from Wolfram at
- <uri xlink:href="http://www.wolfram.com/">http://www.wolfram.com/</uri>.</para>
+ <para>This section describes the process of installing the &linux;
+ version of <application>&mathematica; 9.X</application> onto a
+ &os; system. <application>&mathematica;</application> is a
+ commercial, computational software program used in scientific,
+ engineering, and mathematical fields. A 30 day trial version is
+ available for download from <ulink
+ url="http://www.wolfram.com/mathematica/">wolfram.com/mathematica</ulink>.</para>
<sect2>
<title>Running the &mathematica; Installer</title>
- <para>First, you have to tell &os; that
- <application>&mathematica;</application>'s Linux
- binaries use the Linux ABI. The easiest way to do so is to
- set the default ELF brand
- to Linux for all unbranded binaries with the command:</para>
+ <para>Before installing &mathematica;, make sure that the
+ <filename role="package">textproc/linux-c6-aspell</filename>
+ package or port is installed and that the &man.linprocfs.5;
+ file system is mounted.</para>
<screen>&prompt.root; <userinput>sysctl kern.fallback_elf_brand=3</userinput></screen>
- <para>This will make &os; assume that unbranded ELF binaries
- use the Linux ABI and so you should be able to run the
- installer straight from the CDROM.</para>
-
- <para>Now, copy the file <filename>MathInstaller</filename> to
- your hard drive:</para>
-
- <screen>&prompt.root; <userinput>mount /cdrom</userinput>
-&prompt.root; <userinput>cp /cdrom/Unix/Installers/Linux/MathInstaller /localdir/</userinput></screen>
-
- <para>and in this file, replace <literal>/bin/sh</literal> in
- the first line by <literal>/compat/linux/bin/sh</literal>.
- This makes sure that the installer is executed by the Linux
- version of &man.sh.1;. Next, replace all occurrences of
- <literal>Linux)</literal> by <literal>FreeBSD)</literal> with
- a text editor or the script below in the next section. This
- tells the <application>&mathematica;</application> installer,
- who calls <command>uname -s</command> to determine the
- operating system, to treat &os; as a Linux-like operating
- system. Invoking <command>MathInstaller</command> will now
- install <application>&mathematica;</application>.</para>
- </sect2>
-
- <sect2>
- <title>Modifying the &mathematica; Executables</title>
-
- <para>The shell scripts that
- <application>&mathematica;</application> created during
- installation have to be modified before you can use them. If
- you chose <filename>/usr/local/bin</filename>
- as the directory to place the
- <application>&mathematica;</application> executables in, you
- will find symlinks in this directory to files called
- <filename>math</filename>, <filename>mathematica</filename>,
- <filename>Mathematica</filename>, and
- <filename>MathKernel</filename>. In each of these, replace
- <literal>Linux)</literal> by <literal>FreeBSD)</literal> with
- a text editor or the following shell script:</para>
-
- <programlisting>#!/bin/sh
-cd /usr/local/bin
-for i in math mathematica Mathematica MathKernel
- do sed 's/Linux)/FreeBSD)/g' $i &gt; $i.tmp
- sed 's/\/bin\/sh/\/compat\/linux\/bin\/sh/g' $i.tmp &gt; $i
- rm $i.tmp
- chmod a+x $i
-done</programlisting>
- </sect2>
-
- <sect2>
- <title>Obtaining Your &mathematica; Password</title>
-
- <indexterm>
- <primary>Ethernet</primary>
- <secondary>MAC address</secondary>
- </indexterm>
-
- <para>When you start <application>&mathematica;</application>
- for the first time, you will be asked for a password. If you
- have not yet obtained a password from Wolfram, run the program
- <command>mathinfo</command> in the installation directory to
- obtain your <quote>machine ID</quote>. This machine ID is
- based solely on the MAC address of your first Ethernet card,
- so you cannot run your copy of
- <application>&mathematica;</application> on different
- machines.</para>
-
- <para>When you register with Wolfram, either by email, phone or fax,
- you will give them the <quote>machine ID</quote> and they will
- respond with a corresponding password consisting of groups of
- numbers.</para>
+ <para>&os; will now assume that unbranded ELF binaries use the
+ &linux; <acronym>ABI</acronym> which should allow the
+ installer to execute from the CDROM.</para>
+
+ <para>The downloaded file will be saved to
+ <filename>/tmp/Mathematica_9.0.1_LINUX.sh</filename>. Become
+ the superuser and run this installer file:</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>Running the &mathematica; Frontend over a Network</title>
<para><application>&mathematica;</application> uses some special
- fonts to display characters not
- present in any of the standard font sets (integrals, sums, Greek
- letters, etc.). The X protocol requires these fonts to be install
- <emphasis>locally</emphasis>. This means you will have to copy
- these fonts from the CDROM or from a host with
- <application>&mathematica;</application>
- installed to your local machine. These fonts are normally stored
- in <filename>/cdrom/Unix/Files/SystemFiles/Fonts</filename> on the
- CDROM, or
- <filename>/usr/local/mathematica/SystemFiles/Fonts</filename> on
- your hard drive. The actual fonts are in the subdirectories
- <filename>Type1</filename> and <filename>X</filename>. There are
- several ways to use them, as described below.</para>
-
- <para>The first way is to copy them into one of the existing font
- directories in <filename>/usr/X11R6/lib/X11/fonts</filename>.
- This will require editing the <filename>fonts.dir</filename> file,
- adding the font names to it, and changing the number of fonts on
- the first line. Alternatively, you should also just be able to
- run &man.mkfontdir.1; in the directory you have copied
- them to.</para>
+ fonts to display characters not present in any of the standard
+ font sets. <application>Xorg</application> requires these
+ fonts to be installed locally. This means that these fonts
+ need to be copied from the CDROM or from a host with
+ <application>&mathematica;</application> installed to the
+ local machine. These fonts are normally stored in <filename
+ >/cdrom/Unix/Files/SystemFiles/Fonts</filename>
+ on the CDROM, or <filename
+ >/usr/local/mathematica/SystemFiles/Fonts</filename>
+ on the hard drive. The actual fonts are in the subdirectories
+ <filename>Type1</filename> and
+ <filename>X</filename>. There are several
+ ways to use them, as described below.</para>
+
+ <para>The first way is to copy the fonts into one of the
+ existing font directories in <filename
+ >/usr/local/lib/X11/fonts</filename> then
+ running &man.mkfontdir.1; within the directory containing the
+ new fonts.</para>
<para>The second way to do this is to copy the directories to
- <filename>/usr/X11R6/lib/X11/fonts</filename>:</para>
+ <filename
+ >/usr/local/lib/X11/fonts</filename>:</para>
- <screen>&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts</userinput>
+ <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/X11R6/lib/X11/fonts/X</userinput>
-&prompt.root; <userinput>cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1</userinput>
-&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts/X</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>Now add the new font directories to your font path:</para>
+ <para>Now add the new font directories to the font path:</para>
- <screen>&prompt.root; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/X</userinput>
-&prompt.root; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/MathType1</userinput>
+ <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>If you are using the <application>&xorg;</application> server, you can have these font
- directories loaded automatically by adding them to your
- <filename>xorg.conf</filename> file.</para>
+ <para>When using the <application>&xorg;</application> server,
+ these font directories can be loaded automatically by adding
+ them to <filename>/etc/X11/xorg.conf</filename>.</para>
- <note><para>For <application>&xfree86;</application> servers,
- the configuration file is <filename>XF86Config</filename>.</para></note>
<indexterm><primary>fonts</primary></indexterm>
- <para>If you <emphasis>do not</emphasis> already have a directory
- called <filename>/usr/X11R6/lib/X11/fonts/Type1</filename>, you
- can change the name of the <filename>MathType1</filename>
- directory in the example above to
- <filename>Type1</filename>.</para>
+ <para>If <filename
+ >/usr/local/lib/X11/fonts/Type1</filename>
+ does not already exist, change the name of the <filename
+ >MathType1</filename> directory in the
+ example above to <filename
+ >Type1</filename>.</para>
</sect2>
</sect1>
+ -->
- <sect1 xml:id="linuxemu-maple">
- <info><title>Installing &maple;</title>
+ <!--
+ 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 id="linuxemu-maple">
+ <sect1info>
<authorgroup>
- <author><personname><firstname>Aaron</firstname><surname>Kaplan</surname></personname><contrib>Contributed by </contrib></author>
+ <author>
+ <firstname>Aaron</firstname>
+ <surname>Kaplan</surname>
+ <contrib>Contributed by </contrib>
+ </author>
</authorgroup>
<authorgroup>
- <author><personname><firstname>Robert</firstname><surname>Getschmann</surname></personname><contrib>Thanks to </contrib></author>
+ <author>
+ <firstname>Robert</firstname>
+ <surname>Getschmann</surname>
+ <contrib>Thanks to </contrib>
+ </author>
</authorgroup>
- </info>
-
+ </sect1info>
+ <title>Installing &maple;</title>
<indexterm>
<primary>applications</primary>
<secondary><application>Maple</application></secondary>
</indexterm>
- <para><application>&maple;</application> is a commercial mathematics program similar to
- <application>&mathematica;</application>. You must purchase this software from <uri xlink:href="http://www.maplesoft.com/">http://www.maplesoft.com/</uri> and then register there
- for a license file. To install this software on FreeBSD, please
- follow these simple steps.</para>
+ <para><application>&maple;</application> is a commercial
+ mathematics program similar to
+ <application>&mathematica;</application>. This software must be
+ purchased and licensed from <ulink
+ url="http://www.maplesoft.com/products/maple/">Maplesoft</ulink>.
+ To install the &linux; version of this software on &os;, follow
+ these steps.</para>
+
+ <procedure>
+ <step><para>Execute the <filename>INSTALL</filename> shell
+ script from the product distribution. Choose the
+ <quote>RedHat</quote> option when prompted by the
+ installation program. A typical installation directory
+ might be <filename
+ >/usr/local/maple</filename>.</para></step>
+
+ <step>
+ <para>Copy the license to
+ <filename>/usr/local/maple/license/license.dat</filename>.</para>
+ </step>
+
+ <step>
+ <para>Install the <application>FLEXlm</application> license
+ manager by running the <filename>INSTALL_LIC</filename>
+ install shell script that comes with
+ <application>&maple;</application>. Specify the primary
+ hostname for the machine for the license server.</para>
+ </step>
+
+ <step>
+ <para>Patch
+ <filename>/usr/local/maple/bin/maple.system.type</filename>
+ with the following:</para>
- <procedure>
- <step><para>Execute the <filename>INSTALL</filename> shell
- script from the product distribution. Choose the
- <quote>RedHat</quote> option when prompted by the
- installation program. A typical installation directory
- might be <filename>/usr/local/maple</filename>.</para></step>
-
- <step><para>If you have not done so, order a license for <application>&maple;</application>
- from Maple Waterloo Software (<uri xlink:href="http://register.maplesoft.com/">http://register.maplesoft.com/</uri>)
- and copy it to
- <filename>/usr/local/maple/license/license.dat</filename>.</para></step>
-
- <step><para>Install the <application>FLEXlm</application>
- license manager by running the
- <filename>INSTALL_LIC</filename> install shell script that
- comes with <application>&maple;</application>. Specify the
- primary hostname for your machine for the license
- server.</para></step>
-
- <step><para>Patch the
- <filename>/usr/local/maple/bin/maple.system.type</filename>
- file with the following:</para>
-<programlisting> ----- snip ------------------
+
+ <programlisting> ----- snip ------------------
*** maple.system.type.orig Sun Jul 8 16:35:33 2001
---- maple.system.type Sun Jul 8 16:35:51 2001
+-- - maple.system.type Sun Jul 8 16:35:51 2001
***************
*** 72,77 ****
---- 72,78 ----
+-- - 72,78 ----
# the IBM RS/6000 AIX case
MAPLE_BIN="bin.IBM_RISC_UNIX"
;;
@@ -541,27 +458,29 @@
# We have two Linux implementations, one for Red Hat and
----- snip end of patch -----</programlisting>
- <para>Please note that after the <literal>"FreeBSD"|\</literal> no other
- whitespace should be present.</para>
+ <para>Note that no whitespace should be present after
+ <literal>"FreeBSD"|\</literal>.</para>
- <para>This patch instructs <application>&maple;</application> to
- recognize <quote>FreeBSD</quote> as a type of Linux system.
- The <filename>bin/maple</filename> shell script calls the
+ <para>This patch instructs <application>&maple;</application>
+ to recognize &os; as a type of &linux; system. The
+ <filename>bin/maple</filename> shell script calls the
<filename>bin/maple.system.type</filename> shell script
- which in turn calls <command>uname -a</command> to find out the operating
- system name. Depending on the OS name it will find out which
- binaries to use.</para></step>
+ which in turn calls <command>uname -a</command> to find out
+ the operating system name. Depending on the OS name it will
+ find out which binaries to use.</para>
+ </step>
- <step><para>Start the license server.</para>
+ <step>
+ <para>Start the license server.</para>
<para>The following script, installed as
- <filename>/usr/local/etc/rc.d/lmgrd.sh</filename> is a
+ <filename>/usr/local/rtc/rc.d/lmgrd</filename> is a
convenient way to start up <command>lmgrd</command>:</para>
<programlisting> ----- snip ------------
#! /bin/sh
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
+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
@@ -583,31 +502,34 @@
esac
exit 0
- ----- snip ------------</programlisting></step>
+ ----- snip ------------</programlisting>
+ </step>
+ <step>
+ <para>Test that <application>&maple;</application>
+ starts:</para>
- <step><para>Test-start <application>&maple;</application>:</para>
<screen>&prompt.user; <userinput>cd /usr/local/maple/bin</userinput>
&prompt.user; <userinput>./xmaple</userinput></screen>
- <para>You should be up and running. Make sure to write
- Maplesoft to let them know you would like a native FreeBSD
- version!</para></step>
+ <para>Once everything is working, consider writing Maplesoft
+ to let them know you would like a native &os;
+ version!</para>
+ </step>
</procedure>
<sect2>
<title>Common Pitfalls</title>
<itemizedlist>
- <listitem><para>The <application>FLEXlm</application> license manager can be a difficult
- tool to work with. Additional documentation on the subject
- can be found at <uri xlink:href="http://www.globetrotter.com/">http://www.globetrotter.com/</uri>.</para></listitem>
-
- <listitem><para><command>lmgrd</command> is known to be very picky
- about the license file and to core dump if there are any
- problems. A correct license file should look like this:</para>
+ <listitem>
+ <para><command>lmgrd</command> is known to be picky about
+ the license file and to dump core if there are any
+ problems. A correct license file should look like
+ this:</para>
-<programlisting># =======================================================
+ <programlisting>#
+=======================================================
# License File for UNIX Installations ("Pointer File")
# =======================================================
SERVER chillig ANY
@@ -619,88 +541,99 @@
ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \
SN=XXXXXXXXX</programlisting>
- <note><para>Serial number and key 'X''ed out. <systemitem>chillig</systemitem> is a
- hostname.</para></note>
-
- <para>Editing the license file works as long as you do not
- touch the <quote>FEATURE</quote> line (which is protected by the
- license key).</para></listitem>
+ <note>
+ <para>In this example, the serial number and key were
+ replaced with <literal>X</literal>.
+ <hostid>chillig</hostid> is the hostname.</para>
+ </note>
+
+ <para>Editing the license file works as long as the
+ <quote>FEATURE</quote> line is not edited. That line is
+ protected by the license key.</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>Installing &matlab;</title>
+ <sect1 id="linuxemu-matlab">
+ <sect1info>
<authorgroup>
- <author><personname><firstname>Dan</firstname><surname>Pelleg</surname></personname><contrib>Contributed by </contrib></author>
- <!-- daniel+handbook@pelleg.org -->
+ <author>
+ <firstname>Dan</firstname>
+ <surname>Pelleg</surname>
+ <contrib>Contributed by </contrib>
+ </author>
</authorgroup>
- </info>
-
+ </sect1info>
+
+ <title>Installing &matlab;</title>
<indexterm>
<primary>applications</primary>
<secondary><application>MATLAB</application></secondary>
</indexterm>
- <para>This document describes the process of installing the Linux
- version of <application>&matlab; version 6.5</application> onto
- a &os; system. It works quite well, with the exception of the
- <application>&java.virtual.machine;</application> (see
- <xref linkend="matlab-jre"/>).</para>
-
- <para>The Linux version of <application>&matlab;</application> can be
- ordered directly from The MathWorks at <uri xlink:href="http://www.mathworks.com">http://www.mathworks.com</uri>. Make sure you also get
- the license file or instructions how to create it. While you
- are there, let them know you would like a native &os;
- version of their software.</para>
+ <para>This document describes the process of installing the
+ &linux; version of
+ <application>&matlab; version 6.5</application> onto a &os;
+ system. It works quite well, with the exception of the
+ <application>&java.virtual.machine;</application> which is
+ described further in <xref linkend="matlab-jre"/>.</para>
+
+ <para>The &linux; version of <application>&matlab;</application>
+ can be purchased and licensed from <ulink
+ url="http://www.mathworks.com/products/matlab/">
+ MathWorks</ulink>. Consider letting the company know that
+ you would like a native &os; version of this software.</para>
<sect2>
<title>Installing &matlab;</title>
- <para>To install <application>&matlab;</application>, do the
- following:</para>
+ <para>To install <application>&matlab;</application>:</para>
<procedure>
<step>
- <para>Insert the installation CD and mount it.
- Become <systemitem class="username">root</systemitem>, as recommended by the
- installation script. To start the installation script
- type:</para>
+ <para>Become <username>root</username>, as recommended by
+ the installation script. Insert the installation CD and
+ mount it. To start the installation script type:</para>
<screen>&prompt.root; <userinput>/compat/linux/bin/sh /cdrom/install</userinput></screen>
<tip>
- <para>The installer is graphical. If you get errors about
- not being able to open a display, type
- <command>setenv HOME ~USER</command>,
- where <replaceable>USER</replaceable> is the user you did a
- &man.su.1; as.</para>
+ <para>The installer is graphical. If it is not able to
+ open a display, type <command>setenv HOME
+ ~<replaceable>USER</replaceable></command>,
+ where <replaceable>USER</replaceable> is the user who
+ ran &man.su.1;.</para>
</tip>
</step>
<step>
<para>
- When asked for the <application>&matlab;</application> root
- directory, type:
+ When asked for the <application>&matlab;</application>
+ root directory, type:
<userinput>/compat/linux/usr/local/matlab</userinput>.</para>
<tip>
<para>For easier typing on the rest of the installation
- process, type this at your shell prompt:
- <command>set MATLAB=/compat/linux/usr/local/matlab</command></para>
+ process, type this at the shell prompt: <command>set
+ MATLAB=/compat/linux/usr/local/matlab</command>.</para>
</tip>
</step>
<step>
- <para>Edit the license file as instructed when
- obtaining the <application>&matlab;</application> license.</para>
+ <para>Edit the license file as instructed when obtaining
+ the <application>&matlab;</application> license.</para>
<tip>
- <para>You can prepare this file in advance using your
- favorite editor, and copy it to
+ <para>This file can be prepared in advance using an
+ editor, and copied to
<filename>$MATLAB/license.dat</filename> before the
- installer asks you to edit it.</para>
+ installer asks to edit it.</para>
</tip>
</step>
@@ -709,28 +642,30 @@
</step>
</procedure>
- <para>At this point your <application>&matlab;</application>
+ <para>At this point the <application>&matlab;</application>
installation is complete. The following steps apply
- <quote>glue</quote> to connect it to your &os; system.</para>
+ <quote>glue</quote> to connect it to the &os; system.</para>
</sect2>
<sect2>
<title>License Manager Startup</title>
+
<procedure>
<step>
- <para>Create symlinks for the license manager scripts:</para>
+ <para>Create symlinks for the license manager
+ scripts:</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>Create a startup file at
- <filename>/usr/local/etc/rc.d/flexlm.sh</filename>. The
+ <para>Create a startup file named
+ <filename>/usr/local/etc/rc.d/flexlm</filename>. The
example below is a modified version of the distributed
- <filename>$MATLAB/etc/rc.lm.glnx86</filename>. The changes
- are file locations, and startup of the license manager
- under Linux emulation.</para>
+ <filename>$MATLAB/etc/rc.lm.glnx86</filename>. The
+ changes are file locations and startup of the license
+ manager under &linux; emulation.</para>
<programlisting>#!/bin/sh
case "$1" in
@@ -755,28 +690,28 @@
<important>
<para>The file must be made executable:</para>
- <screen>&prompt.root; <userinput>chmod +x /usr/local/etc/rc.d/flexlm.sh</userinput></screen>
+ <screen>&prompt.root; <userinput>chmod +x /usr/local/etc/rc.d/flexlm</userinput></screen>
- <para>You must also replace
- <replaceable>username</replaceable> above with the name
- of a valid user on your system (and not
- <systemitem class="username">root</systemitem>).</para>
+ <para>Replace <replaceable>username</replaceable> with the
+ name of a valid user on the system which is not
+ <username>root</username>.</para>
</important>
</step>
<step>
<para>Start the license manager with the command:</para>
- <screen>&prompt.root; <userinput>/usr/local/etc/rc.d/flexlm.sh start</userinput></screen>
+ <screen>&prompt.root; <userinput>service flexlm start</userinput></screen>
</step>
</procedure>
</sect2>
- <sect2 xml:id="matlab-jre">
+ <sect2 id="matlab-jre">
<title>Linking the &java; Runtime Environment</title>
<para>Change the <application>&java;</application> Runtime
- Environment (JRE) link to one working under &os;:</para>
+ Environment (<acronym>JRE</acronym>) link to one working under
+ &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>
@@ -788,31 +723,30 @@
<procedure>
<step>
<para>Place the following startup script in
- <filename>/usr/local/bin/matlab</filename>:
- </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>Then type the command
+ <para>Then, type the command
<command>chmod +x /usr/local/bin/matlab</command>.</para>
</step>
</procedure>
<tip>
- <para>Depending on your version of
- <package>emulators/linux_base</package>, you
- may run into errors when running this script. To avoid that,
- edit the file
+ <para>Depending on the version of
+ <filename role="package">emulators/linux_base</filename>,
+ running this script may result in errors. To avoid errors,
+ edit
<filename>/compat/linux/usr/local/matlab/bin/matlab</filename>,
and change the line that says:</para>
<programlisting>if [ `expr "$lscmd" : '.*-&gt;.*'` -ne 0 ]; then</programlisting>
- <para>(in version 13.0.1 it is on line 410) to this
- line:</para>
+ <para>to this line:</para>
<programlisting>if test -L $newbase; then</programlisting>
</tip>
@@ -826,30 +760,31 @@
<procedure>
<step>
- <para>Create a file
- <filename>$MATLAB/toolbox/local/finish.m</filename>, and
- in it put the single line:</para>
+ <para>Create
+ <filename>$MATLAB/toolbox/local/finish.m</filename>
+ containing the single line:</para>
<programlisting>! $MATLAB/bin/finish.sh</programlisting>
- <note><para>The <literal>$MATLAB</literal> is
- literal.</para></note>
+ <note>
+ <para>The <literal>$MATLAB</literal> is literal.</para>
+ </note>
<tip>
- <para>In the same directory, you will find the files
+ <para>The same directory contains
<filename>finishsav.m</filename> and
- <filename>finishdlg.m</filename>, which let you save
- your workspace before quitting. If you use either of
- them, insert the line above immediately after the
- <literal>save</literal> command.</para></tip>
+ <filename>finishdlg.m</filename>, which allow the
+ workspace to be saved before quitting. If either file
+ is used, insert the line above immediately after the
+ <literal>save</literal> command.</para>
+ </tip>
</step>
<step>
- <para>Create a file
- <filename>$MATLAB/bin/finish.sh</filename>, which will
- contain the following:</para>
+ <para>Create <filename>$MATLAB/bin/finish.sh</filename>
+ which contains the following:</para>
- <programlisting>#!/usr/compat/linux/bin/sh
+ <programlisting>#!/compat/linux/bin/sh
(sleep 5; killall -1 matlab_helper) &amp;
exit 0</programlisting>
</step>
@@ -862,73 +797,82 @@
</procedure>
</sect2>
- <sect2 xml:id="matlab-using">
+ <sect2 id="matlab-using">
<title>Using &matlab;</title>
- <para>At this point you are ready to type
- <command>matlab</command> and start using it.</para>
+ <para>At this point, <command>matlab</command> is ready for
+ use.</para>
</sect2>
</sect1>
- <sect1 xml:id="linuxemu-oracle">
- <info><title>Installing &oracle;</title>
+ <sect1 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.
+
+ <sect1info>
<authorgroup>
- <author><personname><firstname>Marcel</firstname><surname>Moolenaar</surname></personname><contrib>Contributed by </contrib></author>
- <!-- marcel@cup.hp.com -->
+ <author>
+ <firstname>Marcel</firstname>
+ <surname>Moolenaar</surname>
+ <contrib>Contributed by </contrib>
+ </author>
</authorgroup>
- </info>
-
+ </sect1info>
+
+ <title>Installing &oracle;</title>
<indexterm>
<primary>applications</primary>
<secondary><application>Oracle</application></secondary>
</indexterm>
- <sect2>
- <title>Preface</title>
- <para>This document describes the process of installing <application>&oracle; 8.0.5</application> and
- <application>&oracle; 8.0.5.1 Enterprise Edition</application> for Linux onto a FreeBSD
- machine.</para>
- </sect2>
+ <para>This document describes the process of installing
+ <application>&oracle; 8.0.5</application> and
+ <application>&oracle; 8.0.5.1 Enterprise Edition</application>
+ for &linux; onto a &os; machine.</para>
<sect2>
- <title>Installing the Linux Environment</title>
+ <title>Installing the &linux; Environment</title>
+
+ <para>Make sure <filename
+ role='package'>emulators/linux_base</filename>
+ has been installed from the Ports Collection.</para>
- <para>Make sure you have both <package>emulators/linux_base</package> and
- <package>devel/linux_devtools</package> from the Ports Collection
- installed. If you run into difficulties with these ports,
- you may have to use
- the packages or older versions available in the Ports Collection.</para>
-
- <para>If you want to run the intelligent agent, you will
- also need to install the Red Hat Tcl package:
- <filename>tcl-8.0.3-20.i386.rpm</filename>. The general command
- for installing packages with the official <application>RPM</application> port (<package>archivers/rpm</package>) is:</para>
+ <para>To run the intelligent agent, install the Red Hat Tcl
+ package: <filename>tcl-8.0.3-20.i386.rpm</filename>. The
+ general command for installing RPMs with the
+ <filename role='package'>archivers/rpm</filename> port
+ is:</para>
- <screen>&prompt.root; <userinput>rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm package</userinput></screen>
+ <screen>&prompt.root; <userinput>rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm <replaceable>package</replaceable></userinput></screen>
- <para>Installation of the <replaceable>package</replaceable> should not generate any errors.</para>
+ <para>This command should not generate any errors.</para>
</sect2>
<sect2>
<title>Creating the &oracle; Environment</title>
- <para>Before you can install <application>&oracle;</application>, you need to set up a proper
- environment. This document only describes what to do
- <emphasis>specially</emphasis> to run <application>&oracle;</application> for Linux on FreeBSD, not
- what has been described in the <application>&oracle;</application> installation guide.</para>
-
- <sect3 xml:id="linuxemu-kernel-tuning">
- <title>Kernel Tuning</title>
- <indexterm><primary>kernel tuning</primary></indexterm>
-
- <para>As described in the <application>&oracle;</application> installation guide, you need to set
- the maximum size of shared memory. Do not use
- <literal>SHMMAX</literal> under FreeBSD. <literal>SHMMAX</literal>
- is merely calculated out of <literal>SHMMAXPGS</literal> and
- <literal>PGSIZE</literal>. Therefore define
- <literal>SHMMAXPGS</literal>. All other options can be used as
- described in the guide. For example:</para>
+ <para>Before installing <application>&oracle;</application>, set
+ up a proper environment. This section only describes how to
+ install <application>&oracle;</application> for &linux; on
+ &os;, not what has been described in the
+ <application>&oracle;</application> installation guide.</para>
+
+ <sect3 id="linuxemu-kernel-tuning">
+ <title>Kernel Tuning</title>
+
+ <indexterm>
+ <primary>kernel tuning</primary>
+ </indexterm>
+
+ <para>As described in the <application>&oracle;</application>
+ installation guide, the maximum size of shared memory needs
+ to be set. Do not use <literal>SHMMAX</literal> under &os;
+ as it is calculated from <literal>SHMMAXPGS</literal> and
+ <literal>PGSIZE</literal>. Therefore, define
+ <literal>SHMMAXPGS</literal>. All other options can be
+ used as described in the guide. For example:</para>
<programlisting>options SHMMAXPGS=10000
options SHMMNI=100
@@ -937,80 +881,80 @@
options SEMMNI=70
options SEMMSL=61</programlisting>
- <para>Set these options to suit your intended use of <application>&oracle;</application>.</para>
+ <para>Set these options to suit the intended use of
+ <application>&oracle;</application>.</para>
- <para>Also, make sure you have the following options in your kernel
- configuration file:</para>
+ <para>Also, make sure the following options are in the
+ kernel configuration file:</para>
-<programlisting>options SYSVSHM #SysV shared memory
+ <programlisting>options SYSVSHM #SysV shared memory
options SYSVSEM #SysV semaphores
options SYSVMSG #SysV interprocess communication</programlisting>
</sect3>
- <sect3 xml:id="linuxemu-oracle-account">
+ <sect3 id="linuxemu-oracle-account">
- <title>&oracle; Account</title>
+ <title>&oracle; Account</title>
- <para>Create an <systemitem class="username">oracle</systemitem> account just as you would create any other
- account. The <systemitem class="username">oracle</systemitem> account is special only that you need to give
- it a Linux shell. Add <literal>/compat/linux/bin/bash</literal> to
- <filename>/etc/shells</filename> and set the shell for the <systemitem class="username">oracle</systemitem>
- account to <filename>/compat/linux/bin/bash</filename>.</para>
+ <para>Create a user account to be used as the
+ <username>oracle</username> account. Add
+ <literal>/compat/linux/bin/bash</literal> to
+ <filename>/etc/shells</filename> and set the shell for
+ the <username>oracle</username> account to
+ <filename>/compat/linux/bin/bash</filename>.</para>
</sect3>
- <sect3 xml:id="linuxemu-environment">
- <title>Environment</title>
+ <sect3 id="linuxemu-environment">
+ <title>Environment</title>
- <para>Besides the normal <application>&oracle;</application> variables, such as
- <envar>ORACLE_HOME</envar> and <envar>ORACLE_SID</envar> you must
- set the following environment variables:</para>
+ <para>Besides the normal <application>&oracle;</application>
+ variables, such as <envar>ORACLE_HOME</envar> and
+ <envar>ORACLE_SID</envar> set the following
+ environment variables:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
- <colspec colwidth="1*"/>
- <colspec colwidth="2*"/>
+ <colspec colwidth="1*"/>
+ <colspec colwidth="2*"/>
<thead>
<row>
<entry>Variable</entry>
-
<entry>Value</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>
+ /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>It is advised to set all the environment variables in
- <filename>.profile</filename>. A complete example is:</para>
+ <para>It is advised to set all the environment variables in
+ <filename>~/.profile</filename> as follows:</para>
-<programlisting>ORACLE_BASE=/oracle; export ORACLE_BASE
+ <programlisting>ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=/oracle; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH
@@ -1028,18 +972,20 @@
<sect2>
<title>Installing &oracle;</title>
- <para>Due to a slight inconsistency in the Linux emulator, you need to
- create a directory named <filename>.oracle</filename> in
- <filename>/var/tmp</filename> before you start the installer.
- Let it be owned by the <systemitem class="username">oracle</systemitem> user. You
- should be able to install <application>&oracle;</application> without any problems. If you have
- problems, check your <application>&oracle;</application> distribution and/or configuration first!
- After you have installed <application>&oracle;</application>, apply the patches described in the
- next two subsections.</para>
-
- <para>A frequent problem is that the TCP protocol adapter is not
- installed right. As a consequence, you cannot start any TCP listeners.
- The following actions help solve this problem:</para>
+ <para>Before starting the installer, create a directory named
+ <filename>/var/tmp/.oracle</filename> which
+ is owned by the <username>oracle</username> user. The
+ installation of <application>&oracle;</application> should
+ work without any problems. If errors are encountered, check
+ the <application>&oracle;</application> distribution and
+ configuration. Once <application>&oracle;</application> is
+ installed, apply the patches described in the next two
+ subsections.</para>
+
+ <para>A frequent error is that the TCP protocol adapter is not
+ installed correctly. As a consequence, no TCP listeners can
+ be started. The following actions help to solve this
+ problem:</para>
<screen>&prompt.root; <userinput>cd $ORACLE_HOME/network/lib</userinput>
&prompt.root; <userinput>make -f ins_network.mk ntcontab.o</userinput>
@@ -1048,20 +994,23 @@
&prompt.root; <userinput>cd $ORACLE_HOME/network/lib</userinput>
&prompt.root; <userinput>make -f ins_network.mk install</userinput></screen>
- <para>Do not forget to run <filename>root.sh</filename> again!</para>
+ <para>Do not forget to run <filename>root.sh</filename>
+ again.</para>
- <sect3 xml:id="linuxemu-patch-root">
- <title>Patching root.sh</title>
+ <sect3 id="linuxemu-patch-root">
+ <title>Patching <filename>root.sh</filename></title>
- <para>When installing <application>&oracle;</application>, some actions, which need to be performed
- as <systemitem class="username">root</systemitem>, are recorded in a shell script called
- <filename>root.sh</filename>. This script is
- written in the <filename>orainst</filename> directory. Apply the
- following patch to <filename>root.sh</filename>, to have it use to proper location of
- <command>chown</command> or alternatively run the script under a
- Linux native shell.</para>
+ <para>When installing <application>&oracle;</application>,
+ some actions, which need to be performed as
+ <username>root</username>, are recorded in a shell script
+ called <filename>root.sh</filename>. This script is
+ found in <filename>orainst</filename>.
+ Apply the following patch to <filename>root.sh</filename>
+ so that it can find the &os; location of
+ <command>chown</command>. Alternatively, run the script
+ under a &linux; native shell.</para>
- <programlisting>*** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
+ <programlisting>*** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
--- orainst/root.sh Mon Dec 28 15:58:53 1998
***************
*** 31,37 ****
@@ -1071,7 +1020,7 @@
! CHOWN=/bin/chown
#
# Define variables to be used in this script
---- 31,37 ----
+ --- 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
@@ -1079,35 +1028,36 @@
#
# Define variables to be used in this script</programlisting>
- <para>When you do not install <application>&oracle;</application> from CD, you can patch the source
- for <filename>root.sh</filename>. It is called
- <filename>rthd.sh</filename> and is located in the
- <filename>orainst</filename> directory in the source tree.</para>
- </sect3>
-
- <sect3 xml:id="linuxemu-patch-tcl">
- <title>Patching genclntsh</title>
-
- <para>The script <command>genclntsh</command> is used to create
- a single shared client
- library. It is used when building the demos. Apply the following
- patch to comment out the definition of <envar>PATH</envar>:</para>
+ <para>If <application>&oracle;</application> is not installed
+ from CD, patch the source for <filename>root.sh</filename>.
+ It is called <filename>rthd.sh</filename> and is located in
+ <filename>orainst</filename> in the source
+ tree.</para>
+ </sect3>
+
+ <sect3 id="linuxemu-patch-tcl">
+ <title>Patching <filename>genclntsh</filename></title>
+
+ <para>The script <command>genclntsh</command> is used to create
+ a single shared client library when building the demos. Apply
+ the following patch to comment out the definition of
+ <envar>PATH</envar>:</para>
- <programlisting>*** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
+ <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:/usr/X11R6/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:/usr/X11R6/bin export PATH
+! #PATH=/usr/local/bin:/bin:/usr/bin: export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lst</programlisting>
</sect3>
@@ -1116,2166 +1066,109 @@
<sect2>
<title>Running &oracle;</title>
- <para>When you have followed the instructions, you should be able to run
- <application>&oracle;</application> as if it was run on Linux
- itself.</para>
+ <para>After following these instructions,
+ <application>&oracle;</application> should run as if it was
+ running on &linux;.</para>
</sect2>
</sect1>
+ ?>
- <sect1 xml:id="sapr3">
- <info><title>Installing &sap.r3;</title>
- <authorgroup>
- <author><personname><firstname>Holger</firstname><surname>Kipp</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
-
- <authorgroup>
- <author><personname><firstname>Valentino</firstname><surname>Vaschetto</surname></personname><contrib>Original version converted to SGML by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <indexterm>
- <primary>applications</primary>
- <secondary><application>SAP R/3</application></secondary>
- </indexterm>
-
- <para>Installations of <application>&sap;</application> Systems using FreeBSD will not be
- supported by the &sap; support team &mdash; they only offer support
- for certified platforms.</para>
-
- <sect2 xml:id="preface">
- <title>Preface</title>
-
- <para>This document describes a possible way of installing a
- <application>&sap.r3; System</application>
- with <application>&oracle; Database</application>
- for Linux onto a FreeBSD machine, including the installation
- of FreeBSD and <application>&oracle;</application>. Two different
- configurations will be described:</para>
-
- <itemizedlist>
- <listitem>
- <para><application>&sap.r3; 4.6B (IDES)</application> with
- <application>&oracle; 8.0.5</application> on FreeBSD 4.3-STABLE</para>
- </listitem>
-
- <listitem>
- <para><application>&sap.r3; 4.6C</application> with
- <application>&oracle; 8.1.7</application> on FreeBSD 4.5-STABLE</para>
- </listitem>
- </itemizedlist>
-
- <para>Even though this document tries to describe all important
- steps in a greater detail, it is not intended as a replacement
- for the <application>&oracle;</application> and
- <application>&sap.r3;</application> installation guides.</para>
-
- <para>Please see the documentation that comes with the
- <application>&sap.r3;</application>
- Linux edition for <application>&sap;</application> and
- <application>&oracle;</application> specific questions, as well
- as resources from <application>&oracle;</application> and
- <application>&sap; OSS</application>.</para>
- </sect2>
-
- <sect2 xml:id="software">
- <title>Software</title>
-
- <para>The following CD-ROMs have been used for <application>&sap;</application> installations:</para>
-
- <sect3 xml:id="software-46b">
- <title>&sap.r3; 4.6B, &oracle; 8.0.5</title>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Name</entry> <entry>Number</entry> <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>KERNEL</entry> <entry>51009113</entry> <entry>SAP Kernel Oracle /
- Installation / AIX, Linux, Solaris</entry>
- </row>
-
- <row>
- <entry>RDBMS</entry> <entry>51007558</entry> <entry>Oracle / RDBMS 8.0.5.X /
- Linux</entry>
- </row>
-
- <row>
- <entry>EXPORT1</entry> <entry>51010208</entry> <entry>IDES / DB-Export /
- Disc 1 of 6</entry>
- </row>
-
- <row>
- <entry>EXPORT2</entry> <entry>51010209</entry> <entry>IDES / DB-Export /
- Disc 2 of 6</entry>
- </row>
-
- <row>
- <entry>EXPORT3</entry> <entry>51010210</entry> <entry>IDES / DB-Export /
- Disc 3 of 6</entry>
- </row>
-
- <row>
- <entry>EXPORT4</entry> <entry>51010211</entry> <entry>IDES / DB-Export /
- Disc 4 of 6</entry>
- </row>
-
- <row>
- <entry>EXPORT5</entry> <entry>51010212</entry> <entry>IDES / DB-Export /
- Disc 5 of 6</entry>
- </row>
-
- <row>
- <entry>EXPORT6</entry> <entry>51010213</entry> <entry>IDES / DB-Export /
- Disc 6 of 6</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Additionally, we used the <application>&oracle; 8
- Server</application> (Pre-production version 8.0.5 for Linux,
- Kernel Version 2.0.33) CD which is not really necessary, and
- FreeBSD 4.3-STABLE (it was only a few days past 4.3
- RELEASE).</para>
-
- </sect3>
- <sect3 xml:id="software-46c">
- <title>&sap.r3; 4.6C SR2, &oracle; 8.1.7</title>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Name</entry> <entry>Number</entry> <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>KERNEL</entry> <entry>51014004</entry> <entry>SAP Kernel Oracle /
- SAP Kernel Version 4.6D / DEC, Linux</entry>
- </row>
-
- <row>
- <entry>RDBMS</entry> <entry>51012930</entry> <entry>Oracle 8.1.7/ RDBMS /
- Linux</entry>
- </row>
-
- <row>
- <entry>EXPORT1</entry> <entry>51013953</entry> <entry>Release 4.6C SR2 / Export
- / Disc 1 of 4</entry>
- </row>
-
- <row>
- <entry>EXPORT1</entry> <entry>51013953</entry> <entry>Release 4.6C SR2 / Export
- / Disc 2 of 4</entry>
- </row>
-
- <row>
- <entry>EXPORT1</entry> <entry>51013953</entry> <entry>Release 4.6C SR2 / Export
- / Disc 3 of 4</entry>
- </row>
-
- <row>
- <entry>EXPORT1</entry> <entry>51013953</entry> <entry>Release 4.6C SR2 / Export
- / Disc 4 of 4</entry>
- </row>
-
- <row>
- <entry>LANG1</entry> <entry>51013954</entry> <entry>Release 4.6C SR2 /
- Language / DE, EN, FR / Disc 1 of 3</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Depending on the languages you would like to install, additional
- language CDs might be necessary. Here we are just using DE and EN, so
- the first language CD is the only one needed. As a little note, the
- numbers for all four EXPORT CDs are identical. All three language CDs
- also have the same number (this is different from the 4.6B IDES
- release CD numbering). At the time of writing this installation is
- running on FreeBSD 4.5-STABLE (20.03.2002).</para>
- </sect3>
- </sect2>
-
- <sect2 xml:id="sap-notes">
- <title>&sap; Notes</title>
-
- <para>The following notes should be read before installing
- <application>&sap.r3;</application> and proved to be useful
- during installation:</para>
-
- <sect3 xml:id="sap-notes-46b">
- <title>&sap.r3; 4.6B, &oracle; 8.0.5</title>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Number</entry>
- <entry>Title</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>0171356</entry> <entry>SAP Software on Linux: Essential
- Comments</entry>
- </row>
-
- <row>
- <entry>0201147</entry> <entry>INST: 4.6C R/3 Inst. on UNIX -
- Oracle</entry>
- </row>
-
- <row>
- <entry>0373203</entry> <entry>Update / Migration Oracle 8.0.5 --&gt;
- 8.0.6/8.1.6 LINUX</entry>
- </row>
-
- <row>
- <entry>0072984</entry> <entry>Release of Digital UNIX 4.0B for
- Oracle</entry>
- </row>
-
- <row>
- <entry>0130581</entry> <entry>R3SETUP step DIPGNTAB terminates</entry>
- </row>
-
- <row>
- <entry>0144978</entry> <entry>Your system has not been installed
- correctly</entry>
- </row>
-
- <row>
- <entry>0162266</entry> <entry>Questions and tips for R3SETUP on Windows
- NT / W2K</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect3>
-
- <sect3 xml:id="sap-notes-46c">
- <title>&sap.r3; 4.6C, &oracle; 8.1.7</title>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Number</entry>
- <entry>Title</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>0015023</entry> <entry>Initializing table TCPDB (RSXP0004)
- (EBCDIC)</entry>
- </row>
-
- <row>
- <entry>0045619</entry> <entry>R/3 with several languages or
- typefaces</entry>
- </row>
-
- <row>
- <entry>0171356</entry> <entry>SAP Software on Linux: Essential
- Comments</entry>
- </row>
-
- <row>
- <entry>0195603</entry> <entry>RedHat 6.1 Enterprise version:
- Known problems</entry>
- </row>
-
- <row>
- <entry>0212876</entry> <entry>The new archiving tool SAPCAR</entry>
- </row>
-
- <row>
- <entry>0300900</entry> <entry>Linux: Released DELL Hardware</entry>
- </row>
-
- <row>
- <entry>0377187</entry> <entry>RedHat 6.2: important remarks</entry>
- </row>
-
- <row>
- <entry>0387074</entry> <entry>INST: R/3 4.6C SR2 Installation on
- UNIX</entry>
- </row>
-
- <row>
- <entry>0387077</entry> <entry>INST: R/3 4.6C SR2 Inst. on UNIX -
- Oracle</entry>
- </row>
-
- <row>
- <entry>0387078</entry> <entry>SAP Software on UNIX: OS Dependencies
- 4.6C SR2</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect3>
- </sect2>
-
- <sect2 xml:id="hardware-requirements">
- <title>Hardware Requirements</title>
-
- <para>The following equipment is sufficient for the installation
- of a <application>&sap.r3; System</application>. For production
- use, a more exact sizing is of course needed:</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Component</entry>
- <entry>4.6B</entry>
- <entry>4.6C</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>Processor</entry>
- <entry>2 x 800MHz &pentium; III</entry>
- <entry>2 x 800MHz &pentium; III</entry>
- </row>
-
- <row>
- <entry>Memory</entry>
- <entry>1GB ECC</entry>
- <entry>2GB ECC</entry>
- </row>
-
- <row>
- <entry>Hard Disk Space</entry>
- <entry>50-60GB (IDES)</entry>
- <entry>50-60GB (IDES)</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>For use in production, &xeon; Processors with large cache,
- high-speed disk access (SCSI, RAID hardware controller), USV
- and ECC-RAM is recommended. The large amount of hard disk
- space is due to the preconfigured IDES System, which creates
- 27&nbsp;GB of database files during installation. This space is
- also sufficient for initial production systems and application
- data.</para>
-
- <sect3 xml:id="hardware-46b">
- <title>&sap.r3; 4.6B, &oracle; 8.0.5</title>
-
- <para>The following off-the-shelf hardware was used: a dual processor
- board with 2 800&nbsp;MHz &pentium;&nbsp;III processors, &adaptec; 29160 Ultra160
- SCSI adapter (for accessing a 40/80&nbsp;GB DLT tape drive and CDROM),
- &mylex; &acceleraid; (2 channels, firmware 6.00-1-00 with 32&nbsp;MB RAM).
- To the &mylex; RAID controller are attached two 17&nbsp;GB hard disks
- (mirrored) and four 36&nbsp;GB hard disks (RAID level 5).</para>
- </sect3>
-
- <sect3 xml:id="hardware-46c">
- <title>&sap.r3; 4.6C, &oracle; 8.1.7</title>
-
- <para>For this installation a &dell; &poweredge; 2500 was used: a
- dual processor board with two 1000&nbsp;MHz &pentium;&nbsp;III processors
- (256&nbsp;kB Cache), 2&nbsp;GB PC133 ECC SDRAM, PERC/3 DC PCI RAID Controller
- with 128&nbsp;MB, and an EIDE DVD-ROM drive. To the RAID controller are
- attached two 18&nbsp;GB hard disks (mirrored) and four 36&nbsp;GB hard disks
- (RAID level 5).</para>
- </sect3>
- </sect2>
-
- <sect2 xml:id="installation">
- <title>Installation of FreeBSD</title>
-
- <para>First you have to install FreeBSD. There are several ways to do
- this, for more information read the <xref linkend="install-diff-media"/>.</para>
-
- <sect3 xml:id="disk-layout">
- <title>Disk Layout</title>
-
- <para>To keep it simple, the same disk layout both for the
- <application>&sap.r3; 46B</application> and <application>&sap.r3; 46C
- SR2</application> installation was used. Only the device names
- changed, as the installations were on different hardware (<filename>/dev/da</filename>
- and <filename>/dev/amr</filename> respectively, so if using an AMI &megaraid;, one will see
- <filename>/dev/amr0s1a</filename> instead of <filename>/dev/da0s1a</filename>):</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="4">
- <thead>
- <row>
- <entry>File system</entry>
- <entry>Size (1k-blocks)</entry>
- <entry>Size (GB)</entry>
- <entry>Mounted on</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><filename>/dev/da0s1a</filename></entry>
- <entry>1.016.303</entry>
- <entry>1</entry>
- <entry><filename>/</filename></entry>
- </row>
-
- <row>
- <entry><filename>/dev/da0s1b</filename></entry>
- <entry> </entry>
- <entry>6</entry>
- <entry>swap</entry>
- </row>
-
- <row>
- <entry><filename>/dev/da0s1e</filename></entry>
- <entry>2.032.623</entry>
- <entry>2</entry>
- <entry><filename>/var</filename></entry>
- </row>
-
- <row>
- <entry><filename>/dev/da0s1f</filename></entry>
- <entry>8.205.339</entry>
- <entry>8</entry>
- <entry><filename>/usr</filename></entry>
- </row>
-
- <row>
- <entry><filename>/dev/da1s1e</filename></entry>
- <entry>45.734.361</entry>
- <entry>45</entry>
- <entry><filename>/compat/linux/oracle</filename></entry>
- </row>
-
- <row>
- <entry><filename>/dev/da1s1f</filename></entry>
- <entry>2.032.623</entry>
- <entry>2</entry>
- <entry><filename>/compat/linux/sapmnt</filename></entry>
- </row>
-
- <row>
- <entry><filename>/dev/da1s1g</filename></entry>
- <entry>2.032.623</entry>
- <entry>2</entry>
- <entry><filename>/compat/linux/usr/sap</filename></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Configure and initialize the two logical drives
- with the &mylex; or PERC/3 RAID software beforehand.
- The software can be started during the
- <acronym>BIOS</acronym> boot phase.</para>
-
- <para> Please note that this disk layout differs slightly from
- the &sap; recommendations, as &sap; suggests mounting the
- <application>&oracle;</application> subdirectories (and some others) separately &mdash; we
- decided to just create them as real subdirectories for
- simplicity.</para>
- </sect3>
-
- <sect3 xml:id="makeworldandnewkernel">
- <title><command>make world</command> and a New Kernel</title>
-
- <para>Download the latest -STABLE sources. Rebuild world and your
- custom kernel after configuring your kernel configuration file.
- Here you should also include the
- <link linkend="kerneltuning">kernel parameters</link>
- which are required for both <application>&sap.r3;</application>
- and <application>&oracle;</application>.</para>
- </sect3>
- </sect2>
-
- <sect2 xml:id="installingthelinuxenviornment">
- <title>Installing the Linux Environment</title>
-
- <sect3 xml:id="installinglinuxbase-system">
- <title>Installing the Linux Base System</title>
-
- <para>First the <link linkend="linuxemu-libs-port">linux_base</link>
- port needs to be installed (as <systemitem class="username">root</systemitem>):</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/emulators/linux_base</userinput>
-&prompt.root; <userinput>make install distclean</userinput></screen>
-
- </sect3>
-
-
- <sect3 xml:id="installinglinuxdevelopment">
- <title>Installing Linux Development Environment</title>
-
- <para>The Linux development environment is needed, if you want to install
- <application>&oracle;</application> on FreeBSD according to the
- <xref linkend="linuxemu-oracle"/>:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/devel/linux_devtools</userinput>
-&prompt.root; <userinput>make install distclean</userinput></screen>
-
- <para>The Linux development environment has only been installed for the <application>&sap.r3;
- 46B IDES</application> installation. It is not needed, if
- the <application>&oracle; DB</application> is not relinked on the
- FreeBSD system. This is the case if you are using the
- <application>&oracle;</application> tarball from a Linux system.</para>
-
- </sect3>
-
-
- <sect3 xml:id="installingnecessaryrpms">
- <title>Installing the Necessary RPMs</title>
- <indexterm><primary>RPMs</primary></indexterm>
-
- <para>To start the <command>R3SETUP</command> program, PAM support is needed.
- During the first <application>&sap;</application> Installation on FreeBSD 4.3-STABLE we
- tried to install PAM with all the required packages and
- finally forced the installation of the PAM package, which
- worked. For <application>&sap.r3; 4.6C SR2</application> we
- directly forced the installation of the PAM RPM, which also
- works, so it seems the dependent packages are not needed:</para>
-
-
-<screen>&prompt.root; <userinput>rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \
-pam-0.68-7.i386.rpm</userinput></screen>
-
- <para>For <application>&oracle; 8.0.5</application> to run the
- intelligent agent, we also had to install the RedHat Tcl package
- <filename>tcl-8.0.5-30.i386.rpm</filename> (otherwise the
- relinking during <application>&oracle;</application> installation
- will not work). There are some other issues regarding
- relinking of <application>&oracle;</application>, but that is
- a <application>&oracle;</application> Linux issue, not FreeBSD specific.</para>
-
- </sect3>
-
- <sect3 xml:id="linuxprocandfallbackelfbrand">
- <title>Some Additional Hints</title>
-
- <para>It might also be a good idea to add <literal>linprocfs</literal>
- to <filename>/etc/fstab</filename>, for more information, see the &man.linprocfs.5; manual page.
- Another parameter to set is <literal>kern.fallback_elf_brand=3</literal>
- which is done in the file <filename>/etc/sysctl.conf</filename>.</para>
- </sect3>
- </sect2>
-
- <sect2 xml:id="creatingsapr3env">
- <title>Creating the &sap.r3; Environment</title>
-
- <sect3 xml:id="filesystemsandmountpoints">
- <title>Creating the Necessary File Systems and Mountpoints</title>
-
- <para>For a simple installation, it is sufficient to create the
- following file systems:</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>mount point</entry>
- <entry>size in GB</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><filename>/compat/linux/oracle</filename></entry>
- <entry>45 GB</entry>
- </row>
-
- <row>
- <entry><filename>/compat/linux/sapmnt</filename></entry>
- <entry>2 GB</entry>
- </row>
-
- <row>
- <entry><filename>/compat/linux/usr/sap</filename></entry>
- <entry>2 GB</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>It is also necessary to created some links. Otherwise
- the <application>&sap;</application> Installer will complain, as it is checking the
- created links:</para>
-
- <screen>&prompt.root; <userinput>ln -s /compat/linux/oracle /oracle</userinput>
-&prompt.root; <userinput>ln -s /compat/linux/sapmnt /sapmnt</userinput>
-&prompt.root; <userinput>ln -s /compat/linux/usr/sap /usr/sap</userinput></screen>
-
- <para>Possible error message during installation (here with
- System <emphasis>PRD</emphasis> and the
- <application>&sap.r3; 4.6C SR2</application>
- installation):</para>
-
- <screen>INFO 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:200
- Checking existence of symbolic link /usr/sap/PRD/SYS/exe/dbg to
- /sapmnt/PRD/exe. Creating if it does not exist...
-
-WARNING 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:400
- Link /usr/sap/PRD/SYS/exe/dbg exists but it points to file
- /compat/linux/sapmnt/PRD/exe instead of /sapmnt/PRD/exe. The
- program cannot go on as long as this link exists at this
- location. Move the link to another location.
-
-ERROR 2002-03-19 16:45:36 R3LINKS_IND_IND Ins_SetupLinks:0
- can not setup link '/usr/sap/PRD/SYS/exe/dbg' with content
- '/sapmnt/PRD/exe'</screen>
- </sect3>
-
- <sect3 xml:id="creatingusersanddirectories">
- <title>Creating Users and Directories</title>
-
- <para><application>&sap.r3;</application> needs two users and
- three groups. The user names depend on the
- <application>&sap;</application> system ID (SID) which consists
- of three letters. Some of these SIDs are reserved
- by <application>&sap;</application> (for example
- <literal>SAP</literal> and <literal>NIX</literal>. For a
- complete list please see the <application>&sap;</application> documentation). For the IDES
- installation we used <literal>IDS</literal>, for the
- 4.6C SR2 installation <literal>PRD</literal>, as that system
- is intended for production use. We have
- therefore the following groups (group IDs might differ, these
- are just the values we used with our installation):</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>group ID</entry>
- <entry>group name</entry>
- <entry>description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>100</entry>
- <entry>dba</entry>
- <entry>Data Base Administrator</entry>
- </row>
- <row>
- <entry>101</entry>
- <entry>sapsys</entry>
- <entry>&sap; System</entry>
- </row>
- <row>
- <entry>102</entry>
- <entry>oper</entry>
- <entry>Data Base Operator</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>For a default <application>&oracle;</application> installation, only group
- <systemitem class="groupname">dba</systemitem> is used. As
- <systemitem class="groupname">oper</systemitem> group, one also uses group
- <systemitem class="groupname">dba</systemitem> (see <application>&oracle;</application> and
- <application>&sap;</application> documentation for further information).</para>
-
- <para>We also need the following users:</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="6">
- <thead>
- <row>
- <entry>user ID</entry>
- <entry>user name</entry>
- <entry>generic name</entry>
- <entry>group</entry>
- <entry>additional groups</entry>
- <entry>description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>1000</entry>
- <entry>idsadm/prdadm</entry>
- <entry><replaceable>sid</replaceable>adm</entry>
- <entry>sapsys</entry>
- <entry>oper</entry>
- <entry>&sap; Administrator</entry>
- </row>
- <row>
- <entry>1002</entry>
- <entry>oraids/oraprd</entry>
- <entry>ora<replaceable>sid</replaceable></entry>
- <entry>dba</entry>
- <entry>oper</entry>
- <entry>&oracle; Administrator</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Adding the users with &man.adduser.8;
- requires the following (please note shell and home
- directory) entries for <quote>&sap; Administrator</quote>:</para>
-
- <programlisting>Name: <replaceable>sid</replaceable>adm
-Password: ******
-Fullname: SAP Administrator <replaceable>SID</replaceable>
-Uid: 1000
-Gid: 101 (sapsys)
-Class:
-Groups: sapsys dba
-HOME: /home/<replaceable>sid</replaceable>adm
-Shell: bash (/compat/linux/bin/bash)</programlisting>
-
- <para>and for <quote>&oracle; Administrator</quote>:</para>
-
- <programlisting>Name: ora<replaceable>sid</replaceable>
-Password: ******
-Fullname: Oracle Administrator <replaceable>SID</replaceable>
-Uid: 1002
-Gid: 100 (dba)
-Class:
-Groups: dba
-HOME: /oracle/<replaceable>sid</replaceable>
-Shell: bash (/compat/linux/bin/bash)</programlisting>
-
- <para>This should also include group
- <systemitem class="groupname">oper</systemitem> in case you are using both
- groups <systemitem class="groupname">dba</systemitem> and
- <systemitem class="groupname">oper</systemitem>.</para>
-
- </sect3>
-
- <sect3 xml:id="creatingdirectories">
- <title>Creating Directories</title>
-
- <para>These directories are usually created as separate
- file systems. This depends entirely on your requirements. We
- choose to create them as simple directories, as they are all
- located on the same RAID 5 anyway:</para>
-
- <para>First we will set owners and rights of some directories (as
- user <systemitem class="username">root</systemitem>):</para>
-
- <screen>&prompt.root; <userinput>chmod 775 /oracle</userinput>
-&prompt.root; <userinput>chmod 777 /sapmnt</userinput>
-&prompt.root; <userinput>chown root:dba /oracle</userinput>
-&prompt.root; <userinput>chown sidadm:sapsys /compat/linux/usr/sap</userinput>
-&prompt.root; <userinput>chmod 775 /compat/linux/usr/sap</userinput></screen>
-
- <para>Second we will create directories as user
- <systemitem class="username">ora<replaceable>sid</replaceable></systemitem>. These
- will all be subdirectories of
- <filename>/oracle/SID</filename>:</para>
-
- <screen>&prompt.root; <userinput>su - orasid</userinput>
-&prompt.root; <userinput>cd /oracle/SID</userinput>
-&prompt.root; <userinput>mkdir mirrlogA mirrlogB origlogA origlogB</userinput>
-&prompt.root; <userinput>mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6</userinput>
-&prompt.root; <userinput>mkdir saparch sapreorg</userinput>
-&prompt.root; <userinput>exit</userinput></screen>
-
- <para>For the <application>&oracle; 8.1.7</application> installation
- some additional directories are needed:</para>
-
- <screen>&prompt.root; <userinput>su - orasid</userinput>
-&prompt.root; <userinput>cd /oracle</userinput>
-&prompt.root; <userinput>mkdir 805_32</userinput>
-&prompt.root; <userinput>mkdir client stage</userinput>
-&prompt.root; <userinput>mkdir client/80x_32</userinput>
-&prompt.root; <userinput>mkdir stage/817_32</userinput>
-&prompt.root; <userinput>cd /oracle/SID</userinput>
-&prompt.root; <userinput>mkdir 817_32</userinput></screen>
-
- <note><para>The directory <filename>client/80x_32</filename> is used
- with exactly this name. Do not replace the <emphasis>x</emphasis>
- with some number or anything.</para></note>
-
- <para>In the third step we create directories as user
- <systemitem class="username"><replaceable>sid</replaceable>adm</systemitem>:</para>
-
- <screen>&prompt.root; <userinput>su - sidadm</userinput>
-&prompt.root; <userinput>cd /usr/sap</userinput>
-&prompt.root; <userinput>mkdir SID</userinput>
-&prompt.root; <userinput>mkdir trans</userinput>
-&prompt.root; <userinput>exit</userinput></screen>
- </sect3>
-
- <sect3 xml:id="entriesinslashetcslashservices">
- <title>Entries in <filename>/etc/services</filename></title>
-
- <para><application>&sap.r3;</application> requires some entries in file
- <filename>/etc/services</filename>, which will not be set
- correctly during installation under FreeBSD. Please add the
- following entries (you need at least those entries
- corresponding to the instance number &mdash; in this case,
- <literal>00</literal>. It will do no harm adding all
- entries from <literal>00</literal> to
- <literal>99</literal> for <literal>dp</literal>,
- <literal>gw</literal>, <literal>sp</literal> and
- <literal>ms</literal>). If you are going to use a <application>SAProuter</application>
- or need to access <application>&sap;</application> OSS, you also need <literal>99</literal>,
- as port 3299 is usually used for the <application>SAProuter</application> process on the
- target system:</para>
-
- <programlisting>
-sapdp00 3200/tcp # SAP Dispatcher. 3200 + Instance-Number
-sapgw00 3300/tcp # SAP Gateway. 3300 + Instance-Number
-sapsp00 3400/tcp # 3400 + Instance-Number
-sapms00 3500/tcp # 3500 + Instance-Number
-sapms<replaceable>SID</replaceable> 3600/tcp # SAP Message Server. 3600 + Instance-Number
-sapgw00s 4800/tcp # SAP Secure Gateway 4800 + Instance-Number</programlisting>
- </sect3>
-
- <sect3 xml:id="necessarylocales">
- <title>Necessary Locales</title>
- <indexterm><primary>locale</primary></indexterm>
-
- <para><application>&sap;</application> requires at least two locales that are not part of
- the default RedHat installation. &sap; offers the required
- RPMs as download from their FTP server (which is only
- accessible if you are a customer with OSS access). See note
- 0171356 for a list of RPMs you need.</para>
-
- <para>It is also possible to just create appropriate links
- (for example from <emphasis>de_DE</emphasis> and
- <emphasis>en_US</emphasis> ), but we would not recommend this
- for a production system (so far it worked with the IDES
- system without any problems, though). The following locales
- are needed:</para>
-
- <programlisting>de_DE.ISO-8859-1
-en_US.ISO-8859-1</programlisting>
-
- <para>Create the links like this:</para>
-
- <screen>&prompt.root; <userinput>cd /compat/linux/usr/share/locale</userinput>
-&prompt.root; <userinput>ln -s de_DE de_DE.ISO-8859-1</userinput>
-&prompt.root; <userinput>ln -s en_US en_US.ISO-8859-1</userinput></screen>
-
- <para>If they are not present, there will be some problems
- during the installation. If these are then subsequently
- ignored (by setting the <literal>STATUS</literal> of the offending steps to
- <literal>OK</literal> in file <filename>CENTRDB.R3S</filename>), it will be impossible to log onto
- the <application>&sap;</application> system without some additional effort.</para>
- </sect3>
-
- <sect3 xml:id="kerneltuning">
- <title>Kernel Tuning</title>
- <indexterm><primary>kernel tuning</primary></indexterm>
-
- <para><application>&sap.r3;</application> systems need a lot of resources. We therefore
- added the following parameters to the kernel configuration file:</para>
-
- <programlisting># 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 SHMMAXPGS=393216 #use this for the 46C inst.parameters
-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 identifiers
-options SEMUME=100 #number of UNDO keys</programlisting>
-
- <para>The minimum values are specified in the documentation that
- comes from &sap;. As there is no description for Linux, see the
- HP-UX section (32-bit) for further information. As the system
- for the 4.6C SR2 installation has more main memory, the shared
- segments can be larger both for <application>&sap;</application>
- and <application>&oracle;</application>, therefore choose a larger
- number of shared memory pages.</para>
-
- <note><para>With the default installation of FreeBSD on &i386;,
- leave <literal>MAXDSIZ</literal> and <literal>DFLDSIZ</literal> at 1&nbsp;GB maximum. Otherwise, strange
- errors like <errorname>ORA-27102: out of memory</errorname> and
- <errorname>Linux Error: 12: Cannot allocate memory</errorname>
- might happen.</para></note>
- </sect3>
- </sect2>
-
- <sect2 xml:id="installingsapr3">
- <title>Installing &sap.r3;</title>
-
- <sect3 xml:id="preparingsapcdroms">
- <title>Preparing &sap; CDROMs</title>
-
- <para>There are many CDROMs to mount and unmount during the
- installation. Assuming you have enough CDROM drives, you
- can just mount them all. We decided to copy the CDROMs
- contents to corresponding directories:</para>
-
- <programlisting>/oracle/<replaceable>SID</replaceable>/sapreorg/<replaceable>cd-name</replaceable></programlisting>
-
- <para>where <replaceable>cd-name</replaceable> was one of <filename>KERNEL</filename>,
- <filename>RDBMS</filename>, <filename>EXPORT1</filename>,
- <filename>EXPORT2</filename>, <filename>EXPORT3</filename>,
- <filename>EXPORT4</filename>, <filename>EXPORT5</filename> and
- <filename>EXPORT6</filename> for the 4.6B/IDES installation, and
- <filename>KERNEL</filename>, <filename>RDBMS</filename>,
- <filename>DISK1</filename>, <filename>DISK2</filename>,
- <filename>DISK3</filename>, <filename>DISK4</filename> and
- <filename>LANG</filename> for the 4.6C SR2 installation. All the
- filenames on the mounted CDs should be in capital letters,
- otherwise use the <option>-g</option> option for mounting. So use the following
- commands:</para>
-
- <screen>&prompt.root; <userinput>mount_cd9660 -g /dev/cd0a /mnt</userinput>
-&prompt.root; <userinput>cp -R /mnt/* /oracle/SID/sapreorg/cd-name</userinput>
-&prompt.root; <userinput>umount /mnt</userinput></screen>
- </sect3>
-
- <sect3 xml:id="runningtheinstall-script">
- <title>Running the Installation Script</title>
-
- <para>First you have to prepare an <filename>install</filename> directory:</para>
-
- <screen>&prompt.root; <userinput>cd /oracle/SID/sapreorg</userinput>
-&prompt.root; <userinput>mkdir install</userinput>
-&prompt.root; <userinput>cd install</userinput></screen>
-
- <para>Then the installation script is started, which will copy nearly
- all the relevant files into the <filename>install</filename> directory:</para>
-
- <screen>&prompt.root; <userinput>/oracle/SID/sapreorg/KERNEL/UNIX/INSTTOOL.SH</userinput></screen>
-
- <para>The IDES installation (4.6B) comes with a fully customized
- &sap.r3; demonstration system, so there are six instead of just three
- EXPORT CDs. At this point the installation template
- <filename>CENTRDB.R3S</filename> is for installing a standard
- central instance (<application>&r3;</application> and database), not the IDES central
- instance, so one needs to copy the corresponding <filename>CENTRDB.R3S</filename>
- from the <filename>EXPORT1</filename> directory, otherwise <command>R3SETUP</command> will only ask
- for three EXPORT CDs.</para>
-
- <para>The newer <application>&sap; 4.6C SR2</application> release
- comes with four EXPORT CDs. The parameter file that controls
- the installation steps is <filename>CENTRAL.R3S</filename>.
- Contrary to earlier releases there are no separate installation
- templates for a central instance with or without database.
- <application>&sap;</application> is using a separate template for database installation. To restart
- the installation later it is however sufficient to restart with
- the original file.</para>
-
- <para>During and after installation, <application>&sap;</application> requires
- <command>hostname</command> to return the computer name
- only, not the fully qualified domain name. So either
- set the hostname accordingly, or set an alias with
- <command>alias hostname='hostname -s'</command> for
- both <systemitem class="username">ora<replaceable>sid</replaceable></systemitem> and
- <systemitem class="username"><replaceable>sid</replaceable>adm</systemitem> (and for
- <systemitem class="username">root</systemitem> at least during installation
- steps performed as <systemitem class="username">root</systemitem>). It is also
- possible to adjust the installed <filename>.profile</filename> and <filename>.login</filename> files of
- both users that are installed during
- <application>&sap;</application> installation.</para>
- </sect3>
-
- <sect3 xml:id="startr3setup-46B">
- <title>Start <command>R3SETUP</command> 4.6B</title>
-
- <para>Make sure <envar>LD_LIBRARY_PATH</envar> is set correctly:</para>
-
- <screen>&prompt.root; <userinput>export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/lib</userinput></screen>
-
- <para>Start <command>R3SETUP</command> as <systemitem class="username">root</systemitem> from
- installation directory:</para>
-
- <screen>&prompt.root; <userinput>cd /oracle/IDS/sapreorg/install</userinput>
-&prompt.root; <userinput>./R3SETUP -f CENTRDB.R3S</userinput></screen>
-
- <para>The script then asks some questions (defaults in brackets,
- followed by actual input):</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Question</entry>
- <entry>Default</entry>
- <entry>Input</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>Enter SAP System ID</entry>
- <entry>[C11]</entry>
- <entry>IDS<keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter SAP Instance Number</entry>
- <entry>[00]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter SAPMOUNT Directory</entry>
- <entry>[/sapmnt]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter name of SAP central host</entry>
- <entry>[troubadix.domain.de]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter name of SAP db host</entry>
- <entry>[troubadix]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Select character set</entry>
- <entry>[1] (WE8DEC)</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter Oracle server version (1) Oracle 8.0.5, (2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.6</entry>
- <entry> </entry>
- <entry>1<keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Extract Oracle Client archive</entry>
- <entry>[1] (Yes, extract)</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter path to KERNEL CD</entry>
- <entry>[/sapcd]</entry>
- <entry>/oracle/IDS/sapreorg/KERNEL</entry>
- </row>
- <row>
- <entry>Enter path to RDBMS CD</entry>
- <entry>[/sapcd]</entry>
- <entry>/oracle/IDS/sapreorg/RDBMS</entry>
- </row>
- <row>
- <entry>Enter path to EXPORT1 CD</entry>
- <entry>[/sapcd]</entry>
- <entry>/oracle/IDS/sapreorg/EXPORT1</entry>
- </row>
- <row>
- <entry>Directory to copy EXPORT1 CD</entry>
- <entry>[/oracle/IDS/sapreorg/CD4_DIR]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter path to EXPORT2 CD</entry>
- <entry>[/sapcd]</entry>
- <entry>/oracle/IDS/sapreorg/EXPORT2</entry>
- </row>
- <row>
- <entry>Directory to copy EXPORT2 CD</entry>
- <entry>[/oracle/IDS/sapreorg/CD5_DIR]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter path to EXPORT3 CD</entry>
- <entry>[/sapcd]</entry>
- <entry>/oracle/IDS/sapreorg/EXPORT3</entry>
- </row>
- <row>
- <entry>Directory to copy EXPORT3 CD</entry>
- <entry>[/oracle/IDS/sapreorg/CD6_DIR]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter path to EXPORT4 CD</entry>
- <entry>[/sapcd]</entry>
- <entry>/oracle/IDS/sapreorg/EXPORT4</entry>
- </row>
- <row>
- <entry>Directory to copy EXPORT4 CD</entry>
- <entry>[/oracle/IDS/sapreorg/CD7_DIR]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter path to EXPORT5 CD</entry>
- <entry>[/sapcd]</entry>
- <entry>/oracle/IDS/sapreorg/EXPORT5</entry>
- </row>
- <row>
- <entry>Directory to copy EXPORT5 CD</entry>
- <entry>[/oracle/IDS/sapreorg/CD8_DIR]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter path to EXPORT6 CD</entry>
- <entry>[/sapcd]</entry>
- <entry>/oracle/IDS/sapreorg/EXPORT6</entry>
- </row>
- <row>
- <entry>Directory to copy EXPORT6 CD</entry>
- <entry>[/oracle/IDS/sapreorg/CD9_DIR]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter amount of RAM for SAP + DB</entry>
- <entry> </entry>
- <entry>850<keycap>Enter</keycap> (in Megabytes)</entry>
- </row>
- <row>
- <entry>Service Entry Message Server</entry>
- <entry>[3600]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter Group-ID of sapsys</entry>
- <entry>[101]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter Group-ID of oper</entry>
- <entry>[102]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter Group-ID of dba</entry>
- <entry>[100]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter User-ID of <replaceable>sid</replaceable>adm</entry>
- <entry>[1000]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter User-ID of ora<replaceable>sid</replaceable></entry>
- <entry>[1002]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Number of parallel procs</entry>
- <entry>[2]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>If you had not copied the CDs to the different locations,
- then the <application>&sap;</application> installer cannot find the CD needed (identified
- by the <filename>LABEL.ASC</filename> file on the CD) and would
- then ask you to insert and mount the CD and confirm or enter
- the mount path.</para>
-
- <para>The <filename>CENTRDB.R3S</filename> might not be
- error free. In our case, it requested EXPORT4 CD again but
- indicated the correct key (6_LOCATION, then 7_LOCATION
- etc.), so one can just continue with entering the correct
- values.</para>
-
- <para>Apart from some problems mentioned below, everything
- should go straight through up to the point where the &oracle;
- database software needs to be installed.</para>
- </sect3>
-
- <sect3 xml:id="startr3setup-46C">
- <title>Start <command>R3SETUP</command> 4.6C SR2</title>
-
- <para>Make sure <envar>LD_LIBRARY_PATH</envar> is set correctly. This is a
- different value from the 4.6B installation with
- <application>&oracle; 8.0.5</application>:</para>
-
- <screen>&prompt.root; <userinput>export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/lib</userinput></screen>
-
- <para>Start <command>R3SETUP</command> as user <systemitem class="username">root</systemitem> from installation directory:</para>
-
- <screen>&prompt.root; <userinput>cd /oracle/PRD/sapreorg/install</userinput>
-&prompt.root; <userinput>./R3SETUP -f CENTRAL.R3S</userinput></screen>
-
- <para>The script then asks some questions (defaults in brackets,
- followed by actual input):</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Question</entry>
- <entry>Default</entry>
- <entry>Input</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>Enter SAP System ID</entry>
- <entry>[C11]</entry>
- <entry>PRD<keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter SAP Instance Number</entry>
- <entry>[00]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter SAPMOUNT Directory</entry>
- <entry>[/sapmnt]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter name of SAP central host</entry>
- <entry>[majestix]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter Database System ID</entry>
- <entry>[PRD]</entry>
- <entry>PRD<keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter name of SAP db host</entry>
- <entry>[majestix]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Select character set</entry>
- <entry>[1] (WE8DEC)</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter Oracle server version (2) Oracle 8.1.7</entry>
- <entry> </entry>
- <entry>2<keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Extract Oracle Client archive</entry>
- <entry>[1] (Yes, extract)</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter path to KERNEL CD</entry>
- <entry>[/sapcd]</entry>
- <entry>/oracle/PRD/sapreorg/KERNEL</entry>
- </row>
- <row>
- <entry>Enter amount of RAM for SAP + DB</entry>
- <entry>2044</entry>
- <entry>1800<keycap>Enter</keycap> (in Megabytes)</entry>
- </row>
- <row>
- <entry>Service Entry Message Server</entry>
- <entry>[3600]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter Group-ID of sapsys</entry>
- <entry>[100]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter Group-ID of oper</entry>
- <entry>[101]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter Group-ID of dba</entry>
- <entry>[102]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter User-ID of <systemitem class="username">oraprd</systemitem></entry>
- <entry>[1002]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter User-ID of <systemitem class="username">prdadm</systemitem></entry>
- <entry>[1000]</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>LDAP support</entry>
- <entry> </entry>
- <entry>3<keycap>Enter</keycap> (no support)</entry>
- </row>
- <row>
- <entry>Installation step completed</entry>
- <entry>[1] (continue)</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Choose installation service</entry>
- <entry>[1] (DB inst,file)</entry>
- <entry><keycap>Enter</keycap></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>So far, creation of users gives an error during
- installation in phases OSUSERDBSID_IND_ORA (for creating
- user <systemitem class="username">ora<replaceable>sid</replaceable></systemitem>) and
- OSUSERSIDADM_IND_ORA (creating user
- <systemitem class="username"><replaceable>sid</replaceable>adm</systemitem>).</para>
-
- <para>Apart from some problems mentioned below, everything
- should go straight through up to the point where the &oracle;
- database software needs to be installed.</para>
- </sect3>
- </sect2>
-
- <sect2 xml:id="installingoracle805">
- <title>Installing &oracle; 8.0.5</title>
-
- <para>Please see the corresponding &sap; Notes and &oracle; <filename>Readme</filename>s
- regarding Linux and <application>&oracle; DB</application> for possible problems. Most if
- not all problems stem from incompatible libraries.</para>
-
- <para>For more information on installing <application>&oracle;</application>, refer to <link linkend="linuxemu-oracle">the Installing &oracle;
- chapter.</link></para>
-
-
- <sect3 xml:id="installingtheoracle805withorainst">
- <title>Installing the &oracle; 8.0.5 with <command>orainst</command></title>
-
- <para>If <application>&oracle; 8.0.5</application> is to be
- used, some additional libraries are needed for successfully
- relinking, as <application>&oracle; 8.0.5</application> was linked with an old glibc
- (RedHat 6.0), but RedHat 6.1 already uses a new glibc. So
- you have to install the following additional packages to
- ensure that linking will work:</para>
-
- <para><filename>compat-libs-5.2-2.i386.rpm</filename></para>
- <para><filename>compat-glibc-5.2-2.0.7.2.i386.rpm</filename></para>
- <para><filename>compat-egcs-5.2-1.0.3a.1.i386.rpm</filename></para>
- <para><filename>compat-egcs-c++-5.2-1.0.3a.1.i386.rpm</filename></para>
- <para><filename>compat-binutils-5.2-2.9.1.0.23.1.i386.rpm</filename></para>
-
- <para>See the corresponding &sap; Notes or &oracle; <filename>Readme</filename>s for
- further information. If this is no option (at the time of
- installation we did not have enough time to check this), one
- could use the original binaries, or use the relinked
- binaries from an original RedHat system.</para>
-
- <para>For compiling the intelligent agent, the RedHat Tcl
- package must be installed. If you cannot get
- <filename>tcl-8.0.3-20.i386.rpm</filename>, a newer one like
- <filename>tcl-8.0.5-30.i386.rpm</filename> for RedHat 6.1
- should also do.</para>
-
- <para>Apart from relinking, the installation is
- straightforward:</para>
-
- <screen>&prompt.root; <userinput>su - oraids</userinput>
-&prompt.root; <userinput>export TERM=xterm</userinput>
-&prompt.root; <userinput>export ORACLE_TERM=xterm</userinput>
-&prompt.root; <userinput>export ORACLE_HOME=/oracle/IDS</userinput>
-&prompt.root; <userinput>cd $ORACLE_HOME/orainst_sap</userinput>
-&prompt.root; <userinput>./orainst</userinput></screen>
-
- <para>Confirm all screens with <keycap>Enter</keycap> until the software is
- installed, except that one has to deselect the
- <emphasis>&oracle; On-Line Text Viewer</emphasis>, as this is
- not currently available for Linux. <application>&oracle;</application> then wants to
- relink with <command>i386-glibc20-linux-gcc</command>
- instead of the available <command>gcc</command>,
- <command>egcs</command> or <command>i386-redhat-linux-gcc
- </command>.</para>
-
- <para>Due to time constrains we decided to use the binaries
- from an <application>&oracle; 8.0.5 PreProduction</application>
- release, after the first
- attempt at getting the version from the RDBMS CD working,
- failed, and finding and accessing the correct RPMs was a
- nightmare at that time.</para>
-
- </sect3>
-
- <sect3 xml:id="installingtheoracle805preproduction">
- <title>Installing the &oracle; 8.0.5 Pre-production Release for
- Linux (Kernel 2.0.33)</title>
-
- <para>This installation is quite easy. Mount the CD, start the
- installer. It will then ask for the location of the &oracle;
- home directory, and copy all binaries there. We did not
- delete the remains of our previous RDBMS installation tries,
- though.</para>
-
- <para>Afterwards, <application>&oracle;</application> Database could be started with no
- problems.</para>
- </sect3>
- </sect2>
-
- <sect2 xml:id="installingoracle817">
- <title>Installing the &oracle; 8.1.7 Linux Tarball</title>
- <para>Take the tarball <filename>oracle81732.tgz</filename> you
- produced from the installation directory on a Linux system
- and untar it to <filename>/oracle/SID/817_32/</filename>.</para>
- </sect2>
-
- <sect2 xml:id="continuewithsapr4installation">
- <title>Continue with &sap.r3; Installation</title>
-
- <para>First check the environment settings of users
- <systemitem class="username">idsamd</systemitem>
- (<replaceable>sid</replaceable>adm) and
- <systemitem class="username">oraids</systemitem> (ora<replaceable>sid</replaceable>). They should now
- both have the files <filename>.profile</filename>,
- <filename>.login</filename> and <filename>.cshrc</filename>
- which are all using <command>hostname</command>. In case the
- system's hostname is the fully qualified name, you need to
- change <command>hostname</command> to <command>hostname
- -s</command> within all three files.</para>
-
- <sect3 xml:id="databaseload">
- <title>Database Load</title>
-
- <para>Afterwards, <command>R3SETUP</command> can either be restarted or continued
- (depending on whether exit was chosen or not). <command>R3SETUP</command> then
- creates the tablespaces and loads the data (for 46B IDES, from
- EXPORT1 to EXPORT6, for 46C from DISK1 to DISK4) with <command>R3load</command>
- into the database.</para>
-
- <para>When the database load is finished (might take a few
- hours), some passwords are requested. For test
- installations, one can use the well known default passwords
- (use different ones if security is an issue!):</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Question</entry>
- <entry>Input</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>Enter Password for sapr3</entry>
- <entry>sap<keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Confirum Password for sapr3</entry>
- <entry>sap<keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter Password for sys</entry>
- <entry>change_on_install<keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Confirm Password for sys</entry>
- <entry>change_on_install<keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Enter Password for system</entry>
- <entry>manager<keycap>Enter</keycap></entry>
- </row>
- <row>
- <entry>Confirm Password for system</entry>
- <entry>manager<keycap>Enter</keycap></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>At this point We had a few problems with
- <command>dipgntab</command> during the 4.6B
- installation.</para>
- </sect3>
-
- <sect3 xml:id="listener">
- <title>Listener</title>
-
- <para>Start the <application>&oracle;</application> Listener as user
- <systemitem class="username">ora<replaceable>sid</replaceable></systemitem> as follows:</para>
-
- <screen>&prompt.user; <userinput>umask 0; lsnrctl start</userinput></screen>
-
- <para>Otherwise you might get the error <errorcode>ORA-12546</errorcode> as the sockets will not
- have the correct permissions. See &sap; Note 072984.</para>
- </sect3>
-
- <sect3 xml:id="mnlstables">
- <title>Updating MNLS Tables</title>
- <para>If you plan to import non-Latin-1 languages into the <application>&sap;</application> system,
- you have to update the Multi National Language Support tables.
- This is described in the &sap; OSS Notes 15023 and 45619. Otherwise,
- you can skip this question during <application>&sap;</application> installation.</para>
- <note><para>If you do not need MNLS, it is still necessary to check
- the table TCPDB and initializing it if this has not been done. See
- &sap; note 0015023 and 0045619 for further information.</para></note>
- </sect3>
- </sect2>
-
- <sect2 xml:id="postinstallationsteps">
- <title>Post-installation Steps</title>
-
- <sect3 xml:id="requestsapr3licensekey">
- <title>Request &sap.r3; License Key</title>
-
- <para>You have to request your <application>&sap.r3;</application> License Key. This is needed,
- as the temporary license that was installed during installation
- is only valid for four weeks. First get the hardware key. Log
- on as user <systemitem class="username">idsadm</systemitem> and call
- <command>saplicense</command>:</para>
-
- <screen>&prompt.root; <userinput>/sapmnt/IDS/exe/saplicense -get</userinput></screen>
-
- <para>Calling <command>saplicense</command> without parameters gives
- a list of options. Upon receiving the license key, it can be
- installed using:</para>
-
- <screen>&prompt.root; <userinput>/sapmnt/IDS/exe/saplicense -install</userinput></screen>
-
- <para>You are then required to enter the following values:</para>
-
- <programlisting>SAP SYSTEM ID = <replaceable>SID, 3 chars</replaceable>
-CUSTOMER KEY = <replaceable>hardware key, 11 chars</replaceable>
-INSTALLATION NO = <replaceable>installation, 10 digits</replaceable>
-EXPIRATION DATE = <replaceable>yyyymmdd, usually "99991231"</replaceable>
-LICENSE KEY = <replaceable>license key, 24 chars</replaceable></programlisting>
- </sect3>
-
- <sect3 xml:id="creatingusers">
- <title>Creating Users</title>
-
- <para>Create a user within client 000 (for some tasks required
- to be done within client 000, but with a user different from
- users <systemitem class="username">sap*</systemitem> and
- <systemitem class="username">ddic</systemitem>). As a user name, We usually choose
- <systemitem class="username">wartung</systemitem> (or
- <systemitem class="username">service</systemitem> in English). Profiles
- required are <literal>sap_new</literal> and
- <literal>sap_all</literal>. For additional safety the
- passwords of default users within all clients should be
- changed (this includes users <systemitem class="username">sap*</systemitem> and
- <systemitem class="username">ddic</systemitem>).</para>
- </sect3>
-
- <sect3 xml:id="configtranssysprofileopermodesetc">
- <title>Configure Transport System, Profile, Operation Modes, Etc.</title>
-
- <para>Within client 000, user different from <systemitem class="username">ddic</systemitem>
- and <systemitem class="username">sap*</systemitem>, do at least the following:</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Task</entry>
- <entry>Transaction</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>Configure Transport System, e.g. as <emphasis>Stand-Alone
- Transport Domain Entity</emphasis></entry>
- <entry>STMS</entry>
- </row>
- <row>
- <entry>Create / Edit Profile for System</entry>
- <entry>RZ10</entry>
- </row>
- <row>
- <entry>Maintain Operation Modes and Instances</entry>
- <entry>RZ04</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>These and all the other post-installation steps are
- thoroughly described in <application>&sap;</application> installation guides.</para>
- </sect3>
-
- <sect3 xml:id="editintsidsap">
- <title>Edit <filename>initsid.sap</filename> (<filename>initIDS.sap</filename>)</title>
-
- <para>The file <filename>/oracle/IDS/dbs/initIDS.sap</filename>
- contains the <application>&sap;</application> backup profile. Here the size of the tape to
- be used, type of compression and so on need to be defined. To
- get this running with <command>sapdba</command> /
- <command>brbackup</command>, we changed the following values:</para>
-
- <programlisting>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</programlisting>
-
- <para>Explanations:</para>
-
- <para><varname>compress</varname>: The tape we use is a HP DLT1
- which does hardware compression.</para>
-
- <para><varname>archive_function</varname>: This defines the
- default behavior for saving &oracle; archive logs: new logfiles
- are saved to tape, already saved logfiles are saved again and
- are then deleted. This prevents lots of trouble if you need to
- recover the database, and one of the archive-tapes has gone
- bad.</para>
-
- <para><varname>cpio_flags</varname>: Default is to use <option>-B</option> which
- sets block size to 5120&nbsp;Bytes. For DLT Tapes, HP recommends at
- least 32&nbsp;K block size, so we used <option>--block-size=128</option> for
- 64&nbsp;K. <option>--format=newc</option> is needed because we have inode numbers greater than
- 65535. The last option <option>--quiet</option> is needed as otherwise
- <command>brbackup</command>
- complains as soon as <command>cpio</command> outputs the
- numbers of blocks saved.</para>
-
- <para><varname>cpio_in_flags</varname>: Flags needed for
- loading data back from tape. Format is recognized
- automatically.</para>
-
- <para><varname>tape_size</varname>: This usually gives the raw
- storage capability of the tape. For security reason (we use
- hardware compression), the value is slightly lower than the
- actual value.</para>
-
- <para><varname>tape_address</varname>: The non-rewindable
- device to be used with <command>cpio</command>.</para>
-
- <para><varname>tape_address_rew</varname>: The rewindable device to be
- used with <command>cpio</command>.</para>
- </sect3>
-
- <sect3>
- <title>Configuration Issues after Installation</title>
-
- <para>The following <application>&sap;</application> parameters should be tuned after
- installation (examples for IDES 46B, 1&nbsp;GB memory):</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>ztta/roll_extension</entry>
- <entry>250000000</entry>
- </row>
- <row>
- <entry>abap/heap_area_dia</entry>
- <entry>300000000</entry>
- </row>
- <row>
- <entry>abap/heap_area_nondia</entry>
- <entry>400000000</entry>
- </row>
- <row>
- <entry>em/initial_size_MB</entry>
- <entry>256</entry>
- </row>
- <row>
- <entry>em/blocksize_kB</entry>
- <entry>1024</entry>
- </row>
- <row>
- <entry>ipc/shm_psize_40</entry>
- <entry>70000000</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>&sap; Note 0013026:</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>ztta/dynpro_area</entry>
- <entry>2500000</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>&sap; Note 0157246:</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rdisp/ROLL_MAXFS</entry>
- <entry>16000</entry>
- </row>
- <row>
- <entry>rdisp/PG_MAXFS</entry>
- <entry>30000</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <note>
- <para>With the above parameters, on a system with 1&nbsp;gigabyte
- of memory, one may find memory consumption similar to:</para>
-
- <programlisting>Mem: 547M Active, 305M Inact, 109M Wired, 40M Cache, 112M Buf, 3492K Free</programlisting>
- </note>
- </sect3>
- </sect2>
-
- <sect2 xml:id="problemsduringinstallation">
- <title>Problems during Installation</title>
-
- <sect3 xml:id="restartr3setup">
- <title>Restart <command>R3SETUP</command> after Fixing a Problem</title>
-
- <para><command>R3SETUP</command> stops if it encounters an error. If you have
- looked at the corresponding logfiles and fixed the error,
- you have to start <command>R3SETUP</command> again, usually selecting REPEAT
- as option for the last step <command>R3SETUP</command> complained about.</para>
-
- <para>To restart <command>R3SETUP</command>, just start it with the corresponding
- <filename>R3S</filename> file:</para>
-
- <screen>&prompt.root; <userinput>./R3SETUP -f CENTRDB.R3S</userinput></screen>
-
- <para>for 4.6B, or with</para>
-
- <screen>&prompt.root; <userinput>./R3SETUP -f CENTRAL.R3S</userinput></screen>
-
- <para>for 4.6C, no matter whether the error occurred
- with <filename>CENTRAL.R3S</filename> or
- <filename>DATABASE.R3S</filename>.</para>
-
- <note><para>At some stages, <command>R3SETUP</command> assumes that both database
- and <application>&sap;</application> processes are up and running (as those were steps it
- already completed). Should errors occur and for example the
- database could not be started, you have to start both database
- and <application>&sap;</application> by hand after you fixed the errors and before starting
- <command>R3SETUP</command> again.</para>
- <para>Do not forget to also start the <application>&oracle;</application> listener again (as
- <systemitem class="username">ora<replaceable>sid</replaceable></systemitem> with
- <command>umask 0; lsnrctl start</command>) if it was also
- stopped (for example due to a necessary reboot of the
- system).</para>
- </note>
- </sect3>
-
- <sect3 xml:id="indoraduringduringr3setup">
- <title>OSUSERSIDADM_IND_ORA during <command>R3SETUP</command></title>
-
- <para>If <command>R3SETUP</command> complains at this stage, edit the
- template file <command>R3SETUP</command> used at that time
- (<filename>CENTRDB.R3S</filename> (4.6B) or either
- <filename>CENTRAL.R3S</filename> or
- <filename>DATABASE.R3S</filename> (4.6C)).
- Locate <literal>[OSUSERSIDADM_IND_ORA]</literal> or search for the
- only <literal>STATUS=ERROR</literal> entry
- and edit the following values:</para>
-
- <programlisting>HOME=/home/<replaceable>sid</replaceable>adm (was empty)
-STATUS=OK (had status ERROR)
- </programlisting>
-
- <para>Then you can restart <command>R3SETUP</command> again.</para>
- </sect3>
-
- <sect3 xml:id="indoraduringr3setup">
- <title>OSUSERDBSID_IND_ORA during <command>R3SETUP</command></title>
-
- <para>Possibly <command>R3SETUP</command> also complains at this stage. The error
- here is similar to the one in phase OSUSERSIDADM_IND_ORA.
- Just edit
- the template file <command>R3SETUP</command> used at that time
- (<filename>CENTRDB.R3S</filename> (4.6B) or either
- <filename>CENTRAL.R3S</filename> or
- <filename>DATABASE.R3S</filename> (4.6C)).
- Locate <literal>[OSUSERDBSID_IND_ORA]</literal> or search for the
- only <literal>STATUS=ERROR</literal> entry
- and edit the following value in that section:</para>
-
- <programlisting>STATUS=OK</programlisting>
-
- <para>Then restart <command>R3SETUP</command>.</para>
- </sect3>
-
- <sect3 xml:id="oraviewvrffilenotfound">
- <title><errorname>oraview.vrf FILE NOT FOUND</errorname> during &oracle; Installation</title>
-
- <para>You have not deselected <emphasis>&oracle; On-Line Text Viewer</emphasis>
- before starting the installation. This is marked for installation even
- though this option is currently not available for Linux. Deselect this
- product inside the <application>&oracle;</application> installation menu and restart installation.</para>
- </sect3>
-
- <sect3 xml:id="textenvincalid">
- <title><errorname>TEXTENV_INVALID</errorname> during <command>R3SETUP</command>, RFC or SAPgui Start</title>
-
- <para>If this error is encountered, the correct locale is
- missing. &sap; Note 0171356 lists the necessary RPMs that need
- be installed (e.g. <filename>saplocales-1.0-3</filename>,
- <filename>saposcheck-1.0-1</filename> for RedHat 6.1). In case
- you ignored all the related errors and set the corresponding
- <literal>STATUS</literal> from <literal>ERROR</literal> to <literal>OK</literal> (in <filename>CENTRDB.R3S</filename>) every time <command>R3SETUP</command>
- complained and just restarted <command>R3SETUP</command>, the <application>&sap;</application> system will not
- be properly configured and you will then not be able to
- connect to the system with a
- <application>SAPgui</application>, even though the system
- can be started. Trying to connect with the old Linux
- <application>SAPgui</application> gave the following
- messages:</para>
-
- <programlisting>Sat May 5 14:23:14 2001
-*** ERROR =&gt; no valid userarea given [trgmsgo. 0401]
-Sat May 5 14:23:22 2001
-*** ERROR =&gt; ERROR NR 24 occured [trgmsgi. 0410]
-*** ERROR =&gt; Error when generating text environment. [trgmsgi. 0435]
-*** ERROR =&gt; function failed [trgmsgi. 0447]
-*** ERROR =&gt; no socket operation allowed [trxio.c 3363]
-Speicherzugriffsfehler</programlisting>
-
- <para>This behavior is due to <application>&sap.r3;</application> being unable to correctly
- assign a locale and also not being properly configured itself
- (missing entries in some database tables). To be able to connect
- to <application>&sap;</application>, add the following entries to file
- <filename>DEFAULT.PFL</filename> (see Note 0043288):</para>
-
- <programlisting>abap/set_etct_env_at_new_mode = 0
-install/collate/active = 0
-rscp/TCP0B = TCP0B</programlisting>
-
- <para>Restart the <application>&sap;</application> system. Now you can connect to the
- system, even though country-specific language settings might
- not work as expected. After correcting country settings
- (and providing the correct locales), these entries can be
- removed from <filename>DEFAULT.PFL</filename> and the <application>&sap;</application>
- system can be restarted.</para>
-
- </sect3>
-
- <sect3 xml:id="ora-00001">
- <title><errorcode>ORA-00001</errorcode></title>
- <para>This error only happened with
- <application>&oracle; 8.1.7</application> on FreeBSD.
- The reason was that the <application>&oracle;</application> database could not initialize itself
- properly and crashed, leaving semaphores and shared memory on the
- system. The next try to start the database then returned
- <errorcode>ORA-00001</errorcode>.</para>
-
- <para>Find them with <command>ipcs -a</command> and remove them
- with <command>ipcrm</command>.</para>
- </sect3>
-
- <sect3 xml:id="ora-00445pmon">
- <title><errorcode>ORA-00445</errorcode> (Background Process PMON Did Not Start)</title>
- <para>This error happened with <application>&oracle; 8.1.7</application>.
- This error is reported if the database is started with
- the usual <command>startsap</command> script (for example
- <command>startsap_majestix_00</command>) as user
- <systemitem class="username">prdadm</systemitem>.</para>
-
- <para>A possible workaround is to start the database as user
- <systemitem class="username">oraprd</systemitem> instead
- with <command>svrmgrl</command>:</para>
-
- <screen>&prompt.user; <userinput>svrmgrl</userinput>
-SVRMGR&gt; <userinput>connect internal;</userinput>
-SVRMGR&gt; <userinput>startup</userinput>;
-SVRMGR&gt; <userinput>exit</userinput></screen>
-
- </sect3>
-
- <sect3 xml:id="ora-12546">
- <title><errorcode>ORA-12546</errorcode> (Start Listener with Correct Permissions)</title>
-
- <para>Start the <application>&oracle;</application> listener as user
- <systemitem class="username">oraids</systemitem> with the following commands:</para>
-
- <screen>&prompt.root; <userinput>umask 0; lsnrctl start</userinput></screen>
-
- <para>Otherwise you might get <errorcode>ORA-12546</errorcode> as the sockets will not
- have the correct permissions. See &sap; Note 0072984.</para>
- </sect3>
-
- <sect3 xml:id="ora-27102">
- <title><errorcode>ORA-27102</errorcode> (Out of Memory)</title>
-
- <para>This error happened whilst trying to use values for
- <literal>MAXDSIZ</literal> and <literal>DFLDSIZ</literal>
- greater than 1&nbsp;GB (1024x1024x1024). Additionally, we got
- <errorname>Linux Error 12: Cannot allocate memory</errorname>.</para>
- </sect3>
-
- <sect3 xml:id="dipgntabindind">
- <title>[DIPGNTAB_IND_IND] during <command>R3SETUP</command></title>
+ <sect1 xml:id="linuxemu-advanced">
+ <title>進階主題</title>
- <para>In general, see &sap; Note 0130581 (<command>R3SETUP</command> step
- <literal>DIPGNTAB</literal> terminates). During the
- IDES-specific installation, for some reason the installation
- process was not using the proper <application>&sap;</application> system name <quote>IDS</quote>, but
- the empty string <literal>""</literal> instead. This leads to some minor problems
- with accessing directories, as the paths are generated
- dynamically using <replaceable>SID</replaceable> (in this case IDS). So instead
- of accessing:</para>
-
- <programlisting>/usr/sap/IDS/SYS/...
-/usr/sap/IDS/DVMGS00</programlisting>
-
- <para>the following paths were used:</para>
-
- <programlisting>/usr/sap//SYS/...
-/usr/sap/D00</programlisting>
-
- <para>To continue with the installation, we created a link and an
- additional directory:</para>
-
- <screen>&prompt.root; <userinput>pwd</userinput>
-/compat/linux/usr/sap
-&prompt.root; <userinput>ls -l</userinput>
-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 -&gt; IDS/SYS
-drwxrwxr-x 2 idsadm sapsys 512 May 5 13:00 tmp
-drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 trans</screen>
-
- <para>We also found &sap; Notes (0029227 and 0008401) describing
- this behavior. We did not encounter any of these problems with
- the <application>&sap; 4.6C</application> installation.</para>
- </sect3>
+ <para>本節描述 &linux; 二進位檔如何運作,以 Terry Lambert <email>tlambert@primenet.com</email> 寫給&a.chat;的電子郵件為基礎(Message ID:
+ <literal>&lt;199906020108.SAA07001@usr09.primenet.com&gt;</literal>)。</para>
- <sect3 xml:id="rfcrswboiniindind">
- <title>[RFCRSWBOINI_IND_IND] during <command>R3SETUP</command></title>
+ <indexterm><primary>execution class loader</primary></indexterm>
- <para>During installation of <application>&sap; 4.6C</application>,
- this error was just the result of another error happening
- earlier during installation. In this case, you have to look
- through the corresponding logfiles and correct the real
- problem.</para>
-
- <para>If after looking through the logfiles this error is
- indeed the correct one (check the &sap; Notes), you can set
- <literal>STATUS</literal> of the offending step from <literal>ERROR</literal> to <literal>OK</literal> (file
- <filename>CENTRDB.R3S</filename>) and restart <command>R3SETUP</command>. After
- installation, you have to execute the report
- <literal>RSWBOINS</literal> from transaction SE38. See &sap;
- Note 0162266 for additional information about phase
- <literal>RFCRSWBOINI</literal> and
- <literal>RFCRADDBDIF</literal>.</para>
- </sect3>
+ <para>&os; has an abstraction called an
+ <quote>execution class loader</quote>. This is a wedge into the
+ &man.execve.2; system call.</para>
- <sect3 xml:id="rfcraddbdifindind">
- <title>[RFCRADDBDIF_IND_IND] during <command>R3SETUP</command></title>
- <para>Here the same restrictions apply: make sure by looking
- through the logfiles, that this error is not caused by some
- previous problems.</para>
-
- <para>If you can confirm that &sap; Note 0162266 applies, just
- set <literal>STATUS</literal> of the offending step from <literal>ERROR</literal> to <literal>OK</literal> (file
- <filename>CENTRDB.R3S</filename>) and restart <command>R3SETUP</command>. After
- installation, you have to execute the report
- <literal>RADDBDIF</literal> from transaction SE38.</para>
- </sect3>
+ <para>歷史上, &unix; 載入器檢查魔術數字(通常是檔案的頭四或八個位元組)來看它是否是系統已知的二進位檔,如果是,就調用二進位檔載入器。</para>
- <sect3 xml:id="sigactionsig31">
- <title><errorcode>sigaction sig31: File size limit exceeded</errorcode></title>
+ <para>如果不是系統的二進位檔類型, &man.execve.2; 呼叫會回報失敗,shell會嘗試當作 shell 指令來執行。
+ The assumption was a default of
+ <quote>whatever the current shell is</quote>.</para>
- <para>This error occurred during start of <application>&sap;</application> processes
- <emphasis>disp+work</emphasis>. If starting <application>&sap;</application> with the
- <command>startsap</command> script, subprocesses are then started which
- detach and do the dirty work of starting all other <application>&sap;</application>
- processes. As a result, the script itself will not notice
- if something goes wrong.</para>
-
- <para>To check whether the <application>&sap;</application> processes did start properly,
- have a look at the process status with
- <command>ps ax | grep SID</command>, which will give
- you a list of all <application>&oracle;</application> and <application>&sap;</application> processes. If it looks like
- some processes are missing or if you cannot connect to the <application>&sap;</application> system,
- look at the corresponding logfiles which can be found
- at <filename>/usr/sap/SID/DVEBMGSnr/work/</filename>.
- The files to look at are <filename>dev_ms</filename> and
- <filename>dev_disp</filename>.</para>
-
- <para>Signal 31 happens here if the amount of shared memory used by
- <application>&oracle;</application> and <application>&sap;</application> exceed the one defined within the kernel configuration
- file and could be resolved by using a larger value:</para>
-
- <programlisting># larger value for 46C production systems:
-options SHMMAXPGS=393216
-# smaller value sufficient for 46B:
-#options SHMMAXPGS=262144</programlisting>
+ <para>後來, &man.sh.1; 做了hack來檢查頭兩字元,如果他們是 <literal>:\n</literal>,就改調用 &man.csh.1; shell 。</para>
- </sect3>
+ <para>&os; 有一系列的載入器取代單一載入器,其中有with a fallback to the <literal>#!</literal> 載入器來執行 shell 解譯器或是 shell 腳本。</para>
- <sect3 xml:id="saposcolfails">
- <title>Start of <command>saposcol</command> Failed</title>
- <para>There are some problems with the program <command>saposcol</command> (version 4.6D).
- The <application>&sap;</application> system is using <command>saposcol</command> to collect data about the
- system performance. This program is not needed to use the <application>&sap;</application> system,
- so this problem can be considered a minor one. The older versions
- (4.6B) does work, but does not collect all the data (many calls will
- just return 0, for example for CPU usage).</para>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 xml:id="linuxemu-advanced">
- <title>Advanced Topics</title>
+ <indexterm>
+ <primary>ELF</primary>
+ </indexterm>
- <para>If you are curious as to how the Linux binary compatibility
- works, this is the section you want to read. Most of what follows
- is based heavily on an email written to &a.chat; by Terry Lambert
- <email>tlambert@primenet.com</email> (Message ID:
- <literal>&lt;199906020108.SAA07001@usr09.primenet.com&gt;</literal>).</para>
+ <indexterm>
+ <primary>Solaris</primary>
+ </indexterm>
- <sect2>
- <title>How Does It Work?</title>
- <indexterm><primary>execution class loader</primary></indexterm>
+ <para>對於 &linux; <acronym>ABI</acronym> 支援, &os; 將魔術數字看待為 ELF 二進位檔。
+ ELF載入器尋找專門的 <emphasis>brand</emphasis>,這是 ELF 影像的註解部份,並未存在於 SVR4/&solaris; ELF 二進位檔。</para>
- <para>FreeBSD has an abstraction called an <quote>execution class
- loader</quote>. This is a wedge into the &man.execve.2; system
- call.</para>
-
- <para>What happens is that FreeBSD has a list of loaders, instead of
- a single loader with a fallback to the <literal>#!</literal>
- loader for running any shell interpreters or shell scripts.</para>
-
- <para>Historically, the only loader on the &unix; platform examined
- the magic number (generally the first 4 or 8 bytes of the file) to
- see if it was a binary known to the system, and if so, invoked the
- binary loader.</para>
-
- <para>If it was not the binary type for the system, the
- &man.execve.2; call returned a failure, and the shell attempted to
- start executing it as shell commands.</para>
-
- <para>The assumption was a default of <quote>whatever the current
- shell is</quote>.</para>
-
- <para>Later, a hack was made for &man.sh.1; to examine the first two
- characters, and if they were <literal>:\n</literal>, then it
- invoked the &man.csh.1; shell instead (we believe SCO first made
- this hack).</para>
-
- <para>What FreeBSD does now is go through a list of loaders, with a
- generic <literal>#!</literal> loader that knows about interpreters
- as the characters which follow to the next whitespace next to
- last, followed by a fallback to
- <filename>/bin/sh</filename>.</para>
- <indexterm><primary>ELF</primary></indexterm>
-
- <para>For the Linux ABI support, FreeBSD sees the magic number as an
- ELF binary (it makes no distinction between FreeBSD, &solaris;,
- Linux, or any other OS which has an ELF image type, at this
- point).</para>
- <indexterm><primary>Solaris</primary></indexterm>
-
- <para>The ELF loader looks for a specialized
- <emphasis>brand</emphasis>, which is a comment section in the ELF
- image, and which is not present on SVR4/&solaris; ELF
- binaries.</para>
-
- <para>For Linux binaries to function, they must be
- <emphasis>branded</emphasis> as type <literal>Linux</literal>
- from &man.brandelf.1;:</para>
+ <para>For &linux; binaries to function, they must be
+ <emphasis>branded</emphasis> as type <literal>Linux</literal>
+ using &man.brandelf.1;:</para>
- <screen>&prompt.root; <userinput>brandelf -t Linux file</userinput></screen>
+ <screen>&prompt.root; <userinput>brandelf -t Linux file</userinput></screen>
- <para>When this is done, the ELF loader will see the
- <literal>Linux</literal> brand on the file.</para>
- <indexterm>
- <primary>ELF</primary>
- <secondary>branding</secondary>
- </indexterm>
+ <indexterm>
+ <primary>ELF</primary>
+ <secondary>branding</secondary>
+ </indexterm>
- <para>When the ELF loader sees the <literal>Linux</literal> brand,
- the loader replaces a pointer in the <literal>proc</literal>
- structure. All system calls are indexed through this pointer (in
- a traditional &unix; system, this would be the
- <literal>sysent[]</literal> structure array, containing the system
- calls). In addition, the process is flagged for special handling of
- the trap vector for the signal trampoline code, and several other
- (minor) fix-ups that are handled by the Linux kernel
- module.</para>
-
- <para>The Linux system call vector contains, among other things, a
- list of <literal>sysent[]</literal> entries whose addresses reside
- in the kernel module.</para>
-
- <para>When a system call is called by the Linux binary, the trap
- code dereferences the system call function pointer off the
- <literal>proc</literal> structure, and gets the Linux, not the
- FreeBSD, system call entry points.</para>
-
- <para>In addition, the Linux mode dynamically
- <emphasis>reroots</emphasis> lookups; this is, in effect, what the
- <option>union</option> option to file system mounts
- (<emphasis>not</emphasis> the <literal>unionfs</literal> file system type!) does. First, an attempt
- is made to lookup the file in the
- <filename>/compat/linux/original-path</filename>
- directory, <emphasis>then</emphasis> only if that fails, the
- lookup is done in the
- <filename>/original-path</filename>
- directory. This makes sure that binaries that require other
- binaries can run (e.g., the Linux toolchain can all run under
- Linux ABI support). It also means that the Linux binaries can
- load and execute FreeBSD binaries, if there are no corresponding
- Linux binaries present, and that you could place a &man.uname.1;
- command in the <filename>/compat/linux</filename> directory tree
- to ensure that the Linux binaries could not tell they were not
- running on Linux.</para>
-
- <para>In effect, there is a Linux kernel in the FreeBSD kernel; the
- various underlying functions that implement all of the services
- provided by the kernel are identical to both the FreeBSD system
- call table entries, and the Linux system call table entries: file
- system operations, virtual memory operations, signal delivery,
- System V IPC, etc&hellip; The only difference is that FreeBSD
- binaries get the FreeBSD <emphasis>glue</emphasis> functions, and
- Linux binaries get the Linux <emphasis>glue</emphasis> functions
- (most older OS's only had their own <emphasis>glue</emphasis>
- functions: addresses of functions in a static global
- <literal>sysent[]</literal> structure array, instead of addresses
- of functions dereferenced off a dynamically initialized pointer in
- the <literal>proc</literal> structure of the process making the
- call).</para>
-
- <para>Which one is the native FreeBSD ABI? It does not matter.
- Basically the only difference is that (currently; this could
- easily be changed in a future release, and probably will be after
- this) the FreeBSD <emphasis>glue</emphasis> functions are
- statically linked into the kernel, and the Linux <emphasis>glue</emphasis> functions
- can be statically linked, or they can be accessed via a kernel
- module.</para>
-
- <para>Yeah, but is this really emulation? No. It is an ABI
- implementation, not an emulation. There is no emulator (or
- simulator, to cut off the next question) involved.</para>
-
- <para>So why is it sometimes called <quote>Linux emulation</quote>?
- To make it hard to sell FreeBSD! Really, it
- is because the historical implementation was done at a time when
- there was really no word other than that to describe what was
- going on; saying that FreeBSD ran Linux binaries was not true, if
- you did not compile the code in or load a module, and there needed
- to be a word to describe what was being loaded&mdash;hence
- <quote>the Linux emulator</quote>.</para>
- </sect2>
+ <para>When the ELF loader sees the <literal>Linux</literal>
+ brand, the loader replaces a pointer in the
+ <literal>proc</literal> structure. All system calls are indexed
+ through this pointer. In addition, the process is flagged for
+ special handling of the trap vector for the signal trampoline
+ code, and several other (minor) fix-ups that are handled by the
+ &linux; kernel module.</para>
+
+ <para>The &linux; system call vector contains, among other things,
+ a list of <literal>sysent[]</literal> entries whose addresses
+ reside in the kernel module.</para>
+
+ <para>When a system call is called by the &linux; binary, the trap
+ code dereferences the system call function pointer off the
+ <literal>proc</literal> structure, and gets the &linux;, not the
+ &os;, system call entry points.</para>
+
+ <para>&linux; mode dynamically <emphasis>reroots</emphasis>
+ lookups. This is, in effect, equivalent to the
+ <option>union</option> option to file system mounts. First, an
+ attempt is made to lookup the file in <filename
+ >/compat/linux/<replaceable>original-path</replaceable></filename>.
+ If that fails, the lookup is done in <filename
+ >/<replaceable>original-path</replaceable></filename>.
+ This makes sure that binaries that require other binaries can
+ run. For example, the &linux; toolchain can all run under
+ &linux; <acronym>ABI</acronym> support. It also means that the
+ &linux; binaries can load and execute &os; binaries, if there
+ are no corresponding &linux; binaries present, and that a
+ &man.uname.1; command can be placed in the
+ <filename>/compat/linux</filename> directory tree to ensure that
+ the &linux; binaries can not tell they are not running on
+ &linux;.</para>
+
+ <para>In effect, there is a &linux; kernel in the &os; kernel.
+ The various underlying functions that implement all of the
+ services provided by the kernel are identical to both the &os;
+ system call table entries, and the &linux; system call table
+ entries: file system operations, virtual memory operations,
+ signal delivery, and System V IPC. The only difference is that
+ &os; binaries get the &os; <emphasis>glue</emphasis> functions,
+ and &linux; binaries get the &linux; <emphasis>glue</emphasis>
+ functions. The &os; <emphasis>glue</emphasis> functions are
+ statically linked into the kernel, and the &linux;
+ <emphasis>glue</emphasis> functions can be statically linked, or
+ they can be accessed via a kernel module.</para>
+
+ <para>Technically, this is not really emulation, it is an
+ <acronym>ABI</acronym> implementation. It is sometimes called
+ <quote>&linux; emulation</quote> because the implementation was
+ done at a time when there was no other word to describe what was
+ going on. Saying that &os; ran &linux; binaries was not true,
+ since the code was not compiled in.</para>
</sect1>
</chapter>

File Metadata

Mime Type
text/plain
Expires
Fri, Oct 2, 7:53 PM (19 m, 5 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
40097116
Default Alt Text
D3597.diff (156 KB)

Event Timeline