glibc升級

將系統自帶的glibc 2.3.4 升級到 glibc2.5
工作環境:redhat AS 4  2.6.9
注意:必須準備系統啓動盤,或者其它工具(當系統無法啓動時)
今日下載了飛信安裝程序以及庫文件,決定安裝到linux 上,解壓安裝程序和庫文件,將庫文件cp到/usr/lib下,運行:ldd 飛信程序,提示錯誤,需要glibc 2.4,於是察看資料,決定升級glibc
升級過程操作如下;
運行:/lib/tls/libc.so.6
可以查看到當前的glibc版本。
安裝之前,升級內核,使其支持glibc2.5,我將內核升級到 2.8,重起完成。
解壓下載好的glibc2.5
由於先前編譯出現權限拒絕錯誤,所以我將源代碼2.5授權爲777。
在/opt下建立 glibc目錄,因爲glibc不可以在它自己的目錄內編譯。
進入glibc,執行:
#:sh /path/glibc2.5/configure  --prefix=/usr  回車
開始。。。。。。。。。。。。。。。完成,沒有出現錯誤,
繼續 make  回車
.......................................................................完成。沒有出現錯誤
最後一部
make install 回車
。。。。。。。。。。。。。。。。出現錯誤;
rm: relocation error: /lib/tls/libc.so.6: symbol _dl_out_of_memory, version GLIBC_PRIVATE not defined in file ld-linux.so.2。。。。。。。。。。。。。。
 
安裝失敗後,輸入任何命令都是無效的,系統只會重複"relocation error: /lib/tls/libc.so.6: symbol _dl_out_of_memory, version GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference"的錯誤信息,重新啓動計算機在啓動中就會失敗,根本無法進入原Linux系統。
 
出現這樣的錯誤的原因是Coreutils的應用程序都依賴於/lib/tls/下的動態庫,在make install的時候,/lib/ld-linux.so.2從原來指向ld-2.3.4.so被改爲指向ld-2.5.so,但這個時候/lib/tls/libc.so.6指向的仍然是/lib/tls/libc-2.3.4.so。/lib/ld-linux.so.2和/lib/tls/libc.so.6各自指向不同版本的庫文件導致了Coreutils的命令執行失敗,從而make install也失敗。
 
這時,我用我準備好的Linux啓動光盤,啓動系統,掛在分區,把原根文件系統的/lib/tls/下的鏈接全部改爲指向2.5版本的庫文件,具體就是/lib/tls/libc.so.6,/lib/tls/libm.so.6, /lib/tls/libpthread.so.0和/lib/tls/librt.so.1這4個軟鏈接分別指向libc-2.5.so, libm-2.5.so,libpthread-2.5.so和librt-2.5.so。libthread_db.so.1仍然是指向libthread_db-1.0.so,但這個時候/lib/libthread_db-1.0.so已經是Glibc2.5版本的了,原/lib/tls/libthread_db-1.0.so必須被替換爲Glibc2.5版本的libthread_db-1.0.so。
 
如下;
cd  /mnt/hda3/lib/tls
# cp -f ../libthread_db-1.0.so .
# cp ../libc-2.5.so .
# cp ../libm-2.5.so .
# cp ../libpthread-2.5.so .
# cp ../librt-2.5.so .
# ln -sf libc-2.5.so libc.so.6
# ln -sf libm-2.5.so libm.so.6
# ln -sf libpthread-2.5.so libpthread.so.0
# ln -sf librt-2.5.so librt.so.1
然後重新啓動系統,發現啓動完成,進入系統。
由於上次執行安裝出現錯誤,所以繼續執行
make install
安裝完成。沒有出現錯誤。
運行:/lib/libc.so.6
GNU C Library stable release version 2.5, by Roland McGrath et al.
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 3.4.6 20060404 (Red Hat 3.4.6-10).
Compiled on a Linux >>2.6.28<< system on 2009-08-21.
Available extensions:
        crypt add-on version 2.1 by Michael Glad and others
        GNU libio by Per Bothner
        NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
        Native POSIX Threads Library by Ulrich Drepper et al
        BIND-8.2.3-T5B
Thread-local storage support included.
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.
升級完成。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章