MySQL 5.5 以上的新編譯設定模式 CMake 及相關參數替代

No Comments / 7,988 views

還在為了新的主機而雀躍時,正準備安裝 MySQL 就被潑了一大盆冷水~~~

咦?這是什麼東西啊?怎麼見都沒見過....(我嫩)

原本慣用的 ./configure 設定模式不支援,只好耐著性子仔細爬文....

找到「Section 2.11, "Installing MySQL from Source."」才發現,原來改變長久以來的設定模式了.....=___=|||

This section describes how to build MySQL from source using CMake. Before MySQL 5.5, source builds used the GNU autotools on Unix-like systems.

說 5.5 以前用 GNU autotools 來編,以後就改 CMake 了。(大概是想把 MySQL 轉型為商用來搶錢吧?心中默默呼喊著瑪莉亞...)

In MySQL 5.5, CMake is used as the build framework on all platforms. For instructions beyond those given here on using CMake to build MySQL, see http://forge.mysql.com/wiki/CMake.

重點是這個,如果 MySQL 5.5 以後都改用 CMake 了,那要怎麼設定參數,就得看上述的網址。

不過,這裡我把自己的參數貼上來先,要看詳細的自己去查囉。

# cmake -DMYSQL_DATADIR=/base/MySQL/data
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DEXTRA_CHARSETS=all
-DMYSQL_UNIX_ADDR=/base/MySQL/socket
-DMYSQL_TCP_PORT=3306
-DMYSQL_USER=mysql
-DCMAKE_INSTALL_PREFIX=/base/MySQL
-DINSTALL_SBINDIR=bin

CMake參數對照關係

--localstatedir=/base/MySQL/data     =========>   -DMYSQL_DATADIR=/base/MySQL/data
--with-charset=utf8    ====================>   -DDEFAULT_CHARSET=utf8
--with-collation=utf8_general_ci     ===========>   -DDEFAULT_COLLATION=utf8_general_ci
--with-extra-charsets=all      ================>   -DEXTRA_CHARSETS=all
--with-unix-socket-path=/base/MySQL/socket    ==>    -DMYSQL_UNIX_ADDR=/base/MySQL/socket
--with-tcp-port=3306      ==================>     -DMYSQL_TCP_PORT=3306
--with-mysqld-user=mysql    ===============>     -DMYSQL_USER=mysql
--prefix=/usr    ========================>     -DCMAKE_INSTALL_PREFIX=/base/MySQL
--sbindir=EPREFIX/sbin     ================>     -DINSTALL_SBINDIR=bin

其實我發現這個 cmake 笨笨的,它的 prefix 路徑替換和參數的使用方式有問題,應該是它並沒有依據個別的平台去修正慣用的安裝路徑。以 FreeBSD 慣用的 /usr/local/sbin 或 /usr/local/bin 來看,它的預設安裝是把全部東西裝入 /usr/local/mysql。但是,如果用 -DCMAKE_INSTALL_PREFIX=/usr 的話,最後安裝的位置就在 /usr 裡面(跟用 ./configure 方式作的結果不同)。最後,就乾脆把程式裝入自己慣用的資料庫區域去算了。

另外,如果去研究 cmake 之後所產生的 CMakeCache.txt 也會發現,文件裡講的一些對應參數,在這個設定檔中,卻被標注成

//No help, variable specified on the command line.
DEFAULT_CHARSET:UNINITIALIZED=utf8

真讓人懷疑這個 CMake 到底有沒有搞懂安裝的人想要什麼狀態呢?

總之,繼續觀察後續發展~~還有瑪莉亞的動向。

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Post to Twitter Post to Plurk Post to Digg Post to Facebook

Facebook comments:

Leave a Reply

You must be logged in to post a comment.