2014-04-21 15 views
0

在Linode,我們一直在進行升級以利用其新SSD固態硬盤。我們正在使用較早的Ubuntu 10.10 32位系統。是否將Linux內核升級到最新的64位更改glibc?

爲了進行新的升級,我們一直在將我們的內核從32位改爲「最新的64位」。到目前爲止,這一直運行良好(我們運行的32位軟件很高興在64位內核中運行),但我想知道這是否會改變glibc。我唯一可能關心的地方就是Linode,我們用C編譯器構建軟件,而且我不一定要更改用於構建版本的glibc版本。

是的,我知道我們應該將實際發行版升級到更新的64位Ubuntu,但這是一個更大的項目,而不是我們現在準備做的事情。所以暫時我們只想運行最新的64位內核,因爲它似乎沒有任何傷害。我們目前只關注從C源創建構建時對glibc的影響。

當然,如果有人知道運行64位內核的任何其他缺點,請隨時發言!

謝謝,

道格

+0

不,它不。基本上一個軟件包需要一組庫,包括該軟件的位數的libc。你可以在一個二進制文件上運行'ldd',並查看鏈接的庫的完整列表。 – user3159253

回答

0

看看這個例子:

64位系統:

[email protected] ~/RPM $ ldd /bin/ls 
    linux-vdso.so.1 (0x00007fffef200000) 
    libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f4b7b9d8000) 
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f4b7b7b0000) 
    libcap.so.2 => /lib64/libcap.so.2 (0x00007f4b7b5a8000) 
    libacl.so.1 => /lib64/libacl.so.1 (0x00007f4b7b398000) 
    libc.so.6 => /lib64/libc.so.6 (0x00007f4b7afe8000) 
    /lib64/ld-linux-x86-64.so.2 (0x00007f4b7bc30000) 
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f4b7ade0000) 
    libpcre.so.3 => /lib64/libpcre.so.3 (0x00007f4b7ab98000) 
    libattr.so.1 => /lib64/libattr.so.1 (0x00007f4b7a990000) 
[email protected] ~/RPM $ sudo chroot hsh/chroot/ /bin/bash 
[sudo] password for alex: 
[[email protected] /]# 

但chroot環境(用於構建)是32位位:

[[email protected] /]# ldd /bin/ls 
    linux-gate.so.1 (0xf7752000) 
    libtinfo.so.5 => /lib/libtinfo.so.5 (0xf76f8000) 
    libselinux.so.1 => /lib/libselinux.so.1 (0xf76d0000) 
    libcap.so.2 => /lib/libcap.so.2 (0xf76c8000) 
    libacl.so.1 => /lib/libacl.so.1 (0xf76b8000) 
    libc.so.6 => /lib/libc.so.6 (0xf7540000) 
    /lib/ld-linux.so.2 (0xf7730000) 
    libpcre.so.3 => /lib/libpcre.so.3 (0xf74f8000) 
    libdl.so.2 => /lib/libdl.so.2 (0xf74f0000) 
    libattr.so.1 => /lib/libattr.so.1 (0xf74e8000) 
[[email protected] /]# 

請注意ldd輸出的差異。版本號coreutils(和ls)基本相同。據我所知,使用64位內核可能有一個缺點。在64位模式下,內核本身和控制結構(內核代碼指令爲64位)需要更多內存。除此之外,我沒有注意到這種配置中的任何問題。

BTW運行的系統,其中,32位和64二進制文件和庫共存在單個系統中稱爲多拱(在上面的例子中沒有多拱,因爲第二系統有它自己的,獨立的文件系統,以我已經chrooted)。據我所知,Debian和Ubuntu都有一個可行的多拱形支持,並且apt的單個實例可以完美地管理32位和64位的套件組。

因此,理論上你可以做一個「慢速遷移」,只需在他們的32位對應物旁邊安裝64位庫,並逐個替換32位到64位的二進制文件。當然,這不會是一個最快的方法;-)但它可以變得幾乎完美無缺,沒有很長的停機時間或軟件版本或行爲的意外變化。當然,你的里程可能會有所不同,你應該仔細檢查你的條件,環境等等。

+0

非常感謝! –