1. Linux兼容    其实在FreeBSD下安装Oracle9i,实质上是在Linux下安装。不过是由FreeBSD提供一个兼容环境而已。  
  应该说FreeBSD提供的Linux环境已经足够好了,但是我们还是需要做点工作:  
  建立/compat/linux/etc/mtab  
  #cat /etc/fstab | grep -v '^#' | grep -v cd9660 | grep -v proc | grep -v swap | grep -v devfs > /compat/linux/etc/mtab  
  他生成的内容是:  
  /dev/ad0s2a / ufs rw 1 1  
  /dev/ad1s1 /u01 ufs rw 1 1  
  我生成的内容是:  
  /dev/ad0s1a / ufs rw 1 1  
  /dev/ad0s1e /tmp ufs rw 2 2  
  /dev/ad0s1f /usr ufs rw 2 2  
  /dev/ad0s1d /var ufs rw 2 2  
  创建链接  
  #ln -s /usr/bin/awk /compat/linux/bin/awk  
  #ln -s /usr/bin/sed /compat/linux/bin/sed  
  #ln -s /usr/bin/chown /compat/linux/bin/chown  
  创建/compat/linux/bin/arch  
  #cat > /compat/linux/bin/arch  
  #!/compat/linux/bin/bash  
  echo i686  
  ^D  
  然后给它执行权  
  #chmod +x /compat/linux/bin/arch  
  如果你愿意,给它也来个链接也是不错的  
  #ln -s /compat/linux/bin/arch /bin/arch    
2. 修改KERNEL    #cd /usr/src/sys/i386/conf  
  #cp GENERIC ORACLE  
  #cat >> ORACLE  
  options SEMMAP=128  
  options SEMMNI=128  
  options SEMMNS=32000  
  options SEMOPM=250  
  options SEMMSL=250  
  options SHMMAXPGS=65536  
  options SHMMAX=1073741824  
  options SHMMNI=4096  
  options SHMSEG=4096  
  options MAXDSIZ=”(1024*1024*1024)”  
  options MAXSSIZ=”(1024*1024*1024)”  
  options DFLDSIZ=”(1024*1024*1024)”  
  ^D  
  *注,好象高手们都比较喜欢纯命令行,连个VI也不舍得用。  
  #config ORACLE  
  #cd ../compile/ORACLE  
  #make depend install  
  #reboot  
  如果你象我一样还没编译过内核,可能会出现如下提示:  
  You must build a kernel first  
  这时,只需要执行:  
  就是这句:#make depend install改成:  
  #make depend  
  #make  
  #make install就OK了。    
3. 设置Oracle的用户环境变量    昨天安装时只是创建了oracle用户,对组并没有细分。现在也补上吧。应该是个好习惯。  
  #cat >> /etc/group  
  oraoper:*:97:oracle  
  oradb:*:98:oracle  
  oracle:*:99: #这句因为加oracle用户时自动加了,所以我并没有写。  
  ^D  
  #adduser就略过了  
  #mkdir -p /home/oracle同上  
  #chown -R oracle:oracle /home/oracle这句好象我当时没有执行,加上  
  接下来是关键了  
  #cat > /home/oracle/.profile  
  ORACLE_HOME=/usr/opt/ora9i/product/9.2.0.1.0  
  ORACLE_SID=ORACLE  
  PATH=$ORACLE_HOME/bin:$PATH  
  PS1='oracle-freebsd> '  
  export ORACLE_HOME ORACLE_SID PATH PS1  
  ^D  
  如果你没有DNS,需用要在hosts文件里加上  
  #echo “<your IP address> <hostname>” >> /etc/hosts  
  准备好了,现在可以进行安装了。  
  cd /usr/local/ora9i/Disk1「我把安装包解到这里了」  
  #xhost +local:oracle #给oracle用户本地访问X的权利  
  #su ? oracle  
  #export DISPLAY=:0  
  #cd /usr/local/ora9i/Disk1  
  #./runInstaller  
  我在运行runInstaller时出现了一个错误:  
  ELF binary type=”0” not known.  
  ./runInstaller:1:Syntax error:”(“unexpected.  
  经过google+测试,可以运行#kldload linux来解决『这个应该在内核编译时指定选项来搞定吧,有时间试一下。』  
  果然可以安装了,选择Custom方式,只安装Oracle 9i Database,安装过程出现15处错误,全部ignore了。网上有很多人说他们在Linux上安装时也出现这样的错误,诸如:  
  Error in invoking target ctx_on of make file:  
  /usr/opt/ora9i/product/9.2.0.1.0/rdbms/lib/ins_rdbms.mk  
  不过还好,全部安装完毕。  
  结尾的时候运行Net Assistant出错,Agent时出错,创建数据库时出错。(是我echo i586的错误)  
  运行sqlplus时,提示:libclntsh.so找不到  
  果然在lib里没有它,  
  按Brian C. Ledbetter所说需要:  
  #LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH  
  我一开始采用的是在安装文件里「安装文件在/usr/local/ora9i」执行  
  find . -name 'libclnt*' -print  
  结果发现在  
  ./Components/oracle.swd.oui/2.2.0.12.0/DataFiles/Expanded/bin/linux/libclntsh.so[.9.0]  
  sqlplus终于可以运行了,不过还是有错误:  
  oracle-freebsd> sqlplus /nolog  
  ....  
  SQL> connect / as sysdba 
查看本文来源