<postfix郵件服務下mysql的升級>

Linux.應用發表於2014-06-17

本片服務的環境的紅帽的企業版6.5 的,6.3的測試可能會略有不一樣,不過方法大致是一樣的。

 

當前系統的postfix的版本為 postfix-2.6.6-2.2.el6_1.x86_64

 

我們要向使用最新的就要去網上dow下最新的。獲取新的postfix的包 postfix-2.11.0.tar.gz

解壓 後會生成一個目錄,切換到此目錄下。  cd postfix-2.11.0

 

我們之前的文章提到過要是有.spec的檔案可以打裝成安裝包,直接安裝就很方便了 find -name '*.spec',發現沒有.spec這樣的檔案。

我們知道很多原始碼包的編譯安裝都是從INSTALL這個檔案中獲取幫助。

 

vim INSTALL //可以檢視到安裝升級的幫助,下面是檔案裡的關鍵行模板。

$ make -f Makefile.init makefiles

找到關鍵的行,生成編譯檔案,進行編譯 make -f Makefile.init makefiles 缺少庫檔案,安裝庫檔案。

 

6.3的版本mysql-devel這個包包。要是6.5的話,直接裝 yum install db*-devel -y這樣就ok了

 

然後重新編譯 make -f Makefile.init makefiles,編譯完成後會發現mysql這個外掛消失了,顯然這不是我們想要的結果。

可以檢視到到mail服務所支援的服務和外掛

postconf -a

postconf -A

postconf -m

make tidy //編譯完成或失敗都會產生很多臨時檔案,會造成我們日後其他服務的障礙,清除編譯生成的臨時檔案

 

cd README_FILES/  //我們也知道很多原始碼包都一樣,除了INSTALL可以獲取幫助,下一個就是 README_FILES目錄,裡面寫了很多關於mail其他外掛的升級方案。

 

less MYSQL_README //檢視mail下mysql的編譯幫助

找到下面的行:他會提示說,如果你是其他linux版本使用上面這個,要是 Solaris就使用下面這個,當然下面的只是模板。

/*

In order to build Postfix with mysql map support, you will need to add - DHAS_MYSQL and -I for the directory containing the mysql headers, and the mysqlclient library (and libm) to AUXLIBS, for example:

    make -f Makefile.init makefiles \         'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include' \         'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm'

On Solaris, use this instead:

    make -f Makefile.init makefiles \         'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include' \         'AUXLIBS=-L/usr/local/mysql/lib -R/usr/local/mysql/lib \             -lmysqlclient -lz -lm'

*/

 

 

下面的版本是6.5的,6.3的略有不一樣,不過方法一樣

rpm -ql mysql-devel  //檢視mysql的編譯/庫 路徑,為什麼需要下面的路徑,上面的編譯會呼叫gcc和庫檔案,很多軟體都是c寫的,它需要找到c和庫的標頭檔案。.h開頭的都是c檔案。

這個是6.5 的,上面mysql編譯,把這兩個路徑貼上過去就ok了,

/usr/include/mysql/sslopt-case.h

/usr/lib64/mysql/libmysqlclient.so

6.3

/usr/include/mysql/typelib.h
/usr/lib/mysql/libmysqlclient.so
的是下面的樣子:

 

mkae tidy  //清除上次上次編譯失敗的檔案,

make -f Makefile.init makefiles

CCARGS表示巨集。用於替換makefile中的預設值 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql' //-I路徑   表示在指定路徑搜尋標頭檔案

-lz        表示搜尋libz.so或者libz.a,這裡用了縮寫的形式,只寫了一個z,同理lmysqlclient就表示libmysqlclient.so/libmysqlclient.a

'AUXLIBS=-L/usr/lib64/mysql -lmysqlclient -lz -lm'

 make upgrade //編譯完要升級

  postconf -m  //這次可以看到mysql外掛了

下面的屬於測試,發封郵件測試下ok不?

postconf -n //可以檢視到mail的一些引數

postconf -e inet_interfaces=all //所有人可以使用mail服務 postfix reload //重新載入

postfix stop postfix start netstat -antple

 

 

 

相關文章