建站服務器
程序包管理之編譯源代碼安裝
為什么要進行源代碼編譯安裝?
1.對應的程序包并不能直接獲取到;
2.已經(jīng)編譯好的二進制中,尚不包含我們所需要的功能;
3.已經(jīng)編譯好的二進制中,包含的功能太多,我們并不需要;
1.想要使用某個程序包,但是找不到可用的二進制包;
2.想要使用的程序包有二進制格式的,我們所需要的的功能或特性并沒有被編譯;
程序的源代碼包有兩種格式:
原始的源代碼包:name-VERSION.tar.gz
tar xf命令釋放包中的源碼文件
rpm封裝的源代碼包:name-VERSION.release.src.rpm
rpm -ivh 將源代碼文件安裝到某個目錄中;
源代碼程序包的組織形式:
多個源代碼文件,
同一個文件的不同代碼段或者式不同文件的不同代碼段之間可能有依賴關(guān)系;
在編譯源代碼的時候,必須要首先編譯某些代碼段,或者說必須先編譯某個文件中的代碼段,然后才能進行后續(xù)的編譯;
在源代碼文件之間可能存在跨文件的依賴關(guān)系,這種依賴關(guān)系只有其作者最為清楚
程序員為了讓用戶能夠比較輕松的了解文件與文件之間,代碼段與代碼段之間的依賴關(guān)系,他們會編寫說明性文檔;
后來程序員會為每一個源代碼文件附加一個頭部信息,用以說明文件和代碼段的依賴關(guān)系,程序員開發(fā)了一個工具專門提取此類信息并匯總,結(jié)合程序員給提供的配置末班,有針對性的生成按章的說明文檔,其中包括:此次編譯調(diào)用哪個預處理器? 如何進行預處理? 調(diào)用哪個編譯器? 調(diào)用哪個匯編器? 如何進行匯編? 程序需要安裝在那個路徑下?
源代碼項目管理工具
C/C++: make
java:maven
python:buildout
說明性的文檔:makefile 這樣的文件并不是固定不變的,而是根據(jù)用戶進行選擇而進行不斷變化的
makefile文件用makefile.in(makefile.win)的模板生成的
利用configure腳本,接受用戶的選擇,并且configure腳本會將所有接收來的信息匯總到makefile.in模板上,替換模板中相應的內(nèi)容,從而生成makefile文件
程序員編寫源代碼,并且給源代碼文件增加頭部信息;提供Makefile.in的模版文件;
需要autoconf工具,生成configure腳本;
需要automake工具,并利用configure腳本接受來的所有參數(shù),創(chuàng)建makefile文件
有了正確的makefile文件,可以使用make命令來進行源代碼編譯
預處理-->編譯-->匯編-->鏈接-->生成可執(zhí)行的二進制文件
安裝二進制文件--將二進制文件復制到正確的目錄路徑中 在現(xiàn)在的源代碼編譯過程中如果在源代碼包中已經(jīng)有了configure腳本,我們還需要做下列工作
1.使用./configure腳本根據(jù)用戶所提供的選項信息生成makefile文件
2.make
3.make install
建議:在真正的安裝程序包之前最好先查看源代碼包中的install的文件,如果沒有這個文件,則查看readme的文件;
如何獲得開源程序的源代碼包
1.發(fā)布程序的官方站點 apache.org mariadb.org kernel.org
2.代碼托管站點
SourceForge
Github.com
code.google.com
在Linux系統(tǒng)上進行源代碼編譯安裝的前提:
1.編譯開發(fā)環(huán)境必須符合要求
centos6系統(tǒng)
yum groupinstallDevelopment tolls server platform development
centos7系統(tǒng)
yum groups install Development tolls
2.編譯器要符合要求
gcc,cpp,make,automake...
3.編譯時所用到的標準庫要完備 glibc,c標準庫
滿足上述條件之后,接下來可以進行源代碼編譯安裝
1.運行configure腳本
大量的選項:置頂安裝過程中所用到的各種路徑,啟動或關(guān)閉的特性等
--help:獲取該程序包所支持的所有選項
選項的分類
安裝路徑選項
--prefix=路徑(/PATH/TO/SOFTWARE_INSTALL)
系統(tǒng)類型選項
如果所有的系統(tǒng)類型選項都不選擇,則默認在本機的默認操作系統(tǒng)和本級的平臺架構(gòu)基礎之上進行編譯,也可以在編譯的時候選擇其他文件系統(tǒng)和其他的平臺類型,這種情況通常稱為交叉編譯;
可選特性選項:
--disable-FEATURE
--enable-FEATURE
在編譯源代碼的時候,選擇啟用或禁用某項功能或特性
可選程序包選項:
在編譯源代碼的時候,源代碼中的某些特性可能會依賴其他外部程序包
--with-PACKAGE
--without-PACKAGE
選擇使用或不使用外部程序包
上述命令及選項之后會在源代碼目錄中自動創(chuàng)建出makefile文件
2.make [-j] #(不能超過處理器核心數(shù))
3.make install
源代碼安裝之后,要做收尾工作
1.到處二進制程序所在的目錄到PATH變量中;
在/etc/profile.d/name.sh
export PATH=/PATH/TO/BINARY:$PATH
source /etc/profile.d/name.sh
2.導出庫文件:
編輯/etc/ld.so.conf.d/name.conf
/PATH/TO/SOFTWARE_LIBRARY
ldconfig [-v]
3.導出頭文件:
創(chuàng)建對應的符號鏈接
ln -sv /PATH/TO/HEAD_FILE /uer/include/name
4.導出幫助文件
centos7中默認已經(jīng)導出幫助文件
centos6
編輯/etc/man.config文件,在該文件中添加一個新行
MANPATH=/PATH/TO/MAN_FILE
舉例安裝httpd-2.4.18
1.首先要解決開發(fā)工具環(huán)境;
yum groupinstall Development tools
2.使用適合httpd-2.4.18版本的apr及apr-util工具;
安裝apr工具
~]# tar xf apr-1.5.2.tar.bz2 -C /usr/src
~]# cd /usr/src/apr-1.5.2
~]# ./configure --prefix=/usr/local/apr-1.5.2
~]# make
~]# make install
安裝arp-util工具
~]# tar xf apr-util-1.5.4.tar.bz2 -C /usr/src
~]# cd /usr/src/apr-util-1.5.4
~]# ./configure --prefix=/usr/local/apr-util-1.5.4 --with-apr=/usr/local/apr-1.5.2
~]# make
~]# make install
3.需要安裝pcre-devel以滿足httpd的正則表達式使用需求;
yum -y install pcre-devel
編譯安裝httpd:
~]# tar xf httpd-2.4.18.tar.gz -C /usr/src
~]# cd /usr/src/httpd-2.4.18
~]# ./configure --with-apr=/usr/local/apr-1.5.2 --with-apr-util=/usr/local/apr-util-1.5.4
~]# make
~]# make install
收尾:
1.導出二進制文件:
vim /etc/profile.d/httpd.sh
export PATH=/usr/local/apache2/bin:$PATH
source /etc/profile.d/httpd.sh
2.導出庫文件:
vim /etc/ld.so.conf.d/httpd-x86_64.conf
/usr/local/apache2/modules
ldconfig -v
3.導出頭文件:
ln -sv /usr/local/apache2/include /usr/include/httpd
網(wǎng)頁標題:程序包
文章起源:http://chinadenli.net/article2/cpddic.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、關(guān)鍵詞優(yōu)化、ChatGPT、企業(yè)建站、小程序開發(fā)、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)