Put in remaining pages and wiki contents.
[ikiwiki.git] / docs / handbook / handbook-linuxemu-oracle.mdwn
1 \r
2 \r
3 ## 22.6 Installing Oracle┬« \r
4 \r
5 ***Contributed by Marcel Moolenaar. ***\r
6 \r
7 ### 22.6.1 Preface \r
8 \r
9 This document describes the process of installing  **Oracle┬« 8.0.5**  and  **Oracle 8.0.5.1 Enterprise Edition**  for Linux onto a DragonFly machine.\r
10 \r
11  **Warning:** This description applies to FreeBSD, for which it was originally written. This may or may not apply to DragonFly at this point; while FreeBSD 4.x features usually translate over to DragonFly well, your mileage may vary.\r
12 \r
13 ### 22.6.2 Installing the Linux Environment \r
14 \r
15 Make sure you have both [`emulators/linux_base`](http://pkgsrc.se/emulators/linux_base) and [`devel/linux_devtools`](http://pkgsrc.se/devel/linux_devtools) 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.\r
16 \r
17 If you want to run the intelligent agent, you will also need to install the Red Hat Tcl package: `tcl-8.0.3-20.i386.rpm`. The general command for installing packages with the official  **RPM**  port ([`archivers/rpm`](http://pkgsrc.se/archivers/rpm)) is:\r
18 \r
19     \r
20     # rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm `***package***`\r
21 \r
22 \r
23 Installation of the `***package***` should not generate any errors.\r
24 \r
25 ### 22.6.3 Creating the Oracle Environment \r
26 \r
27 Before you can install  **Oracle** , you need to set up a proper environment. This document only describes what to do ***specially*** to run  **Oracle**  for Linux on DragonFly, not what has been described in the  **Oracle**  installation guide.\r
28 \r
29 #### 22.6.3.1 Kernel Tuning \r
30 \r
31 As described in the  **Oracle**  installation guide, you need to set the maximum size of shared memory. Do not use `SHMMAX` under DragonFly. `SHMMAX` is merely calculated out of `SHMMAXPGS` and `PGSIZE`. Therefore define `SHMMAXPGS`. All other options can be used as described in the guide. For example:\r
32 \r
33     \r
34     options SHMMAXPGS=10000\r
35     options SHMMNI=100\r
36     options SHMSEG=10\r
37     options SEMMNS=200\r
38     options SEMMNI=70\r
39     options SEMMSL=61\r
40 \r
41 \r
42 Set these options to suit your intended use of  **Oracle** .\r
43 \r
44 Also, make sure you have the following options in your kernel configuration file:\r
45 \r
46     \r
47     options SYSVSHM #SysV shared memory\r
48     options SYSVSEM #SysV semaphores\r
49     options SYSVMSG #SysV interprocess communication\r
50 \r
51 \r
52 #### 22.6.3.2 Oracle Account \r
53 \r
54 Create an `oracle` account just as you would create any other account. The `oracle` account is special only that you need to give it a Linux shell. Add `/compat/linux/bin/bash` to `/etc/shells` and set the shell for the `oracle` account to `/compat/linux/bin/bash`.\r
55 \r
56 #### 22.6.3.3 Environment \r
57 \r
58 Besides the normal  **Oracle**  variables, such as `ORACLE_HOME` and `ORACLE_SID` you must set the following environment variables:\r
59 \r
60 [[!table  data="""
61 | Variable | Value 
62  `LD_LIBRARY_PATH` | `$ORACLE_HOME/lib` 
63  `CLASSPATH` | `$ORACLE_HOME/jdbc/lib/classes111.zip` 
64  `PATH` | `/compat/linux/bin /compat/linux/sbin /compat/linux/usr/bin /compat/linux/usr/sbin /bin /sbin /usr/bin /usr/sbin /usr/local/bin $ORACLE_HOME/bin` |\r
65 """]]\r
66 It is advised to set all the environment variables in `.profile`. A complete example is:\r
67 \r
68     \r
69     ORACLE_BASE=/oracle; export ORACLE_BASE\r
70     ORACLE_HOME=/oracle; export ORACLE_HOME\r
71     LD_LIBRARY_PATH=$ORACLE_HOME/lib\r
72     export LD_LIBRARY_PATH\r
73     ORACLE_SID=ORCL; export ORACLE_SID\r
74     ORACLE_TERM=386x; export ORACLE_TERM\r
75     CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip\r
76     export CLASSPATH\r
77     PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin\r
78     PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin\r
79     PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin\r
80     export PATH\r
81 \r
82 \r
83 ### 22.6.4 Installing Oracle \r
84 \r
85 Due to a slight inconsistency in the Linux emulator, you need to create a directory named `.oracle` in `/var/tmp` before you start the installer. Either make it world writable or let it be owned by the `oracle` user. You should be able to install  **Oracle**  without any problems. If you have problems, check your  **Oracle**  distribution and/or configuration first! After you have installed  **Oracle** , apply the patches described in the next two subsections.\r
86 \r
87 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:\r
88 \r
89     \r
90     # cd $ORACLE_HOME/network/lib\r
91     # make -f ins_network.mk ntcontab.o\r
92     # cd $ORACLE_HOME/lib\r
93     # ar r libnetwork.a ntcontab.o\r
94     # cd $ORACLE_HOME/network/lib\r
95     # make -f ins_network.mk install\r
96 \r
97 \r
98 Do not forget to run `root.sh` again!\r
99 \r
100 #### 22.6.4.1 Patching root.sh \r
101 \r
102 When installing  **Oracle** , some actions, which need to be performed as `root`, are recorded in a shell script called `root.sh`. This script is written in the `orainst` directory. Apply the following patch to `root.sh`, to have it use to proper location of `chown` or alternatively run the script under a Linux native shell.\r
103 \r
104     \r
105     
106 *** orainst/root.sh.orig Tue Oct 6 21:57:33 1998\r
107     --- orainst/root.sh Mon Dec 28 15:58:53 1998\r
108     
109 ***************\r
110     *** 31,37 ****\r
111
112     # This is the default value for CHOWN\r
113     # It will redefined later in this script for those ports\r
114     # which have it conditionally defined in ss_install.h\r
115     ! CHOWN=/bin/chown\r
116     #\r
117     # Define variables to be used in this script\r
118     --- 31,37 ----\r
119     # This is the default value for CHOWN\r
120     # It will redefined later in this script for those ports\r
121     # which have it conditionally defined in ss_install.h\r
122     ! CHOWN=/usr/sbin/chown\r
123     #\r
124     # Define variables to be used in this script\r
125 \r
126 \r
127 When you do not install  **Oracle**  from CD, you can patch the source for `root.sh`. It is called `rthd.sh` and is located in the `orainst` directory in the source tree.\r
128 \r
129 #### 22.6.4.2 Patching genclntsh \r
130 \r
131 The script `genclntsh` 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 `PATH`:\r
132 \r
133     \r
134     
135 *** bin/genclntsh.orig Wed Sep 30 07:37:19 1998\r
136     --- bin/genclntsh Tue Dec 22 15:36:49 1998\r
137     
138 ***************\r
139     *** 32,38 ****\r
140
141     #\r
142     # Explicit path to ensure that we're using the correct commands\r
143     #PATH=/usr/bin:/usr/ccs/bin export PATH\r
144     ! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH\r
145     #\r
146     # each product MUST provide a $PRODUCT/admin/shrept.lst\r
147     --- 32,38 ----\r
148     #\r
149     # Explicit path to ensure that we're using the correct commands\r
150     #PATH=/usr/bin:/usr/ccs/bin export PATH\r
151     ! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH\r
152     #\r
153     # each product MUST provide a $PRODUCT/admin/shrept.lst\r
154 \r
155 \r
156 ### 22.6.5 Running Oracle \r
157 \r
158 When you have followed the instructions, you should be able to run  **Oracle**  as if it was run on Linux itself.\r
159 \r
160 \r
161 \r
162 CategoryHandbook\r
163 CategoryHandbook-linuxcompatibility\r