記一次GLIB2.14升級GLIB2.18的記錄以及其中的步驟原理
阿新 • • 發佈:2020-12-15
注意:至於什麼是GLIB本篇文章不作贅述。大家在升級GLIB前記得先打個快照,以免升級以後某些程式不能正常執行。本文適用多版本,這裡只記錄2.18。
背景:由於某種生產需求,虛擬機器的環境為centos6.9,gllib2.12,而程式依賴glib2.18,故本篇文章應運而生了。
環境:centos6.9,GLIB2.12
目標:將centos6.9,GLIB2.12升級到GLIB2.18
ldd --version檢視本地GLIB版本
步驟如下:
一、下載GLIB包
curl -O http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
如果有不能聯網的同學,可以在一臺可以聯網的機器(無系統要求)預下載安裝包,然後再SCP到需要升級GLIB的虛擬機器即可。
如果有需要升級到其它版本的同學也可以到http://ftp.gnu.org/gnu/glibc/下載其他版本,然後再SCP到需要升級GLIB的虛擬機器即可。
二、解壓安裝包
tar xfglibc-2.18.tar.gz
三、進入GLIB安裝包資料夾
cdglibc-2.18
四、開始升級
mkdir build && cd build ../configure --prefix=/usr #注意了,別修改路徑 make -j2 make install
解釋:建立build資料夾並進入。執行configure檔案,並且指定make install的安裝目錄為/usr。
configure:檢查檔案編譯的相互依賴關係,並且生成makefile。
--prefix:指定安裝目錄。
- 首先檢查機器的一些配置和環境,系統的相關依賴。如果缺少相關依賴,指令碼會停止執行,軟體安裝失敗
- 根據之前檢查環境和依賴的結果,生產Makefile檔案(main job)
configure執行成功可以看到當前目錄下生成如下檔案:
當看到Makefile說明環境沒問題,可以開始安裝了。下面是一些命令的解釋。
make:編譯原始碼並生成可執行檔案。
-j2 (-jn):用make -j帶一個引數,可以把專案進行並行編譯,比如在一臺雙核的機器上,可以用make -j4,讓make最多允許4個編譯命令同時執行,這樣可以更有效的利用CPU資源。
解釋:
- make是Unix系統下的一個包。執行make命令需Makefile檔案。make會根據Makefile檔案中指令來安裝軟體
- Makefile檔案中有許多標籤,來表示不同的section。一般的,make會編譯原始碼並生成可執行檔案,其實Makefile主要就是描述檔案編譯的相互依賴關係
make install:將make階段生產的可執行檔案拷貝到相應的地方。
相應的地方:configure生成makefile時指定的地方(--prefix所指的地址)。
解釋:
- 當執行make命令不加任何引數,程式就會按照Makefile的指令在相應的section間跳轉並且執行相應的命令
- 加上install引數即執行make install時,程式只會執行install section處的命令。install section的指令會將make階段生產的可執行檔案拷貝到相應的地方。
五、檢驗一下是否升級成功
ldd --version
看到ldd (GNU libc) 2.18說明已經升級成功了。