程序包管理之編譯源代碼安裝
創(chuàng)新互聯(lián)專注于本溪企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城開發(fā)。本溪網(wǎng)站建設(shè)公司,為本溪等地區(qū)提供建站服務(wù)。全流程按需設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)為什么要進行源代碼編譯安裝?
1.對應(yīng)的程序包并不能直接獲取到;
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)用哪個預(yù)處理器? 如何進行預(yù)處理? 調(diào)用哪個編譯器? 調(diào)用哪個匯編器? 如何進行匯編? 程序需要安裝在那個路徑下?
源代碼項目管理工具
C/C++: make
java:maven
python:buildout
說明性的文檔:makefile 這樣的文件并不是固定不變的,而是根據(jù)用戶進行選擇而進行不斷變化的
makefile文件用makefile.in(makefile.win)的模板生成的
利用configure腳本,接受用戶的選擇,并且configure腳本會將所有接收來的信息匯總到makefile.in模板上,替換模板中相應(yīng)的內(nèi)容,從而生成makefile文件
程序員編寫源代碼,并且給源代碼文件增加頭部信息;提供Makefile.in的模版文件;
需要autoconf工具,生成configure腳本;
需要automake工具,并利用configure腳本接受來的所有參數(shù),創(chuàng)建makefile文件
有了正確的makefile文件,可以使用make命令來進行源代碼編譯
預(yù)處理-->編譯-->匯編-->鏈接-->生成可執(zhí)行的二進制文件
安裝二進制文件--將二進制文件復(fù)制到正確的目錄路徑中 在現(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 groupinstall"Development tolls" "server platform development"
centos7系統(tǒng)
yum groups install "Development tolls"
2.編譯器要符合要求
gcc,cpp,make,automake...
3.編譯時所用到的標(biāo)準(zhǔn)庫要完備 glibc,c標(biāo)準(zhǔn)庫
滿足上述條件之后,接下來可以進行源代碼編譯安裝
1.運行configure腳本
大量的選項:置頂安裝過程中所用到的各種路徑,啟動或關(guān)閉的特性等
--help:獲取該程序包所支持的所有選項
選項的分類
安裝路徑選項
--prefix=路徑(/PATH/TO/SOFTWARE_INSTALL)
系統(tǒng)類型選項
如果所有的系統(tǒng)類型選項都不選擇,則默認(rèn)在本機的默認(rèn)操作系統(tǒng)和本級的平臺架構(gòu)基礎(chǔ)之上進行編譯,也可以在編譯的時候選擇其他文件系統(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.導(dǎo)出庫文件:
編輯/etc/ld.so.conf.d/name.conf
/PATH/TO/SOFTWARE_LIBRARY
ldconfig [-v]
3.導(dǎo)出頭文件:
創(chuàng)建對應(yīng)的符號鏈接
ln -sv /PATH/TO/HEAD_FILE /uer/include/name
4.導(dǎo)出幫助文件
centos7中默認(rèn)已經(jīng)導(dǎo)出幫助文件
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.導(dǎo)出二進制文件:
vim /etc/profile.d/httpd.sh
export PATH=/usr/local/apache2/bin:$PATH
source /etc/profile.d/httpd.sh
2.導(dǎo)出庫文件:
vim /etc/ld.so.conf.d/httpd-x86_64.conf
/usr/local/apache2/modules
ldconfig -v
3.導(dǎo)出頭文件:
ln -sv /usr/local/apache2/include /usr/include/httpd
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。