因爲需要在linux上調用opencv的4.3的.so,此版本要求linux的glibc版本最低爲GLIBC_2.27,因此需要升級。
注意:Ubuntu 18.4版本自帶的GLIBC就是2.27的。
第一步,當然是升級gcc到9.3,升級make到4.3
解壓,執行../configure --prefix=/usr && make && make install
第二步,安裝python3.4
GLIBC_2.31需要python3.4,CentOS7自帶的python是2.7,不用刪除,直接安裝python3.4即可
從EPEL倉庫安裝
最新的EPEL 7倉庫提供了Python3(python 3.4)的安裝源,如果你使用CentOS7或更新的版本的系統你也可以按照下面的步驟很輕鬆的從EPEL倉庫安裝。
安裝最新版本的EPEL
sudo yum install epel-release
用yum安裝python 3.4:
sudo yum install python34
注意:上面的安裝方法並未安裝pip和setuptools,如果你要安裝這兩個庫可以使用下面的命令:
$ curl -O https://bootstrap.pypa.io/pip/3.4/get-pip.py
$ sudo /usr/bin/python3.4 get-pip.py
最後創建一個軟鏈接
sudo ln -s /usr/bin/python3.4 /usr/bin/python3
至此,GLIBC_2.31編譯源碼時既可以識別出python3
第三步,升級前需查看當前環境的glibc是否存在符合taos3的版本,若存在則跳過升級,此文檔假設glibc當前最高的版本爲2.17
檢查環境,可能需要安裝如下依賴庫:
yum install bison -y
yum -y install wget bzip2 gcc gcc-c++ glibc-headers
操作如下:
下載:
wget https://mirrors.aliyun.com/gnu/glibc/glibc-2.31.tar.gz
查看安裝編譯依賴:
cd glibc-2.31
cat INSTALL | grep -E "newer|later" | grep "*"
編譯:
mkdir build
# 指定安裝到具體的目錄下,此示例表示將make安裝到/opt下
cd build/
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-sanity-checks --disable-werror
# 編譯安裝
make -j4 # 此處時間較長
make install
# 解決新啓動遠程終端時報一個WARNING
make localedata/install-locales
注意:
1.升級glibc存在系統崩潰風險!!!升級前儘可能在個人環境下進行反覆測試,確保無問題後再升級生產環境!
2.當glibc版本爲2.17時千萬不要直接升級到2.25!!!2.17與2.25直接差4個版本(2.18、2.22、2.23、2.24),經反覆測試確認發現直接升級到2.25時不會自動安裝缺失的版本,而2.25又對之前的版本有依賴(個人猜測),強行安裝2.25不但安裝失敗,且會造成系統崩潰、異常(比如無法使用ls、cp等命令,無法進行遠程連接)。
3.經過本人親測,從2.17直接升到2.31是沒有問題的。直接通過!
故障處理
故障現象:假設在glibc2.17時直接升級到glibc2.25,將會出現操作系統崩潰的情況,如:大部分命令不可用、無法遠程登錄、yum報錯等。說明:出現此類問題時千萬不要重啓服務器,不要關閉當前的終端!!!