軟件包管理
在linux中有人多的軟件使用,比如我們使用的ifconfig,fdisk,btrfs文件系統等??赡苓@些軟件在你原有的linux系統中并不存在,那么我們如何去使用這些工具呢。我們知道windows在需要軟件的時候需要安裝,當然對于linux系統一樣需要安裝。在linux下常用的安裝工具我們使用的是rpm程序包(當然我們這邊是針對CentOS而言),那么什么是rpm,如何安裝rpm包以及使用rpm包做一些操作等,在下面的內容中將提到。
一、雜項知識整理
1、二進制應用程序的組成部分:二進制文件、庫文件、配置文件、幫助文件。
程序包管理器:debian:deb文件,dpkg包管理器
redhat:rpm文件,rpm包管理器
rpm:Redhat Package Manager
RPM Package Manager
2、源代碼包:name-VERSION.tar.gz
VERSION:major,minor,release
rpm包命名格式:name-VERSION-release.arch.rpm
3、ldd 查看二進制程序所依賴的庫文件
ldconfig是一個動態鏈接庫管理命令,用途主要是在默認搜尋目錄/lib和/usr/lib以及動態庫配置文件/etc/ld.so.conf內所列的目錄下搜索出可共享的動態鏈接庫,進而創建出動態裝入程序所需的連接和緩存文件,緩存文件默認為/etc/ld.so.cache,此文件保存已排好序的動態鏈接庫名字列表。linux下的共享庫機制采用了類似于高速緩存的機制,將庫信息保存在/etc/ld.so.cache里面,程序連接的時首先從這個文件里面查找,然后到ld.so.conf的路徑里面去詳細找,ldconfig通常在系統啟動時運行,而當用戶安裝了一個新的動態連接庫時,就需要手動運行這個命令。
4、導入公鑰:rpm -K|checksig rpmfile 檢查包的完整性和簽名
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
卸載公鑰認證:首先查出使用了那個校驗包,rpm -qa gpg*
rpm -e 卸載
二、詳細命令或事例
1、rpm包管理:安裝、卸載、升級、查詢、校驗、數據庫維護
安裝:rpm -i packagename
-v詳細信息
-vv 更加詳細的信息
-h 以#顯示進度,每個是2%
–test 測試安裝
–nodeps 無視依賴關系,不建議
–replacepkgs 重新替換安裝;不替換配置文件
rpm的自帶腳本:
–noscripts 不執行程序包腳本片段
preinstall安裝過程開始之前運行%pre: –nopre
postinstall 安裝完成之后運行%post: –nopost
postuninstall:卸載完成之后執行%postun: –nopreun
preuninstall:卸載過程真正開始之前執行%preun: –nopostun
–nosignature 不檢查包簽名,即不檢查來源合法性
–nodigest 不檢查包完整性信息
升級:rpm -U/-Fvh packagename
–oldpackage 降級
–force 強制
注意:不要對內核做升級操作;Linux支持多內核版本并存,因此,直接安裝新版本內核;
如果某原程序的配置文件安裝后曾被修改過,升級時,新版本的程序提供的同一個配置文件不會覆蓋原有,而是把新版本的配置文件重命名為FILENAME.rpmnew后提供,即保留原有,命名新文件。
卸載:rpm -e name 直接使用包名即可
–allmatches 卸載所有匹配指定名稱的程序包的各種版本
–nodeps 忽略依賴關系
–test 測試卸載,dry run模式
查詢:rpm -q name
-a 查詢所有已經安裝過的包
-p package 用于未安裝的程序包執行查詢操作
–whatprovides CAPABILITY 查詢指定的功能由哪個程序包提供
–whatrequires CAPABILITY 查詢指定的CAP被哪個包所依賴
–changelog 查詢rpm包的改進日志
-qi 程序包相關信息
-ql 程序安裝生成的所有文件列表
-qc 查詢指定的程序包提供的配置文件
-qd 查詢指定的程序包提供的文檔
–provides 列出程序包提供的CAPABILITY
-qf 查詢指定的文件由哪些安裝包生成
-qpi(l d c)用于查詢指定的未安裝的rpm包
校驗:rpm -V name 包名
校驗信息S 文件大小size
M 文件元數據改變
5 MD5校驗改變
D 設備主次代碼已經改變
L link路徑已經改變
T 文件的創建時間被改變
P 文件功能改變
數據庫重建:rpm -initdb(rebuilddb) 只能重建文件,不能重建保存的數據。
2、yum:yellowdog update modifier,rpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫指基金按定位軟件包。up2date的替代工具。
命令行選項:–nogpgcheck:禁止進行gpg check
-y 自動回答為yes
-q 靜默模式
–disablerepo=repoidglob臨時禁用此處指定的倉庫
–enablerepo=repoidglob臨時啟用此處指定的倉庫
–noplugins 禁止所有插件
配置yum倉庫:ftp:// http:// file://
配置文件:/etc/yum.repos.d/*.repo
文件名必須是.repo為結尾,名字自定;內容:
[name]定義名稱,中括號必須有
name=定義名字
baseurl:http://
enabled=1|0
gpgcheck=1|0
1為啟用,0為禁用,不寫也為啟用
gpgkey=file:///etc/pki/….
enablegroups=1|0
failovermethod=roundrobin|priority
默認是roundrobin,隨機挑選
priority:cost= 默認是1000,越小優先級越高
顯示倉庫列表:yum repolist [all|enabled|disabled]
顯示程序包:yum list [all|glob_exp1][glob_exp2]…
安裝程序包:yum install package1…
reinstall 重新安裝
升級程序包:yum update package…
降級程序包:downgrade package…
檢查可用升級:yum check-update
卸載程序包:remove | erase package…
查看程序包infomation:yum info package…
查看指定的特性(可以是某文件)是由哪個程序包所提供:yum provides| whatprovides feature1…
清理本地緩存:yum clean [all|packages|metadata|expire-cache|rpmdb|plugins]
構建緩存:yum makecache
搜索:yum search string1…以指定的關鍵字搜索程序包名及summary信息
查看指定包所依賴的能力:yum deplist package1…
查看yum事務歷史:
yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
yum history info 6
yum history undo 6 取消第6步的操作,若是安裝則安裝卸載,若為卸載則執行安裝
日志:/var/log/yum.log
包組管理:
yum grouplist
yum groupinstall group1…
yum groupdate group1…
yum groupremove group1…
yum groupinfo group1…
3、yum倉庫
yum的repo配置文件中可以使用變量:如下變量可以使用
$releasever 當前OS的發行版的主版本號
$arch 平臺,x86_64等
$basearch 基礎平臺
$YUM0-YUM9:自定義變量
例如:配置如下幾個倉庫:
http://10.1.0.1/cobbler/ks_mirror/CentOS-6-x86_64/
http://10.1.0.1/cobbler/ks_mirror/CentOS-6-i386/
http://10.1.0.1/cobbler/ks_mirror/CentOS-7-x86_64/
則根據不同的服務器平臺和版本號的不同,可以使用同樣的倉庫配置:
baseurl=http://10.1.0.1/cobbler/ks_mirror/CentOS-$releasever-$arch/
創建yum倉庫:首先在目錄中放入rpm包,使用命令createrepo創建:
createrepo /PATH,或直接在指定目錄下執行createrepo
執行成功后生成repodata的目錄,則創建成功,配置倉庫時baseurl=絕對路徑名。
三、課后練習
1、配置yum源:
[base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$in fra baseurl=http://10.1.0.1/cobbler/ks_mirror/CentOS-7-x86_64/ file:///media/cdrom http://mirrors.aliyun.com/centos/$releasever/os/$basearch gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
原創文章,作者:SilencePavilion,如若轉載,請注明出處:http://www.www58058.com/37599