一、源碼包
1、源碼包:未被編譯製作成二進制格式的rpm包
2、源碼包命名格式: packetname-version-release.src.rpm
3、源碼包的安裝:需要使用rpmbuild命令編譯成爲二進制的rpm包才能進行安裝
4、源碼包的有點:系統兼容性強
源碼rpm包在指定的OS上進行編譯,編譯成爲目標代碼,在將目標代碼進行彙編,成爲二進制代碼
5、源碼包安裝流程:
源碼包 ---> 預處理 ---> 編譯爲目標代碼 ---> 彙編爲二進制代碼 ---> 連接 ---> 執行
6、C語言程序源碼編譯安裝三步驟:
通過項目管理器make調用編譯器(gcc等),並依賴configure(腳本模板)、Makedike.in(腳本選項),makefile文件,進行源碼程序的打包、構建、編譯
步驟一: ./configure:
通過選項傳遞參數,指定啓用特性、安裝路徑等;
執行時會根據用戶的指定及Makefile.in文件生成makefile;
步驟二:make
檢查各源碼程序依賴的其它程序文件及外部環境;
根據makefile,構建應用程序
步驟三:make install:
將構建的二進制程序放到指定的路徑,相當於cp命令、
補充:當./configure執行報錯的時候,需要查看報錯信息,即使處理
否則make將無法執信(如:報錯沒有依賴關係的外部環境,則需要安裝依賴環境)
7、源碼編譯的相關工具
autoconf:生成./configure腳本
automake:生成Makefile.in腳本選項
8、常見編譯器:
c/c++ :gcc(GNU C Complier),集成了其它編譯器,能編譯C及C之外的一些源代碼如java
二、C源碼程序編譯安裝示例
1、環境準備:
開發工具:make,gcc等
開發環境:開發庫(glibc:標準庫)、頭文件
可直接以包組形式安裝開發環境“
[root@localhost ~]# yum grouplist | grep Development
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Development and Creative Workstation
Development Tools
[root@localhost ~]# yum groupinstall "Development Tools"
2、獲取源碼程序
[root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.41.tar.bz2
[root@localhost ~]# ls
httpd-2.4.41.tar.bz2 tree-1.6.0-10.el7.x86_64.rpm
[root@localhost ~]# tar -jxvf httpd-2.4.41.tar.bz2 -C ./
3、查看INSTALL說明及./config 選項
[root@localhost ~]# cd httpd-2.4.41
[root@localhost httpd-2.4.41]# cat INSTALL
[root@localhost httpd-2.4.41]# ./configure --help
安裝路徑的設定:
--prefix=/指定路徑 #指定默認的安裝路徑
--sysconfdir=/指定路勁 #指定配置文件的安裝路徑
...
System types:系統類型
Optional Features:可選特性
--disable-特性
--enable-特性
Optional Packages:依賴包
--with-包
--without-包
4、編譯安裝
./configure:
[root@localhost httpd-2.4.41]# mkdir -p /root/httpdHome/conf
[root@localhost httpd-2.4.41]# ./configure --prefix=/root/httpdHome --sysconfdir=/root/httpdHome/config
make編譯:
make # 普通編譯
make -j # 多線程編譯,加快編譯速度
make install