CentOS程序包管理、下
阿新 • • 發佈:2018-04-10
程序包管理CentOS程序包管理(3)
應用程序的編譯安裝(C/C++) 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
應用程序的編譯安裝(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:
2.使用項目管理工具"make"進行編譯;
註意:有一些應用程序在實施編譯操作之前需要測試(make test)
3.使用"make install"命令進行編譯後的二進制文件的最後的安裝;
編譯安裝完成以後的收尾工作:
1.導出二進制文件的路徑;
2.導出庫文件路徑;
3.導出頭文件路徑(可選);
4.導出幫助文件路徑;
嘗試編譯安裝httpd:(這些安裝包首先要事先存在於你的系統內存當中,如果沒有可以到相關網站進行下載)
~]# 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
CentOS程序包管理、下