svn commit: r41051 - head/en_US.ISO8859-1/books/handbook/linuxemu
Dru Lavigne
dru at FreeBSD.org
Tue Feb 26 16:52:43 UTC 2013
Author: dru
Date: Tue Feb 26 16:52:43 2013
New Revision: 41051
URL: http://svnweb.freebsd.org/changeset/doc/41051
Log:
Initial pass through chapter which does some tightening, modernizing, and fixes "you" and &os;.
This chapter still needs a lot of testing and modernization. The ulink/xref tags need further review as well.
Approved by: gjb (mentor)
Modified:
head/en_US.ISO8859-1/books/handbook/linuxemu/chapter.xml
Modified: head/en_US.ISO8859-1/books/handbook/linuxemu/chapter.xml
==============================================================================
--- head/en_US.ISO8859-1/books/handbook/linuxemu/chapter.xml Tue Feb 26 13:13:15 2013 (r41050)
+++ head/en_US.ISO8859-1/books/handbook/linuxemu/chapter.xml Tue Feb 26 16:52:43 2013 (r41051)
@@ -28,7 +28,7 @@
</authorgroup>
</chapterinfo>
- <title>Linux Binary Compatibility</title>
+ <title>&linux; Binary Compatibility</title>
<sect1 id="linuxemu-synopsis">
<title>Synopsis</title>
@@ -40,58 +40,40 @@
<secondary>Linux</secondary>
</indexterm>
- <para>FreeBSD provides binary compatibility with several other
- &unix; like operating systems, including Linux. At this point,
- you may be asking yourself why exactly, does
- FreeBSD need to be able to run Linux binaries? The answer to
- that question is quite simple. Many companies and developers
- develop only for Linux, since it is the latest <quote>hot
- thing</quote> in the computing world. That leaves the rest
- of us FreeBSD users bugging these same companies and developers
- to put out native FreeBSD versions of their applications. The
- problem is, that most of these companies do not really realize
- how many people would use their product if there were FreeBSD
- versions too, and most continue to only develop for Linux.
- So what is a FreeBSD user to do? This is where the Linux binary
- compatibility of FreeBSD comes into play.</para>
-
- <para>In a nutshell, the compatibility allows FreeBSD users to
- run about 90% of all Linux applications without modification.
- This includes applications such as
- <application>&staroffice;</application>, the Linux version of
- <application>&adobe; &acrobat;</application>,
- <application>&realplayer;</application>,
- <application>&oracle;</application>,
- <application>Doom</application>,
- <application>Quake</application>, and more. It is also reported
- that in some situations, Linux binaries perform better on
- FreeBSD than they do under Linux.</para>
-
- <para>There are, however, some Linux-specific operating system
- features that are not supported under FreeBSD. Linux binaries
- will not work on FreeBSD if they overly use &i386; specific
+ <para>&os; provides binary compatibility with &linux;, allowing
+ users to install and run &linux; binaries on a &os; system.
+ Many companies and developers develop only for &linux;, and
+ binary compatibility allows &os; users to run about 90% of all
+ &linux; applications without modification. This includes
+ productivity applications, games, and more. It has even been
+ reported that, in some situations, &linux; binaries perform
+ better on &os; than they do on &linux;.</para>
+
+ <para>However, some &linux;-specific operating system features
+ are not supported under &os;. For example, &linux; binaries
+ will not work on &os; if they overly use &i386; specific
calls, such as enabling virtual 8086 mode.</para>
<para>After reading this chapter, you will know:</para>
<itemizedlist>
<listitem>
- <para>How to enable Linux binary compatibility on your
+ <para>How to enable &linux; binary compatibility on a &os;
system.</para>
</listitem>
<listitem>
- <para>How to install additional Linux shared
+ <para>How to install additional &linux; shared
libraries.</para>
</listitem>
<listitem>
- <para>How to install Linux applications on your FreeBSD
+ <para>How to install &linux; applications on a &os;
system.</para>
</listitem>
<listitem>
- <para>The implementation details of Linux compatibility in
- FreeBSD.</para>
+ <para>The implementation details of &linux; compatibility in
+ &os;.</para>
</listitem>
</itemizedlist>
@@ -99,8 +81,8 @@
<itemizedlist>
<listitem>
- <para>Know how to install additional third-party
- software (<xref linkend="ports"/>).</para>
+ <para>Know how to install <link linkend="ports">additional
+ third-party software</link>.</para>
</listitem>
</itemizedlist>
@@ -109,25 +91,43 @@
<sect1 id="linuxemu-lbc-install">
<title>Installation</title>
- <indexterm><primary>KLD (kernel loadable
- object)</primary></indexterm>
+ <indexterm><primary>Ports Collection</primary></indexterm>
- <para>Linux binary compatibility is not turned on by default. The
- easiest way to enable this functionality is to load the
- <literal>linux</literal> KLD object (<quote>Kernel LoaDable
- object</quote>). You can load this module by typing the
- following as <username>root</username>:</para>
+ <para>&linux; libararies are not installed on &os; by default
+ and &linux; binary compatibility is not enabled by default.
+ &linux; libraries can be installed using the &os; Ports
+ Collection. Alternately, &linux; libraries can be installed
+ <link linkend="linuxemu-libs-manually">manually</link>.</para>
+
+ <para>Using the Ports Collection is by far the easiest way to
+ install &linux; libraries. On a &os; 8.0 or higher
+ system, install the following port:</para>
- <screen>&prompt.root; <userinput>kldload linux</userinput></screen>
+ <screen>&prompt.root; <userinput>cd
+/usr/ports/emulators/linux_base-f10</userinput> &prompt.root; <userinput>make install distclean</userinput></screen>
- <para>If you would like Linux compatibility to always be enabled,
- then you should add the following line to
+ <note>
+ <para>On &os; systems prior to &os; 8.0, instead
+ install the <filename
+ role="package">emulators/linux_base-fc4</filename>
+ port.</para>
+ </note>
+
+ <para>Once the port is installed, enable &linux; binary
+ compatibility by loading the <literal>linux</literal>
+ module. Type the following as
+ <username>root</username>:</para>
+
+ <screen>&prompt.root; <userinput>kldload linux</userinput></screen>
+
+ <para>In order for &linux; compatibility to always be enabled at
+ boot time, add the following line to
<filename>/etc/rc.conf</filename>:</para>
<programlisting>linux_enable="YES"</programlisting>
- <para>The &man.kldstat.8; command can be used to verify that the
- KLD is loaded:</para>
+ <para>To verify that the module is loaded, use
+ &man.kldstat.8;:</para>
<screen>&prompt.user; <userinput>kldstat</userinput>
Id Refs Address Size Name
@@ -139,112 +139,59 @@ Id Refs Address Size Name
<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>
-
- <sect2>
- <title>Installing Linux Runtime Libraries</title>
-
- <indexterm>
- <primary>Linux</primary>
- <secondary>installing Linux libraries</secondary>
- </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 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 linkend="ports">Ports
- Collection</link>:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/emulators/linux_base-f10</userinput>
-&prompt.root; <userinput>make install distclean</userinput></screen>
-
- <note>
- <para>On &os; systems prior to &os; 8.0, you will have
- to use the <filename
- role="package">emulators/linux_base-fc4</filename> port
- instead of <filename
- role="package">emulators/linux_base-f10</filename>.</para>
- </note>
-
- <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 <filename
- role="package">emulators/linux_base</filename> 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 id="linuxemu-libs-manually">
- <title>Installing Libraries Manually</title>
-
- <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>
+ <para>Users who prefer to statically link &linux; binary
+ compatibility into the kernel should add <literal>options
+ COMPAT_LINUX</literal> to the custom kernel configuration
+ file. Compile and install the new kernel as described in <link
+ linkend="kernelconfig"></link>.</para>
+
+ <sect2 id="linuxemu-libs-manually">
+ <title>Installing Libraries Manually</title>
+
+ <para>While using the Ports Collection is recommended, &linux;
+ libraries can be installed manually. The &linux; shared
+ libraries required by a program and the runtime linker
+ should be copied to <filename
+ class="directory">/compat/linux</filename>. Any shared
+ libraries opened by &linux; programs run under &os; will
+ look in this directory first. For example, if a &linux;
+ program loads <filename>/lib/libc.so</filename>, &os; 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 to <filename
+ class="directory">/compat/linux/lib</filename> rather than
+ to the paths that the &linux; <command>ld.so</command>
+ reports.</para>
+
+ <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 imported
+ &linux; binaries without any extra work.</para>
<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 <username>root</username> 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>
+ <para>If the <literal>linux_base</literal> port is installed
+ and an application still complains about missing shared
+ libraries, there are two methods <username>root</username>
+ can use to determine which shared libraries the &linux;
+ binaries need.</para>
+
+ <para>If a &linux; system is available, determine which shared
+ libraries the application needs, and copy them to the &os;
+ system.</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>In this example, FTP was used to download the &linux;
+ binary of <application>Doom</application> on a &linux;
+ system . To check which shared libraries it needs, run
+ <command>ldd linuxdoom</command>:</para>
<screen>&prompt.user; <userinput>ldd linuxdoom</userinput>
libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0
@@ -252,12 +199,11 @@ libX11.so.3 (DLL Jump 3.1) => /usr/X1
libc.so.4 (DLL Jump 4.5pl26) => /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>
+ <para>Copy all the files in the last column into
+ <filename class="directory">/compat/linux</filename> on
+ the &os; system, with the names in the first column as
+ symbolic links pointing to them. This example will result
+ in the following files on the &os; system:</para>
<screen>/compat/linux/usr/X11/lib/libXt.so.3.1.0
/compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0
@@ -268,33 +214,31 @@ libc.so.4 (DLL Jump 4.5pl26) => /lib/
<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. For example, these
+ libraries exist on the system:</para>
<screen>/compat/linux/lib/libc.so.4.6.27
/compat/linux/lib/libc.so.4 -> 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
+ <para>and a binary claims to require a later version
+ according to the output of
<command>ldd</command>:</para>
<screen>libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29</screen>
<para>If it is only one or two versions out of date
- in the trailing digit then do not worry about copying
- <filename>/lib/libc.so.4.6.29</filename> too, because
+ in the trailing digit, do not worry about copying
+ <filename>/lib/libc.so.4.6.29</filename>, 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>
+ version. However, it is safe to replace the
+ <filename>libc.so</filename>:</para>
<screen>/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -> libc.so.4.6.29</screen>
@@ -304,10 +248,9 @@ libc.so.4 (DLL Jump 4.5pl26) => /lib/
<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>
+ <emphasis>only</emphasis> needed for &linux; binaries
+ as the &os; runtime linker takes care of looking for
+ matching major revision numbers.</para>
</note>
</blockquote>
</informalexample>
@@ -315,7 +258,7 @@ libc.so.4 (DLL Jump 4.5pl26) => /lib/
</sect2>
<sect2>
- <title>Installing Linux ELF Binaries</title>
+ <title>Installing &linux; ELF Binaries</title>
<indexterm>
<primary>Linux</primary>
@@ -323,69 +266,71 @@ libc.so.4 (DLL Jump 4.5pl26) => /lib/
</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
+ <quote>branding</quote>. If an unbranded ELF binary is
+ executed, it will generate an error message like the
following:</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 and a Linux binary, use the &man.brandelf.1;
- utility.</para>
+ <para>To help the &os; kernel distinguish between a &os;
+ ELF binary and a &linux; binary, use &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>
+ <para>Since the GNU toolchain places the appropriate branding
+ information into ELF binaries automatically, this step is
+ usually not necessary.</para>
</sect2>
<sect2>
- <title>Installing a Random Linux RPM Based Application</title>
-
- <para>FreeBSD has its own package database and it is used to
- track all ports (&linux; ports as well). So the &linux; RPM
- database is not used (not supported).</para>
+ <title>Installing a &linux; RPM Based Application</title>
- <para>However if you need to install a random &linux;
- RPM-based application it can be achieved by:</para>
+ <para>&os; uses its own package database to track all software
+ installed from the Ports Collection. However, the &linux; RPM
+ database is not supported.</para>
+
+ <para>In order to install a &linux; RPM-based application, first
+ install the <filename
+ role="package">archivers/rpm2cpio</filename> package or
+ port. Once installed, <username>root</username> can use this
+ command to install a <filename>.rpm</filename> as
+ follows:</para>
<screen>&prompt.root; <userinput>cd /compat/linux</userinput>
&prompt.root; <userinput>rpm2cpio -q < /path/to/linux.archive.rpm | cpio -id</userinput></screen>
- <para>Then brandelf installed ELF binaries (not libraries!).
- You will not be able to do a clean uninstall, but it may
- help you to do tests.</para>
+ <para>If necessary, <command>brandelf</command> the installed
+ ELF binaries, but <emphasis>not</emphasis> the libraries.
+ Note that this will prevent a clean uninstall.</para>
</sect2>
<sect2>
<title>Configuring the Hostname Resolver</title>
- <para>If DNS does not work or you get this message:</para>
+ <para>If DNS does not work or this error appears:</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>Configure
+ <filename>/compat/linux/etc/host.conf</filename> as
+ follows:</para>
<programlisting>order hosts, bind
multi on</programlisting>
- <para>The order here specifies that
+ <para>This order 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>/compat/linux/etc/host.conf</filename> does not
+ exist, &linux; applications use
<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>
+ incompatible &os; syntax. Remove
+ <literal>bind</literal> if a name server is not configured
+ using <filename>/etc/resolv.conf</filename>.</para>
</sect2>
</sect1>
@@ -406,47 +351,46 @@ multi on</programlisting>
<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
- <ulink url="http://www.wolfram.com/"></ulink>.</para>
+ <para>This section describes the process of installing the
+ &linux; version of <application>&mathematica; 5.X</application>
+ onto a &os; system. <application>&mathematica;</application>
+ is a commercial, computational software program used in
+ scientific, engineering, and mathematical fields. It is
+ available from <ulink
+ url="http://www.wolfram.com/mathematica/">Wolfram
+ Research</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>First, tell &os; that
+ <application>&mathematica;</application>'s &linux;
+ binaries use the &linux; Application Binary Interface
+ <acronym>ABI</acronym>. The easiest way to do this is to
+ set the default ELF brand to &linux; for all unbranded
+ binaries with the command:</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>&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>Now, copy the file <filename>MathInstaller</filename> to
- your hard drive:</para>
+ <para>Copy the <filename>MathInstaller</filename> to the 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
+ <para>In this file, replace <literal>/bin/sh</literal> in
+ the first line with <literal>/compat/linux/bin/sh</literal>.
+ This ensures 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
+ <literal>Linux)</literal> with <literal>FreeBSD)</literal>
+ using a text editor or the script below in the next section.
+ This tells the <application>&mathematica;</application>
+ installer, to treat &os; as a &linux;-like operating
+ system. Invoking <command>MathInstaller</command> should now
install <application>&mathematica;</application>.</para>
</sect2>
@@ -455,17 +399,17 @@ multi on</programlisting>
<para>The shell scripts that
<application>&mathematica;</application> created during
- installation have to be modified before you can use them.
- If you chose <filename
+ installation have to be modified before use. When using
+ <filename
class="directory">/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>,
+ for the <application>&mathematica;</application>
+ executables, symlinks in this directory will point 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>
+ <literal>Linux)</literal> with <literal>FreeBSD)</literal>
+ using a text editor or the following shell script:</para>
<programlisting>#!/bin/sh
cd /usr/local/bin
@@ -478,90 +422,85 @@ done</programlisting>
</sect2>
<sect2>
- <title>Obtaining Your &mathematica; Password</title>
+ <title>Obtaining a &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
+ <para>When <application>&mathematica;</application> is started
+ for the first time, it will ask for a password. If a password
+ had not yet been obtained from Wolfram Research, run
<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>
+ obtain the <quote>machine ID</quote>. This machine ID is
+ based solely on the MAC address of the first Ethernet card,
+ as the copy of <application>&mathematica;</application> cannot
+ run on different machines.</para>
+
+ <para>When registering with Wolfram Research, provide the
+ <quote>machine ID</quote> and they will respond with a
+ corresponding password consisting of groups of numbers.</para>
</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
+ class="directory">/cdrom/Unix/Files/SystemFiles/Fonts</filename>
+ on the CDROM, or <filename
+ class="directory">/usr/local/mathematica/SystemFiles/Fonts</filename>
+ on the hard drive. The actual fonts are in the subdirectories
+ <filename class="directory">Type1</filename> and
+ <filename class="directory">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
+ class="directory">/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
+ class="directory">/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>
<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
+ class="directory">/usr/local/lib/X11/fonts/Type1</filename>
+ does not already exist, change the name of the <filename
+ class="directory">MathType1</filename> directory in the
+ example above to <filename
+ class="directory">Type1</filename>.</para>
</sect2>
</sect1>
@@ -593,11 +532,11 @@ done</programlisting>
<para><application>&maple;</application> is a commercial
mathematics program similar to
- <application>&mathematica;</application>. You must purchase
- this software from <ulink
- url="http://www.maplesoft.com/"></ulink> and then register
- there for a license file. To install this software on FreeBSD,
- please follow these simple steps.</para>
+ <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
@@ -607,23 +546,25 @@ done</programlisting>
might be <filename
class="directory">/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 (<ulink
- url="http://register.maplesoft.com/"></ulink>) 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
+ <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 your machine for the license
- server.</para></step>
+ comes with <application>&maple;</application>. Specify
+ the primary hostname for the machine for the license
+ server.</para>
+ </step>
- <step><para>Patch the
+ <step>
+ <para>Patch
<filename>/usr/local/maple/bin/maple.system.type</filename>
- file with the following:</para>
+ with the following:</para>
+
<programlisting> ----- snip ------------------
*** maple.system.type.orig Sun Jul 8 16:35:33 2001
--- maple.system.type Sun Jul 8 16:35:51 2001
@@ -639,12 +580,11 @@ done</programlisting>
# 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
+ 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
@@ -660,7 +600,7 @@ done</programlisting>
<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
@@ -685,14 +625,14 @@ exit 0
----- snip ------------</programlisting></step>
- <step><para>Test-start
- <application>&maple;</application>:</para>
+ <step><para>Test that
+ <application>&maple;</application> starts:</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
+ <para>Once everything is working, consider writing
+ Maplesoft to let them know you would like a native &os;
version!</para></step>
</procedure>
@@ -700,14 +640,8 @@ exit 0
<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
- <ulink
- url="http://www.globetrotter.com/"></ulink>.</para></listitem>
-
- <listitem><para><command>lmgrd</command> is known to be very
- picky about the license file and to core dump if there
+ <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>
@@ -724,12 +658,15 @@ FEATURE Maple maplelmg 2000.0831 permane
ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \
SN=XXXXXXXXX</programlisting>
- <note><para>Serial number and key 'X''ed out.
- <hostid>chillig</hostid> 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>
@@ -752,41 +689,38 @@ FEATURE Maple maplelmg 2000.0831 permane
<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 <ulink
- url="http://www.mathworks.com"></ulink>. 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 <link linkend="matlab-jre"></link>.</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 <username>root</username>, 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
+ <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 you
- did a &man.su.1; as.</para>
+ where <replaceable>USER</replaceable> is the user who
+ ran &man.su.1;.</para>
</tip>
</step>
@@ -798,22 +732,20 @@ FEATURE Maple maplelmg 2000.0831 permane
<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>
@@ -822,9 +754,9 @@ FEATURE Maple maplelmg 2000.0831 permane
</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>
@@ -840,12 +772,12 @@ FEATURE Maple maplelmg 2000.0831 permane
</step>
<step>
- <para>Create a startup file at
+ <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>
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-doc-head
mailing list