Ubuntu cpan install DBD::mysql

由cpan來安裝perl的套件是一件非常簡單的事,但是當在安裝DBD::mysql時卻出錯了。

首先當我們由cpan安裝DBD::mysql時,它已為我們下載並解壓縮完成了。所以只要到它解壓縮的目錄下完成,它未完成的工作就能完成安裝。

在ubuntu下cpan的工作目錄為「/home/userNmae/.cpan/bulid/套件解壓後的目錄」。以我為例路徑為「/home/jerry/.cpan/bulid/DBD-mysql-4.019-DaHvAe/」。

進到目錄後須要先用 「perl Makefile.PL」指令建立設定檔(編譯時用的),但當我們執行上述指令時,會告知我們要設定「mysql_config」這個檔案。

原來是沒有先看清楚「README」和「INSTALL.html」(被解壓縮的檔案中),在產生設定檔前要先給些必要的參數。

先將環境變數給指定好 「#LANG=C」

這些參數可在執行「perl Makefile.PL」指令時給如下:

# perl Makefile.PL --testdb=資料庫 --testuser=使用者 \
--testpassword=密碼 --cflags=/usr/include/mysql \
--lib=/usr/lib/mysql

或是在目錄下寫個mysql_config的文字檔,裏面就是用變數指定參數值。

$testdb="mysql";
$testuser="root";
$testpassword="密碼";
$testhost="localhost";
$cflags="-I/usr/include/mysql";
$libs="-L/usr/lib/mysql";

成功的產生配置檔會看到如下的敘述:

I will use the following settings for compiling and testing:

  cflags        (mysql_config) = -I/usr/include/mysql  -DBIG_JOINS=1  -fno-strict-aliasing   -DUNIV_LINUX -DUNIV_LINUX
  embedded      (mysql_config) =
  libs          (mysql_config) = -Wl,-Bsymbolic-functions -rdynamic -L/usr/lib/mysql -lmysqlclient
  mysql_config  (guessed     ) = mysql_config
  nocatchstderr (default     ) = 0
  nofoundrows   (default     ) = 0
  ssl           (guessed     ) = 0
  testdb        (default     ) = test
  testhost      (default     ) =
  testpassword  (default     ) =
  testsocket    (default     ) =
  testuser      (guessed     ) = root

make tset
make install

就可以完成安裝

如果編譯無法成功的話,很有可以是缺少mysql套件的安裝或是mysql的開發函式庫。

apt-get install mysql-client mysql-server \
mysql-common libmysqlclient-dev

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s