CentOS程序包管理(3)
應用程序的編譯安裝(C/C++)程序員
爲何要進行應用程序源代碼的編譯安裝? 1.對應應用程序的程序包不能直接獲取到; 2.在已經編譯好的二進制格式的程序的功能不包含咱們所須要的; 3.在已經編譯好的二進制格式的程序中,包含太多的咱們所不須要的功能; 軟件項目管理工具: C/C++:make Makefile 應用程序源代碼的分類: 1.由程序員直接打包的源代碼 name-VERSION.tar.gz 2.由第三方利用rpm工具製做的rpm源代碼包: name-VERSION-release.src.rpm 源代碼的組織形式: 1.一個應用程序包含多個文件; 2.某個文件中的不一樣的代碼段之間,甚至不一樣文件的代碼段之間均可能存在依賴關係; 應用程序源代碼的編譯過程: 源代碼 --> 預處理(預處理器,CPP) --> 編譯(編譯器,CC[gcc]) --> 彙編(彙編器) --> 連接(連接器) --> 用於執行操做的二進制程序文件 Makefile文件的功能: 1.包含了各個程序源代碼文件之間的關係; 2.決定文件的編譯順序; 3.使用哪一個預處理器進程何種預處理操做; 4.使用哪一個編譯器進程何種編譯操做; ... 程序員經過使用專用工具,對於全部的源代碼文件進行內容的分析和提取,並構建出一個同一的makefile文件的絕對模板,即:Makefile.in 有了這個模板,用戶能夠根據本身的需求,自行構建Makefile文件,從而能夠實現個性化的編譯過程;幫助用戶生成Makefile文件的是一個名爲"configure"的腳本; 開發工具: autoconf:幫助用戶生成configure腳本文件; automake:幫助用戶生成Makefile.in的模板文件; 建議:在獲取任何源代碼包並解壓縮以後,要去讀取其中隨程序源代碼提供的"INSTALL"或"README"類的文檔文件,以獲知該應用程序源代碼的編譯步驟; 開源應用程序的源代碼的獲取方式: 1.官方自建的資源站點: apache.org(ASF) MariaDB --> mariadb.org varnish-cache.org ... 2.代碼託管站點: SourceForge Github code.google.com Linux中進行C/C++源代碼編譯時使用的編譯器:gcc,GNU C Compiler 在使用NAT模式聯網進行軟件包的安裝的時候若是出現/var/run/yum.pid 已被鎖定,PID 爲 4040 的另外一個程序正在運行等相同問題,則~]# rm -f /var/run/yum.pid 在執行安裝命令~]# yum install gcc 編譯源代碼所需的開發環境:(程序包組) CentOS 7: Development Tools Compatibility Libraries CentOS 6: Development Tools Server Platform Development 注意:程序包組中所包含的開發環境並非很是完整,若是某個應用程序在編譯時有其餘環境要求的話,須要安裝對應應用程序的開發工具包; 若是有rpm格式的開發工具包,其名稱爲name-devel-VERSION-release.rpm,則可使用yum直接安裝; 若是沒有對應的rpm格式的開發工具包,則須要優先編譯安裝開發工具;
編譯源代碼安裝應用程序的三大步驟:
1.利用configure腳本生成Makefile文件;
~]# ./configure [option]...
--help
--prefix:選擇程序安裝的路徑;
--enable-function:
--with-function:apache
2.使用項目管理工具"make"進行編譯; 注意:有一些應用程序在實施編譯操做以前須要測試(make test) 3.使用"make install"命令進行編譯後的二進制文件的最後的安裝;
編譯安裝完成之後的收尾工做:
1.導出二進制文件的路徑;
2.導出庫文件路徑;
3.導出頭文件路徑(可選);
4.導出幫助文件路徑;ide
嘗試編譯安裝httpd:(這些安裝包首先要事先存在於你的系統內存當中,若是沒有能夠到相關網站進行下載)
1.安裝apr
~]# tar xf apr-1.5.2-tar.bz2
~]# cd apr-1.5.2
~]# ./configure --prefix=/usr/local/apr-1.5.2
~]# make [-j 4]
~]# make install工具
2.安裝apr-util ~]# tar xf apr-util-1.5.4-tar.bz2 ~]# cd apr-util-1.5.4 ~]# ./configure --prefix=/usr/local/apr-util-1.5.4 --with-apr=/usr/local/apr-1.5.2 ~]# make [-j 4] ~]# make install 3.安裝httpd ~]# tar xf httpd-2.4.29-tar.bz2 ~]# cd httpd-2.4.29 ~]# ./configure --prefix=/usr/local/apache-2.4.29 --with-apr=/usr/local/apr-1.5.4 --with-apr-util=/usr/local/apr-util-1.5.4 --with-pcre ~]# make [-j 4] ~]# make install 注:由於須要pcre的支持,因此須要事先安裝pcre-devel包; 收尾工做: 1.導出二進制文件: 建立一個文件:/etc/profile.d/httpd.sh export PATH=/usr/local/apache-2.4.29/bin:$PATH 2.導出庫文件: 建立一個文件:/etc/ld.so.conf.d/httpd.conf /usr/local/apache-2.4.29/lib64 3.導出頭文件; 建立符號連接: ~]# ln -sv /usr/local/apache-2.4.29/include /usr/include/httpd 4.導出幫助文檔: 對於CentOS7來講,在導出二進制文件時已經自動導出了幫助文檔;若是沒有成功導出,則須要在/etc/man_db.conf文件中添加一行: MANPATH_MAP=/usr/local/apache-2.4.29/bin /usr/local/apache-2.4.29/man 對於CentOS6來講,須要手動導出: 在/etc/man.config中添加一行: MANPATH=/usr/local/apache-2.4.29/man