歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux源碼程序安裝後的工作

Linux源碼程序安裝後的工作

日期:2017/2/28 14:35:44   编辑:Linux教程

在RedHat(CentOS)linux下,程序包的安裝一般可以分為以下幾種:第一種是已編譯好的rpm包;第二種是已編譯好的二進制程序包,這種二進制程序不用安裝,直接就可以使用;第三種是源代碼程序包。這類源程序不能直接被使用,需要把源代碼通過gcc,c++等編譯器把源程序編譯成二進制程序後才能使用。當我們從網上下載一個源代碼的程序包進行編譯安裝時,為了便於後期的管理,我們約定俗成的會把此程序安裝在/usr/local下的一個自己命令的目錄下,比如我們編譯安裝apache時,我們一般是安裝在/usr/local/apache這個目錄下的,那apache的啟動程序、幫助文件、頭文件、庫文件等都在此目錄下,當我們想要卸載apache時,直接把此目錄刪除即可。但這樣也給我們使用apache時帶來了一些不便,比如:我們要啟動、關閉apache時,都得使用“/usr/local/apache/bin/apachectl start”這樣的全路徑;當我們想獲得httpd的幫助住處時也得使用“man httpd -M /usr/local/apache/share/man”這們的方式,還有apache的頭文件,庫文件都不在系統默認能搜索到的目錄。所以在以源代碼方式安裝程序後我們要做的工作就是:

1、導出二進制程序
以apache源代碼方式安裝為例:

[root@zcj httpd-2.2.25]# ./configure --prefix=/usr/local/apache2

安裝目錄是在/usr/local/apache下

[root@zcj apache2]# ls
bin cgi-bin error icons logs manual
build conf htdocs include man modules

不知道為什麼沒有lib庫文件,在centos6.4_x64與centos5.10_x64都試過,安裝好後都沒有lib這個庫文件的相關目錄。
這樣安裝好apache後,與apache相關的二進制可執行程序都是放在/usr/local/apache2/bin這個目錄下的,但是這個目錄沒有在系統的默認PATH中,所以先得把這個目錄導出
[root@zcj apache2]# vim /etc/profile.d/apache.sh
export PATH=/usr/local/apache2/bin:$PATH
[root@zcj apache2]# . /etc/profile.d/apache.sh \\也可用“source /etc/profile.d/apache.sh”

apache.sh這個檔案的名稱可以自己定義,只要是以sh結尾即可,這樣就把“/usr/local/apache2/bin”這個放二進制程序的目錄導出來了,以後在使用“apachectl start”這樣的命令時就直接在命令行使用,不再要求一定要使用全路徑的方法。

2、導出庫文件
linux下的命令是需要庫文件才能正常運行的,用“ldconfig -v”這個命令可以搜索當前系統上的所有的庫文件,並把搜索到的結果存入“/etc/ld.so.cache”這個緩存文件。如果想查看一個命令所依賴的庫文件,則執行“ldd 命令路徑”,如:“ldd /bin/ls”就可查看"ls"命令所依賴的庫文件。
假設apache的庫文件目錄在“/usr/local/apache2/lib”,那在“/etc/ld.so.conf.d”這個目錄下新建apache.conf(名字只要以conf結尾即可)這個檔案,把“/usr/local/apache2/lib”寫入這個檔案後,再執行“ldconfig -v”這個命令即可。

[root@zcj apache2]# vim /etc/ld.so.conf.d/apache.conf
/usr/local/apache2/lib
[root@zcj apache2]# ldconfig -v | grep apache2

3、導出man文件

直接編輯“/etc/man.config”文件,在“MANPATH”新增一行即可

[root@zcj apache2]# vim /etc/man.config
……
MANPATH //usr/local/apache2/man \\新增man的路徑
MANPATH /usr/man
MANPATH /usr/share/man
MANPATH /usr/local/man
MANPATH /usr/local/share/man
MANPATH /usr/X11R6/man
……

4、頭文件的導出
為了後期的管理,我們在導出頭文件時不是以單個文件導出,而是建議以目錄為單位導出。
[root@zcj man]# ln -sv /usr/local/apache2/include /usr/include/httpd

Copyright © Linux教程網 All Rights Reserved