一、吐槽
最近由於項目的背景,需要在中標麒麟的系統上搭建QT通過ODBC訪問人大金倉數據庫的開發環境,平常用慣了Ubuntu手到擒來的特性,實在有點不適應。在找了大半天也沒有找到麒麟提供的軟件源的情況下,我發現它有可能基於REHL6.4深度定制,就索性給它換了一套由163提供的CentOS源,結果倒是發現很多待安裝的軟件包依賴都不是很好,真是醉了。實在沒辦法只能源碼編譯走起 : (
二、安裝人大金倉
就整體的思路來說,安裝人大金倉的過程分為兩部分:一、選擇安裝特性、解壓縮文件、配置文件和環境變量,二、安裝驅動、安裝並啟動服務。在上述安裝步驟完成的基礎上,就可以創建一個數據庫實例,完成初始化活動。
我安裝過程中的問題出在執行 Root.sh 的過程中。(前面的步驟可以按照《金倉數據庫管理系統KingbaseES V7 快速安裝指南》走,一般來說問題不大)從出錯的信息出發去查找shell文件,可以發現是對應的環境變量沒有賦值,導致出現路徑中出現這個符號 $,以及找不到目錄、文件和用戶名。
解決問題的方法,就是在保存當前用戶的環境變量的文件中去添加這些變量,然后修改 Root.sh 保證 shell 文件能得到正確的值。
錯誤如下:
[root@localhost Install]# sh Root.sh
Root.sh:行20: $/Install/root.log: 沒有那個文件或目錄
Root.sh:行21: $/Install/root.log: 沒有那個文件或目錄
Root.sh:行22: $/Install/root.log: 沒有那個文件或目錄
cp: 無法獲取"$/Uninstall/rmln.sh" 的文件狀態(stat): 沒有那個文件或目錄
Root.sh: 第 247 行:cd: $/Install/startup-desktop/icons: 沒有那個文件或目錄
find: `./hicolor': 沒有那個文件或目錄
tee: $/Install/root.log: 沒有那個文件或目錄
id: $: no such user
chown: 無效的用戶: "$."
chmod: 無法訪問"$/Install/root.log": 沒有那個文件或目錄
Complete.
在解決這個問題之后,還有可能遇到動態鏈接庫找不到的問題,按照它的需求,對一些已存在的的庫,做一個軟鏈接即可。
三、配置ODBC數據源
如何配置ODBC數據源可以參照《KingbaseES系統安裝》(官方提供的手冊)。但是,在配置完 odbc.ini 與 odbcinst.ini 兩個文件之后,仍需要配置環境變量,ODBCINI 和 ODBCSYSINI 來指定上述兩個配置文件的位置。否則可能出現如下錯誤:
[zzuie@localhost Desktop]$ isql -v kingbase
[08001][unixODBC]Could not connect to the server
[08001][unixODBC]Could not connect to server;
[ISQL]ERROR: Could not SQLConnect
四、編譯安裝 QT 5.3.2
我使用的中標麒麟版本中,GCC的版本是 4.4.7 而且不包含 G++功能。要編譯安裝QT 5.3.2,至少要使用 GCC 4.8.4 且具有G++功能。可是 GCC4.8.4 已經轉移到了 C++ 上,那么問題來了,怎么安裝高版本的GCC ?
GCC 4.8 Release Series Changes, New Features, and Fixes: GCC now uses C++ as its implementation language.
This means that to build GCC from sources, you will need a C++ compiler that understands C++ 2003.
https://gcc.gnu.org/gcc-4.8/changes.html
你可以安裝一個低版本的GCC : ), 然后再安裝高版本的GCC。然后然后你就可以很歡暢地去編譯 QT 5.3.2 了
updated 2015/4/20
上述表達:“要編譯安裝QT 5.3.2,至少要使用 GCC 4.8.4 且具有G++功能”,是錯誤的。其實后來在編譯安裝QT5.3.2過程中,我使用源碼編譯安裝了GCC 4.7.0 ,在此基礎上仍然可以編譯QT5.3.2。QT官方給出的環境如下:
http://doc.qt.io/qt-5/supported-platforms.html,指出:
Platform Compiler
Ubuntu Linux 11.10, X11 (32-bit and 64-bit) As provided by Ubuntu
Ubuntu Linux 12.04, X11 (64-bit) As provided by Ubuntu
RedHat 6.5, X11 (64-bit) As provided by Red Hat
openSUSE 13.1, X11 (64-bit) As provided by SUSE
Ubuntu Release Notes
Ubuntu 11.10 includes gcc 4.6 as the default compiler. The GCC packages are built from the 4.6-2011.07 Linaro GCC release based on the GCC 4.6.1 release. See ToolChain/CompilerFlags for a summary of compiler defaults which are different from the upstream release.
Ubuntu 12.04 is distributed with a default toolchain that includes: GCC 4.6.3 (and changes from Linaro GCC 4.6-2012.02), binutils 2.22, eglibc 2.15, andLinaro gdb 7.4-2012.04.
RedHat Enterprise Linux Desktop(v.6)
Reference: https://wiki.ubuntu.com/OneiricOcelot/ReleaseNotes#GCC_4.6_Toolchain
https://wiki.ubuntu.com/PrecisePangolin/ReleaseNotes/UbuntuDesktop
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html-single/6.5_Technical_Notes/index.html#gcc
https://rhn.redhat.com/errata/RHBA-2013-1609.html
