YUM工具的工作原理,用法及源碼包的編譯安裝
_ueditor_page_break_tag_
一、 CentOS: yum, dnf
1.YUM: (Yellow dogUpdate Modifier),rpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫之間定位軟件包,up2date的替代工具
注意:yum并不是rpm的取代者,只是rpm包管理器的前端工具,是依賴于rpm包管理器的,使用yum來解決安裝問題,使用rpm來查詢等
2.yum repository(倉庫): yum repo
倉庫中存儲了眾多rpm包,以及包的相關的元數據文件(元數據文件放置于特定目錄下:repodata)
注意:repodata目錄所在的位置就是倉庫所指向的路徑
默認安裝情況下,光盤即為本地倉庫。
3.文件服務器:(倉庫本身也是一個文件服務器)
ftp://
http://
file:///(本地的,默認是光盤)
二、yum客戶端配置文件:
1./etc/yum.conf:主配置文件,為所有倉庫提供公共配置
/etc/yum.repos.d/*.repo:為倉庫的指向提供配置
2.倉庫指向的定義:(具體可以 man yum。conf)
[repositoryID]
name=Some name for this repository:
當前倉庫描述信息
baseurl=url://path/to/repository/ :
指明訪問路徑:通常為一個文件服務器上輸出的某repository
enabled={1|0}:
是否啟用倉庫,默認是啟用的
gpgcheck={1|0}:
是否對程序包做校驗(完整性和來源合法性)
gpgkey=URL
指明秘鑰文件路徑
enablegroups={1|0}
failovermethod={roundrobin(輪循)|priority(指明優先級)}:
故障轉移方法,
默認為:roundrobin,意為隨機挑選;
cost= 默認為1000 (成本值)
3.創建自定義yum倉庫
1)在/etc/yum.repos.d 下定義yum倉庫。
注意:這里定義的是兩個不同的倉庫,里面所包含的rpm包是不一樣的,如果倉庫內容是一樣的可以使用baseurl指向多個路徑,輪循,優先級都可以。
2)使用yum repolist 來查看所有的倉庫列表
三、yum命令的用法:
語法:yum [options] [command] [package …]
1.顯示倉庫列表:
repolist[all|enabled|disabled]顯示所有,啟用和禁用的
2.顯示程序包:
list
# yum list [all | glob_exp1] [glob_exp2] […]
# yum list {available|installed|updates} [glob_exp1]通配符
3.安裝程序包:
yum install package1 [package2] […]
yum reinstall package1 [package2] […] (重新安裝)
4.升級程序包:
yum update [package1] [package2] […]
yum downgrade package1 [package2] […] (降級)
檢查可用升級:
yum check-update
5.卸載程序包:
yum remove | erase package1 [package2] […]
6.查看程序包簡要信息information:
yum info […]
7.查看指定的特性(可以是某文件)是由哪個程序包所提供:
yum provides | whatprovidesfeature1 [feature2] […]
8.清理本地緩存:
yum clean [ packages | metadata | expire-cache | rpmdb| plugins | all ]
9.構建緩存:
yum makecache
10.搜索:
yum search string1 [string2] […]
以指定的關鍵字搜索程序包名及summary(總結,概括)信息
11.查看指定包所依賴的capabilities(依賴關系分析):
yum deplist package1 [package2] […]
12.查看yum事務歷史:
yum history [info|list|packages-list|packages-info|
summary|addon-info|redo|undo|
rollback|new|sync|stats]
yum history
yum history info 6
yum history undo 6
13.日志:
/var/log/yum.log
14.安裝及升級本地程序包:
* localinstall rpmfile1 [rpmfile2] […]
(用install替代)
* localupdate rpmfile1 [rpmfile2] […]
(用update替代)
15.包組管理的相關命令:
groupinstall group1 [group2] […]
groupupdate group1 [group2] […]
grouplist [hidden] [groupwildcard] […]列出所有包組
groupremove group1 [group2] […]卸載
groupinfo group1 […]顯示指定包組詳情
四、如何使用光盤當作本地yum倉庫:
1. 掛載光盤至某目錄,例如/media/cdrom
# mount /dev/cdrom /media/cdrom
注意:因為我們是手動掛載,所以機器一重啟,就會丟失。CentOS6 可以掛載到 /misc/cd 中,開機自動掛載
2. 創建配置文件
[CentOS7]
name=
baseurl=
gpgcheck=
enabled
五、yum的命令行選項:
–nogpgcheck:禁止進行gpgcheck
-y: 自動回答為“yes”
-q:靜默模式
–disablerepo=repoidglob:臨時禁用此處指定的repo
–enablerepo=repoidglob:臨時啟用此處指定的repo
–noplugins:禁用所有插件
六.yum的repo配置文件中可用的變量:
這些變量可以自動獲取當前平臺的相關信息
$releasever: 當前OS的發行版的主版本號
$arch: 平臺,i386,i486,i586,x86_64等
$basearch:基礎平臺;i386
$YUM0-$YUM9:自定義變量
實例:
http://server/centos/$releasever/$basearch/os
http://server/centos/7/x86_64
七、創建yum倉庫:
createrepo[options] <directory>
八、程序包編譯安裝:
1.編譯安裝
1)Application-VERSION-release.src.rpm–> 安裝后,使用rpmbuild命令制作成二進制格式的rpm包,而后再安裝
2)源代碼–>預處理–>編譯(gcc)–>匯編–>鏈接–>執行
3)源代碼組織格式:
多文件:文件中的代碼之間,很可能存在跨文件依賴關系
C、C++:make (項目管理器,configure –> Makefile.in –> makefile)
java: maven
2.C代碼編譯安裝三步驟:
1)/configure:
通過選項傳遞參數,指定啟用特性、安裝路徑等;執行時會參考用戶的指定以及makefile.in文件生成makefile
檢查依賴到的外部環境
2)make:根據makefile文件,構建應用程序
3)make install:復制文件到相應路徑
3.開發工具:
autoconf: 生成configure腳本
automake:生成Makefile.in
注意:安裝前查看INSTALL,README
4.開源程序源代碼的獲?。?/strong>
□官方自建站點:
apache.org (ASF)
mariadb.org
…
□代碼托管:
SourceForge.net
Github.com
code.google.com
□c/c++編譯器: gcc(GNU C Complier)
5.編譯C源代碼:
□前提:提供開發工具及開發環境
開發工具:make, gcc等
開發環境:開發庫,頭文件
glibc:標準庫
□通過“包組”提供開發組件
CentOS 6: "Development Tools",
"Server Platform Development
九、源碼包的編譯和安裝步驟詳解:
1.第一步:configure腳本
□選項:指定安裝位置、指定啟用的特性
□–help: 獲取其支持使用的選項
選項分類:
安裝路徑設定:
–prefix=/PATH: 指定默認安裝位置,默認為/usr/local/
–sysconfdir=/PATH:配置文件安裝位置
System types:支持交叉編譯
Optional Features: 可選特性
–disable-FEATURE
–enable-FEATURE[=ARG]
Optional Packages: 可選包,
–with-PACKAGE[=ARG],依賴包
–without-PACKAGE,禁用依賴關系
第二步:make
第三步:make install
2.安裝后的配置:
(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|man_db.conf文件
添加一個MANPATH
練習:
編譯安裝apache 2.2源碼包,并啟動此服務
步驟如下:
1.1)首先獲取源代碼,下載到當前主機,默認下載到家目錄中。
2)因為下載的是以tar.bz2結尾的歸檔壓縮包,所以,要解壓縮,并展開歸檔,解壓縮后生成的目錄,也默認在當前文件中;
3)進到目錄當中,可以看到有configure腳本,是可執行的,但不要著急執行,先看一下INSTALL,README和configure腳本幫助文檔;
2.安裝:
1)第一步,執行configure腳本,并指定安裝路徑等;
2)第二步,執行make
3)第三步,執行make install 生成目錄,并查看,指定的安裝路徑下是否有目錄生成;
3.安裝后的配置
1)二進制程序目錄導入至PATH環境變量中
2)導入幫助手冊。編輯/etc/man.config|man_db.conf文件,添加一個MANPATH;
3)導入庫文件路徑,編輯/etc/ld.so.conf.d/NAME.conf,添加新的庫文件所在目錄至此文件中,讓系統重新生成緩存
4)導入頭文件,基于鏈接的方式實現:
4.測試可否連接訪問
原創文章,作者:zhumengxiaotao,如若轉載,請注明出處:http://www.www58058.com/40266