1 安裝了,但相對應的lib版本不兼容
2 安裝了,版本也對了,但lib(.so.version-num)的symbolic link 不正確,沒有連結到正確的函式庫文件(.so)
1、32位 與 64位 沖突問題
解決 yum provides libX11.so
libX11-devel-1.3-2.el6.x86_64 : Development files for libX11
Repo : base
Matched from:
Filename : /usr/lib64/libX11.so
解決:
yum install libX11-devel-1.3-2.el6.x86_64
安裝 x86_64 兼容包
2、平台不兼容ARM X86
ln -s libjpeg.so.6 libjpeg.so
修改
CFLAGS = -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
為
CFLAGS = -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC-I/home/wu/jpeg-6b/jpeg/include
修改
$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
為
$(CC) $(CFLAGS) -ljpeg -L/home/wu/jpeg-6b/jpeg/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
############################
64位的centos下安裝oracle10g安裝找不到libgcc_s , 原因是沒有32位的gcc,找一個32位的,放到/usr/lib下就行了。
上幾天在安裝oracle數據庫時出現錯誤提示,通過查詢解決了相關問題,在此做記錄備查;
安裝平台:
硬件:HP DL385 G7
軟件:Liux 5.4(RHEL_5.4 x86_64)
安裝過程:
在安裝過程中,出現如下提示:
經查詢log日志如下:
INFO: mv -f /opt/oracle/product/10.2.0/db_1/bin/ctxlc /opt/oracle/product/10.2.0/db_1/bin/ctxlcO
INFO: mv ctxlc /opt/oracle/product/10.2.0/db_1/bin/ctxlc
INFO: chmod 751 /opt/oracle/product/10.2.0/db_1/bin/ctxlc
INFO: gcc -m32 -o ctxhx -L/opt/oracle/product/10.2.0/db_1/ctx//lib32/ -L/opt/oracle/product/10.2.0/db_1/lib32/ -L/opt/oracle/product/10.2.0/db_1/lib32/stubs/ /opt/oracle/product/10.2.0/db_1/ctx/lib/ctxhx.o -L/opt/oracle/product/10.2.0/db_1/ctx/lib/ -ldl -lm -lctxhx -Wl,-rpath,/opt/oracle/product/10.2.0/db_1/ctx/lib -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /opt/oracle/product/10.2.0/db_1/lib/sysliblist`
INFO: /usr/bin/ld: crt1.o: No such file: No such file or directory
collect2:
INFO: ld returned 1 exit status
make: *** [ctxhx] Error 1
INFO: End output from spawned process.
INFO: ----------------------------------
INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target 'install' of makefile '/opt/oracle/product/10.2.0/db_1/ctx/lib/ins_ctx.mk'. See '/opt/oracle/oraInventory/logs/installActions2011-12-19_04-13-15PM.log' for details.
Exception Severity: 1
INFO: The output of this make operation is also available at: '/opt/oracle/product/10.2.0/db_1/install/make.log'
INFO:
經查是由於缺少:glibc-devel包原因,查詢並安裝相關包:glibc-devel-2.5-42.i386(如果是64位的操作系統,則安裝glibc-devel-2.5-42.x86_64數據包)
后繼續安裝,后出現提示:Error in invoking target 'agent nmo nmb' of makefile '/opt/oracle/product/10.2.0/db_1/sysman/lib/ins_sysman.mk',See
'/opt/oracle/oraInvetory/logs/InstallAction2011-12-19_04-13-15PM.log' for details.
后繼續搜索,發現是由於缺少:libaio-devel包引起的,安裝:libaio-devel-0.3.106-3.2.i386 libaio-devel-0.3.106-3.2.x86_64包后,問題解決。
相關網址:http://blog.sina.com.cn/s/blog_65f2d7050100pybr.html
該網址有相關命令:rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' +命令 可用來查詢系統是否已經安裝該命令,及命令版本等信息,比較有效。
錯誤信息與以上帖子描述一致,但是glibc-devel已經安裝,所以並沒有解決我的問題,后來想到在~oracle/.bash_profile中有沒有LD_LIBRARY_PATH變量,其中的路徑有/usr/lib, 但是我locate了一下缺少的crt1.o,是在/usr/lib64中,於是將/usr/lib64加入該變量,看看是否可以解決該問題
應該是已經解決了,或者直接在bash中執行export LD_LIBRARY_PATH=XXXXX:/usr/lib64:/usr/lib
但是又出現一個問題:
INFO: gcc -o /opt/oracle/product/10.2.0/db_1/sysman/lib/nmccollector -L/opt/oracle/product/10.2.0/db_1/lib/ -L/opt/oracle/product/10.2.0/db_1/sysman/lib/ `cat /opt/oracle/product/10.2.0/db_1/lib/sysliblist` -Wl,-rpath,/opt/oracle/product/10.2.0/db_1/lib -lm `cat /opt/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm -L/opt/oracle/product/10.2.0/db_1/lib -Wl,-export-dynamic /opt/oracle/product/10.2.0/db_1/sysman/lib/snmccolm.o /opt/oracle/product/10.2.0/db_1/sysman/lib/libnmccol.a /opt/oracle/product/10
INFO: .2.0/db_1/sysman/lib/libnmcbuf.a /opt/oracle/product/10.2.0/db_1/sysman/lib//libnmadbg.a /opt/oracle/product/10.2.0/db_1/rdbms/lib/libdsga10.a /opt/oracle/product/10.2.0/db_1/lib/libserver10.a /opt/oracle/product/10.2.0/db_1/lib/libclntsh.so `cat /opt/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm
INFO: make[1]: Leaving directory `/opt/oracle/product/10.2.0/db_1/sysman/lib'
INFO: /opt/oracle/product/10.2.0/db_1/sysman/lib/snmccolm.o: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
INFO: make[1]: *** [/opt/oracle/product/10.2.0/db_1/sysman/lib/nmccollector] Error 1
make: *** [nmccollector] Error 2
INFO: End output from spawned process.
INFO: ----------------------------------
ps:這個錯誤 /home/oracle/database/product/10.2.0/db_1/sysman/lib/snmccolm.o: could not read symbols: File in wrong format
可以忽略,看起來是10.2.0.1安裝介質的BUG,那個snmccolm.o是IA32架構的。可以忽略,安裝完成后打10.2.0.3補丁即可解決。
創建實例時出現下面的錯誤:
ORA-27125: unable to create shared memory segment
【轉】http://www.eygle.com/rss/20111202.html
在某些操作系統上,當啟動數據庫或者創建數據庫時都可能出現ORA-27125錯誤,我在Oracle Linux 6上安裝Oracle 10.2.0.1,創建數據庫時就遇到了這個錯誤。
這個錯誤的解決就是修改 /proc/sys/vm/hugetlb_shm_group 文件。
以下是老楊提到過的一個問題,解決方法相同:
幫客戶解決一個Linux上數據庫無法啟動的問題。
客戶的Linux 5.6 x86-64環境,安裝數據庫后,啟動數據庫報錯:ORA-27125。
Oracle文檔上關於ORA-27125錯誤的描述為:
ORA-27125: unable to create shared memory segment
Cause: shmget() call failed
Action: contact Oracle support
查詢了一下,發現問題和linux上的hugetbl有關。
解決方法也很簡單,首先檢查oracle用戶的組信息:
[oracle@yans1 ~]$ id oracle
uid=500(oracle) gid=502(oinstall) groups=502(oinstall),501(dba)
[oracle@yans1 ~]$ more /proc/sys/vm/hugetlb_shm_group
0
下面用root執行下面的命令,將dba組添加到系統內核中:
# echo 501 > /proc/sys/vm/hugetlb_shm_group
然后啟動數據庫,問題消失。
那么hugetlb_shm_group組是什么呢?以下是解釋:
hugetlb_shm_group contains group id that is allowed to create SysV shared memory segment using hugetlb page
這里反復提到了HugePage,以下是關於HugePage的說明和解釋:
When a process uses some memory, the CPU is marking the RAM as used by that process. For efficiency, the CPU allocate RAM by chunks of 4K bytes (it's the default value on many platforms). Those chunks are named pages. Those pages can be swapped to disk, etc.
Since the process address space are virtual, the CPU and the operating system have to remember which page belong to which process, and where it is stored. Obviously, the more pages you have, the more time it takes to find where the memory is mapped. When a process uses 1GB of memory, that's 262144 entries to look up (1GB / 4K). If one Page Table Entry consume 8bytes, that's 2MB (262144 * 8) to look-up.
Most current CPU architectures support bigger pages (so the CPU/OS have less entries to look-up), those are named Huge pages (on Linux), Super Pages (on BSD) or Large Pages (on Windows), but it all the same thing.
另在安裝過程中遇到的操作系統驗證錯誤,可以通過如下方式解決:
在Linux系統中安裝oralce的過程中,如果Linux發行版本不是oracle的推薦版本,可能會報如下錯誤,導致runInstaller無法完成:
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Failed <<<<
遇到這個問題,可以通過如下三種方式解決
1、修改Linux的發行標記
如在redhat-5上安裝oracle的時候,需要將文件 '/etc/redhat-release'的內容由
Red Hat Enterprise Linux Server release 5 (Tikanga)
修改為Oracle支持的版本
Red Hat Enterprise Linux Server release 4 (Tikanga)
2、runInstaller的時候加上-ignoreSysPreReqs參數,如:
./runInstaller -ignoreSysPreReqs
3.修改oraparam.ini的參數
增加你的系統版本號
###################################################
關閉和開啟Oracle數據庫
關閉
#su - oracle
$lsnrctl stop
$sqlplus '/as sysdba'
sql>shutdown immediate
啟動
#su - oracle
$lsnrctl start
$sqlplus '/as sysdba'
sql>startup
15、其他關閉和開啟Oracle數據庫的方法