本節書摘來自異步社群《linux/unix openldap實戰指南》一書中的第2章,第2.3節,作者:郭大勇著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
2.3.1 yum用途及文法
yum倉庫主要用于解決軟體包依賴關系(這裡以本地yum源為例進行配置)。
yum倉庫配置檔案的文法及參數如下。
1.yum配置檔案文法
yum配置檔案文法如下。
2. yum配置檔案文法解釋
yum配置檔案的文法解釋如下。
3.yum基本指令參數介紹
讀者可以通過man yum來詳細了解每個參數的具體說明,在此不做過多解釋。
2.3.2 以軟體包形式安裝
為了簡化openldap的安裝複雜度,作者建議使用CD光牒自帶的rpm軟體包安裝。除非有特殊需求,需要定制安裝,才使用編譯方式安裝openldap。
1.安裝操作步驟
要以軟體包rpm形式安裝openldap,步驟如下。
1)配置yum源。
2)安裝openldap元件。
3)初始化openldap配置。
4)加載slapd程序。
5)擷取slapd資訊。
2.配置yum倉庫
要配置yum倉庫,需要先挂載CD光牒鏡像,指令如下。
<code># mount /dev/cdrom /mnt</code>
配置yun倉庫的指令如下:
3.清除緩存并建立緩存
清除和建立緩存的指令如下:
<code># yum clean all && yum makecache</code>
4.安裝openldap元件
安裝openldap元件的指令如下。
此時通過CD光牒自帶的軟體包安裝openldap元件完成。
5.初始化openldap配置
初始化openldap配置的指令如下:
6.啟動ldap程序slapd
openldap軟體安裝完成後,要使用它,需要啟動slapd程序來調用程式:
7.擷取openldap預設監聽的端口
要擷取openldap預設監聽的端口,指令如下:
預設openldap服務所使用的端口為389,此端口采用明文傳輸資料,資料資訊得不到保障。是以可以通過配置ca及結合tls/sasl實作資料加密傳輸,所使用端口為636,後面章節會詳細介紹實作過程。
8.擷取openldap程序的狀态
要擷取openldap程序的狀态,指令如下:
至此,通過CD光牒自帶的軟體包安裝openldap就結束了。後續的操作就是配置并添加條目,這部分在本章最後通過案例進行介紹。
2.3.3 通過源碼編譯安裝
1.通過源碼編譯安裝openldap軟體準備工作
由于編譯安裝openldap需要資料庫支援,是以openldap軟體後端資料庫可采用berkeley dbbdb、oracle、mysql、mariadb、gdbm等資料庫軟體實作資料的存儲。預設openldap采用berkeley db資料庫作為後端存儲引擎,而且openldap對berkey db的版本有一定要求,以openldap 2.4軟體版本為例,需要berkeley db 4.4版本以上,是以在編譯openldap源碼包時需要先下載下傳brekeley db源碼包,并進行編譯安裝即可。
berkeley db是由美國sleepycat software公司開發的開源資料庫系統,具有高性能、嵌入式資料庫程式設計庫,可存取任意類型的鍵(key)/值(value)對,一鍵可以存儲多個值,且支援線上并發量大的資料查詢請求。
2.安裝步驟
根據環境需求,讀者可以下載下傳相應的源碼包進行編譯安裝,作者所使用的系統為紅帽linux 6.5版本,berkey db源碼包版本為4.6.21。安裝步驟如下。
1)擷取源碼包。
2)安裝編譯所依賴的環境。
3)解壓并定義安裝屬性。
4)編譯及編譯安裝源碼包。
5)添加庫檔案及頭檔案。
3.編譯安裝berkeley db源碼包
擷取brekeley db源碼包。
可以從<code>http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads</code>擷取berkeley db源碼包。
要點:
在編譯安裝任何開源軟體時,解壓完成後都會在相應的目錄下生成installt和readme文檔,裡面介紹安裝方法以及注意事項,同樣可以到官方文檔檢視軟體的安裝手冊,提高使用者安裝的靈活性,降低編譯複雜度。
編譯安裝前,先通過yum安裝并解決編譯openldap及bdb所依賴的軟體包。
<code># yum install libtool-ltdl libtool-ltdl-devel gcc openssl openssl-devel -y 安裝依賴的軟體包</code>
解壓db-4.6.21軟體包至指定目錄。
<code># tar xfzv db-4.6.21.tar.gz -c /usr/local/src</code>
解壓berkeley db源碼包到/usr/local/src目錄下,此時會在該目錄下生成build_unix目錄,然後執行下列指令進行配置安裝即可。
定義編譯安裝屬性。
通過--prefix指定berkeley db安裝路徑,讀者可通過../dist/configure –help指令擷取berkeley db詳細的配置選項。
編譯定義安裝屬性及編譯安裝到指定的屬性中。
添加berkeley db相關庫檔案。
添加的庫檔案和頭檔案主要作為其他程式編譯安裝所調用的庫檔案和頭檔案。
通過在ld.so.conf.d目錄下建立以.conf配置檔案加載berkeley db的庫檔案,同樣也可在ld.so.conf裡面添加配檔案進行加載,ld.so.conf是系統動态連結庫配置檔案。配置完成後,使用ldconfig –v重新加載庫檔案,使系統核心重新識别,然後在編譯openldap時,才能找到berkeley db相關庫檔案。
添加berkeley db相關頭檔案。
至此,恭喜您!berkeley db編譯安裝到此就完成了。下面我們一起學習如何編譯安裝openldap軟體。但讀者一定注意,在編譯安裝openldap軟體時,要确認後端資料庫是否安裝,例如berkeley db,否則會提示找不到資料庫等錯誤。
4.編譯安裝openldap源碼包
擷取openldap源碼包。
讀者可通過<code>http://www.openldap.org/software/download/擷取openldap</code>源碼包。
解壓openldap源碼包至指定目錄。
編譯安裝openldap軟體時,需要輸出庫檔案(include和lib的路徑),否則編譯時會提示bdb資料庫版本不相容而中斷編譯操作。
編譯安裝openldap軟體。
執行make test時,可能需要花點時間進行檢測,如果存在錯誤make test會提示錯誤類型。是以作者建議讀者在編譯安裝時,一定要執行make test進行檢測,進而保證軟體的穩定性和可靠性。
添加openldap庫檔案。
添加openldap頭檔案。
至此,恭喜您!openldap編譯安裝就完成了。
2.3.4 錯誤分析、解決
如果在執行make時報如下錯誤,可以通過以下方法進行解決。
錯誤分析
在編譯時沒有輸出庫檔案和lib的路徑,是以在編譯時會出現error,可通過下面的方法進行解決。
解決方法