程序包管理:rpm、yum以及(make)源代碼編譯安裝
在Linux上安裝程序一般都有三種方法:源代碼編譯安裝,rpm包安裝和rpm包的前端安裝yum, (rpm,和yum程序包管理器是針對CentOS6平臺的)
程序包管理方式都大同小異: 源代碼–>目標二進制格式(二進制程序、庫文件、配置文件、幫助文件)–>組織稱為一個或者幾個包文件;包含的功能:安裝、升級、卸載、修復、查詢、校驗。
程序包的命名方式: 源代碼:NAME-VERSION.tar.gz VERSION:major.minor.release;rpm包:NAME-VERSION-release.os.arch.rpm; VERSION:major.minor.release
第一:源代碼編譯安裝
一般源代碼都是打包了的文件格式有:*.tar.gz,*.tar.bz2,*.tar.xz等等
步驟:
1), 解壓包,tar -zvxf|jvxf|Jvxf PACKAGE; 可以不用指定解壓方式
2), 切換到解壓目錄:先看看INSTALL 和 README;
3), ./configure; 通過選項傳遞參數,指定啟用相關特性,安裝路徑,執行時參考Makefile,讓后生成makefile;還有檢查外部環境變量
相關選項:–help 獲取這個源代碼包中,配置相關信息的選項(可能每個包都是不同的);
–prefix=/path/to/somedir :指定安裝的目錄, 默認是安裝到/usr/local;
–sysconfdir=/path/to/somedir ;配置文件的安裝目錄;
–builddir=/path/to/somedir
4) make && make install ; 編譯和建立相應的程序文件
安裝后配置程序環境
1), 導出二進制文件,編輯:/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
第二、rpm包管理(CentOS6平臺測試的)
1,程序包的組成清單:
文件清單和安裝和卸載時運行的 腳本
2,數據庫包含的信息(CentOS系列/var/lib/rpm
程序包的名稱和版本;依賴關系;功能說明;安裝生成的指定文件路徑及校驗信息
3,獲取一個包,我們看其合法性和完整性:一是,獲取程序包的時候,一般都是在官方獲??;二是驗證完整性:rpm -V package
https://www.linux178.com/linux/6.html :可以參考這個
rpm命令 主要包含下列幾類:
安裝:-i
升級:-U,–update
卸載:-e,–erase
查詢:-q,–query
校驗:-V,–verifyf
數據庫維護:–builddb
安裝:
-v 詳細信息;-vv 更詳細的信息
-h:以hash進度條顯示安裝百分比,每個#表示2%的進度
–test:測試安裝,檢查報告依賴和沖突
–nodeps 忽略依賴關系,不建議使用
-ivh –replacepkgs ;刪除必要的程序文件,而又找不回來,就重新安裝
–nosignature:不檢查包的簽名
–nodigest:不檢查包完整
升級:
–force 強制執行
–oldpackage 降級到老版本
-U,升級或者安裝
-F,系統沒有老版本,就不能升級操
注意:不建議系統內核升級,linux支持多版本內核并存,所以直接安裝多版本內核就行
卸載:
-e 卸載
–allmatches 卸載所有匹配指定名稱的程序包各版本
–nodeps:忽略依賴關系
–test:測試卸
查詢:
rpm {-q|–query} [select-options] [query-options]
-q 查詢是否安裝及包的版本
-a,–all:查詢所有已經安裝過的包
-qa :查詢系統上所有已經安裝的包
-qf somefile :查詢這個文件所有哪個包生成的
-p,–package PACKAGE_FILE:用于實現未安裝的程序包的安裝后生成哪些文件而進行的查詢
–whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個程序包提供
–whatrequires CAPABILITY:查詢指定的CAPABILITY依賴于哪個程序包
[query-options]
–changelog :查詢程序的日志,就是它的故事
-l:列出一個程序包安裝生成所有的文件列表
-i,–info 程序包相關的信息,版本號,大小,包組
-c,–configfiles :查詢指定程序包的配置文件
-d,–docfiles,查詢指定的程序包的幫助文檔
–provides:查詢指定程序提供了什么功能
-R,–requires :查詢指定程序包的依賴關系
–scripts :查詢定指定程序包中使用的腳本
校驗:
-V:校驗查詢,查詢安裝后文件是否被修改過
rpm -V 程序
rpm {-V|–verify} [select-options] [verify-options]
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P caPabilities
導入校驗方式:
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 : 導入公鑰
手動驗證:rpm -K PACKAGE_FILE
重建數據庫
/var/lib/rpm ; rpm數據庫位置
rpm查詢操作就是基于此數據庫實現的
rpm { –initdb | –rebuilddb } [–dbpath=/tmp/rpm]
–initdb :初始化數據庫,當前無數據庫時,可實現創建一個新的數據庫,當前有時不執行任何操作
–rebuilddb:重新構建,有數據庫,但是不完整
第三、yum源安裝
yum源安裝—>配置文件指定服務器(URL:統一資源配置服務)—>匹配包列表文件—>下載相關聯的程序包安裝,yum repository:yum repos;存在rpm包的庫,以及包相關的元數據文件(存放特定目錄下:repodata)
支持的文件服務器有:ftp:// ;http://; nfs:// ; file:///
yum的客服端:配置文件
/etc/yum.conf : 為所有倉庫提供公共配置
/etc/yum.repos.d/*.repo ;為倉庫的指向提供配置
倉庫的定義:查詢文檔(man yum.conf),基本格式
[repositoryid]
name=some name for this repository
baseurl=url://path/to/repository
enabled={1|0} 是否啟用此倉庫,默認開啟的
gpgcheck={1|0} 是否校驗簽名信息
gpgkey=URL ;指明秘鑰文件
enabledgroups:支持組的方式管理此程序包
failovermethod 隨機
安裝:
yum install package1 ….. ;默認安裝最新版本的程序包,可以安裝指定 版本號的程序包
yum updates [package1] … 升級
yum check-update ; 檢查可用升級
yum remove|erase package1 … 卸載
yum info ;查包的信息
yum provides | […] 查看某文件有哪個包提供的 相當于 rpm -qf PACKAGE_FILE
yum clean [packages|metadata|all} 清楚本地指定相關緩存
yum search string1 [….] 以指定關鍵字搜索程序包名以及summary信息
yum deplist package1 … 查看指定包的依賴關系
yum history : 查看使用yum 操作的相關事務歷史(使用yum的日志) ,stats :查看統計數據
–nogpgcheck 不檢查秘鑰
-y 自動選擇“yes”
-q 安靜安裝,不輸出信息
-noplugins:禁用所有插件
-
yum的repo配置文件中可用的變量
$releasever:當前系統的發新版的主版本號
$arch:系統架構
$basearch:基礎平臺
$YUM0-YUM9 ;自定義的變量
比如配置本地光盤的Package ,(掛載到/mnt/cdrom
備份原有的.repo文件,vim /etc/yum.repos.d/CentOS-local.repo,如下:
[Base]
name=CentOS Linux release 7.3
baseurl=file:///mnt/cdrom/
enable=1
gpgcheck=1
gpgkey=file:///media/RPM-GPG-KEY-CentOS-7
實例:
lrzsz安裝
rpm -ivh /home/giveup/soft/lrzsz-0.12.20-27.1.el6.x86_64.rpm
安裝zsh為例,利用yum源安裝
~]# yum install zsh
原創文章,作者:不忘初衷,如若轉載,請注明出處:http://www.www58058.com/66369
yum可結果后面的http進行搭建,加油?。?!