程序包編譯安裝:
????????
testapp-VERSION-release.src.rpm --> 安裝后,使用rpmbuild命令制作成二進制格式的rpm包,而后再安裝;
????????
源代碼 --> 預處理 --> 編譯(gcc) --> 匯編 --> 鏈接 --> 執行
????????
源代碼組織格式:
????????????
多文件:文件中的代碼之間,很可能存在跨文件依賴關系;
????????????
C、C++: make (configure --> Makefile.in --> makefile)
????????????
java: maven
????????????
C代碼編譯安裝三步驟:
????????????????
./configure:
????????????????????
(1) 通過選項傳遞參數,指定啟用特性、安裝路徑等;執行時會參考用戶的指定以及Makefile.in文件生成makefile;
????????????????????
(2) 檢查依賴到的外部環境;
????????????????
make:
????????????????????
根據makefile文件,構建應用程序;
????????????????
make install
????????????
開發工具:
????????????????
autoconf: 生成configure腳本
????????????????
automake:生成Makefile.in
????????????
建議:安裝前查看INSTALL,README
????????
開源程序源代碼的獲取:
????????????
官方自建站點:
????????????????
apache.org (ASF)
????????????????
mariadb.org
????????????????
...
????????????
代碼托管:
????????????????
SourceForge
????????????????
Github.com
????????????????
code.google.com
????????
c/c++: gcc (GNU C Complier)
????????
編譯C源代碼:
????????????
前提:提供開發工具及開發環境
????????????????
開發工具:make, gcc等
????????????????
開發環境:開發庫,頭文件
????????????????????
glibc:標準庫
????????????????
通過“包組”提供開發組件
????????????????????
CentOS 6: "Development Tools", "Server Platform Development",
????????????
第一步:configure腳本
????????????????
選項:指定安裝位置、指定啟用的特性
????????????????
--help: 獲取其支持使用的選項
????????????????????
選項分類:
????????????????????????
安裝路徑設定:
????????????????????????????
--prefix=/PATH/TO/SOMEWHERE: 指定默認安裝位置;默認為/usr/local/
????????????????????????????
--sysconfdir=/PATH/TO/SOMEWHERE:配置文件安裝位置;
????????????????????????
System types:
????????????????????????
Optional Features: 可選特性
????????????????????????????
--disable-FEATURE
????????????????????????????
--enable-FEATURE[=ARG]
????????????????????????
Optional Packages: 可選包
????????????????????????????
--with-PACKAGE[=ARG]
????????????????????????????
--without-PACKAGE
????????????
第二步:make
????????????
第三步:make install
????????
安裝后的配置:
????????????
(1) 導出二進制程序目錄至PATH環境變量中;
????????????????
編輯文件/etc/profile.d/NAME.sh
????????????????????
export PATH=/PATH/TO/BIN:$PATH
????????????
(2) 導出庫文件路徑
????????????????
編輯/etc/ld.so.conf.d/NAME.conf
????????????????????
添加新的庫文件所在目錄至此文件中;
????????????????
讓系統重新生成緩存:
????????????????????
ldconfig [-v]
????????????
(3) 導出頭文件
????????????????
基于鏈接的方式實現:
????????????????????
ln -sv
????????????
(4) 導出幫助手冊
????????????????
編輯/etc/man.config文件
????????????????????
添加一個MANPATH
????
練習:
????????
1、yum的配置和使用;包括yum repository的創建;
????????
2、編譯安裝apache 2.2; 啟動此服務;