一. 问题描述
问题发生的环境为:
AIX 5.3
ORACLE 10.2.0.3
在一台AIX主机里,升级oracle版本,从10.2.0.3 升级到10.2.0.5.运行runInstaller 进行补丁安装时,报如下的错误:
$ ./runInstaller -ignoreSysPrereqs
**************************************************************************
******
Has 'rootpre.sh' been run by root? [y/n] (n)
y
Error in GetCurrentDir(): 13
Error in GetCurrentDir(): 13
Error in GetCurrentDir(): 13
Starting Oracle Universal Installer...
No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed.
>>> Ignoring required pre-requisite failures. Continuing...
安装无法继续下去.
[@more@]二. 问题分析
2.1 刚开始怀疑是不是目录权限的问题,重新设置了相关目录的权限,问题依然存在,操作过程如下:
#chown -R oracle:dba /oracle
#chmod -R 755 /oracle
#chown -R oracle:dba /setup
#chmod -R 755 /setup
注: /setup目录是安装介质所在的目录.
设置了权限后,再次运行runInstaller,仍然报"Error in GetCurrentDir(): 13"错误
2.2 怀疑是不是安装介质存在问题,拷贝了一个在别的机器上可以运行的db soft的安装介质,再次安装,问题依然存在,所以排除了安装介质存在的问题.
三. 问题解决
3.1 在网上查找关于这个错误的文章,发现了一个比较有用的文章,大致内容是讲需要修改/oracle目录mount前的权限.操作如下:
#umount /oracle
#ls -ld /oracle
drwxr-xr-x 2 root system 256 Apr 17 2006 /oracle
#chown -R oracle:dba /oracle
#chmod -R 755 /oracle
#mount /oracle
上面的操作可能对一些环境有作用,遇到问题的朋友,可以先尝试一下这个步骤.不幸的是,我做了这一步以后,问题仍然存在,这时候就体会到做技术的确实比较痛苦,一丝丝.
3.2 再在网上使劲找(metalink这次帮不上什么忙,关于这个错误metalink上没有找到好的方法),终于找到一个解决方法.
原来问题出在安装介质所在目录的mount points问题.具体有什么问题呢?请看:
$cd /setup
$ ls -lt
total 6494200
drwxr-xr-x 7 oracle oinstall 256 Jun 13 15:08 Disk1
-rwxr-xr-x 1 oracle oinstall 185032 Jun 03 2010 README.html
不是很明显,一般人都看不来,就是少了一个lost+found目录
我们再看看我新建的目录/install,就知道两个目录的不同之处了(lost+found)
$ cd /install
$ ls -lt
total 2580296
drwxr-xr-x 7 oracle dba 256 Jun 13 15:57 Disk1
-rwxr-xr-x 1 oracle oinstall 185032 Jun 03 2010 README.html
drwxr-xr-x 2 oracle dba 256 Jun 13 15:54 lost+found
找到了问题的关键,拷贝介质到新建的目录,然后进行安装,这次可以正常安装了.
4. 问题总结
运行runInstaller,如果遇到Error in GetCurrentDir(): 13 错误,请做下面两步:
1. 修改软件安装的目录(/oracle)的mount前的权限.
2. 检查安装介质所在目录,有没有lost+found子目录.如果没有,干脆重新建立一个目录,然后将安装介质复制过去.(不要尝试在问题目录下手工添加lost+found目录,那是没有作用的).
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/32980/viewspace-1058510/ ,如需转载,请注明出处,否则将追究法律责任。