2017-08-10 41 views
1

我正在嘗試更新符號鏈接libc.so.6。它正確地指向libc-2.17.so。我需要將它指向libc-2.18.so。我試圖做一個符號鏈接,但沒有任何工作。我也試圖解開鏈接符號鏈接。如何在RedHat上更新libc.so.6的符號鏈接?

如何更新符號鏈接?我看到多個問題,但沒有爲我工作(包括ldconfig)。

我希望有人有答案。所有的

+0

你可以發佈你的實際符號鏈接和libc-2.8.so位置的完整路徑嗎? –

+0

libc.so.6位於/lib64/libc.s0.6。它目前指向/lib64/libc-2.17.so。我安裝了最新的glibc 2.18並將其放入/lib64/libc-2.18.so。 – ksoop

+0

請注意,更改庫的文件名不會立即生效。例如,如果您遇到有關'GLIBC_2.18'符號版本的錯誤,則此更改後錯誤將保留。 –

回答

-1

首先,你必須做的ls -l/lib64目錄/ libc的*看到所有的鏈接和libc庫

然後做:

cd /lib64 
unlink libc.so.6 
/sbin/sln /lib64/libc-2.18.so /lib64/libc.so.6 

應該這樣做。

請注意,當您取消鏈接libc.so.6在您的服務器上沒有任何功能可以正常工作。否ls,no cp,甚至不是ln。所以,你必須使用SLN代替(SLN是ln靜態鏈接版本)

+0

謝謝波格丹。我會嘗試這個,我會讓你知道結果。 – ksoop

+0

由於'/ lib/ld-linux *'(指向'/ lib/ld-2.x.so')在任何時候都必須與'libc-2.x.so' *匹配,所以*不起作用*或*每個*動態鏈接的二進制文件將無法運行(可能導致系統無法啓動)。 –

+0

@僱傭俄羅斯人和波格丹 - 這沒有奏效。我被困在嘗試從2-17更新glibc到2-18和更高。沒有它,我似乎無法繼續。有什麼建議麼 ? – ksoop

0

如何更新符號鏈接?

你要明白,GLIBC由幾百個文件,符號鏈接必須所有的人都在更新一次。

如果更新libc.so.6符號鏈接,但不會同時更新ld-linux*,則所有動態鏈接的程序將無法運行。同上,用於libpthread.solibdl.so,等等,等等

這裏犯錯誤的最有可能的最終結果是無法啓動的系統,必須用急救盤或完全重新安裝恢復。

執行此操作的最佳方法是讓包管理器執行此操作。

如果你不能這樣做,那麼你最好的選擇是從備用磁盤啓動,將根文件系統掛載到/mnt並做make install DESTDIR=/mnt

+0

sudo yum -y更新glibc不會從2-17更新到更新的版本。無論如何,我可以告訴它更新至2.18? – ksoop