RPM是RedHat Package Manager(RedHat軟件包管理工具)類似Windows里面的“添加/刪除程序”因而廣受歡迎。逐漸受到其他發行版的采用。RPM套件管理方式的出現,讓Linux易于安裝,升級,間接提升了Linux的適用度。
rpm 執行安裝包
二進制包(Binary)以及源代碼包(Source)兩種。二進制包可以直接安裝在計算機中,而源代碼包將會由RPM自動編譯、安裝。源代碼包經常以src.rpm作為后綴名。
源代碼:name-VERSION.tar.gz|bz2|xz
VERSION: major.minor.release
rpm包命名方式:
name-VERSION-release.arch.rpm
例:bash-4.2.46-19.el7.x86_64.rpm
VERSION: major.minor.release
release:release.OS
常見的arch:
x86: i386, i486, i586, i686
x86_64: x64, x86_64, amd64powerpc: ppc
跟平臺無關:noarch
程序包管理器:
功能:將編譯好的應用程序的各組成文件打包一個或幾個程序包文件,從而方便快捷地實現程序包的安裝、卸載、查詢、升級和校驗等管理操作
語法格式
rpm [option] [argiment]
常用組合命令
-ivh:安裝顯示安裝進度–install–verbose–hash
-Uvh:升級軟件包–Update;
-qpl:列出RPM軟件包內的文件信息[Query Package list];
-qpi:列出RPM軟件包的描述信息[Query Package install package(s)];
-qf:查找指定文件屬于哪個RPM軟件包[Query File];
-Va:校驗所有的RPM軟件包,查找丟失的文件[View Lost];
-e:刪除包[erase]
rpm -ivh file.rpm ?。安裝新的rpm并用#顯示進度]–install–verbose–hash
rpm -ivh –relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm #指定安裝目錄
rpm -ivh –test gaim-1.3.0-1.fc4.i386.rpm #測試安裝用來檢查依賴關系;并不是真正的安裝;
rpm -Uvh –oldpackage gaim-1.3.0-1.fc4.i386.rpm #新版本降級為舊版本,當新版本不穩定時。
rpm -qa | grep httpd #搜索指定rpm包是否安裝–all搜索*httpd*
rpm -ql httpd ?。K阉鱮pm包–list所有文件安裝目錄
rpm -q tree //#查詢程序是否安裝,安裝了會顯示軟件包名。
rpm -qpi #查看rpm包–query–package–install package信息
rpm -qpi tree-1.5.3-3.el6.x86_64.rpm #查看rpm包–file
rpm -qpR file.rpm ?。查看包]依賴關系
rpm2cpio file.rpm |cpio -div #[抽出文件]
rpm -Uvh file.rpm #[升級一個rpm]–upgrade
rpm -e file.rpm #[刪除一個rpm包]–erase
常用參數:
Install/Upgrade/Erase options:安裝,升級,卸載
-i, –install install package(s) #安裝軟件包
-v, –verbose provide more detailed output #顯示安裝的軟件
-h, –hash print hash marks as package installs (good with -v)#以(#)顯示安裝進度
-e, –erase erase (uninstall) package #刪除軟件包
-U, –upgrade=<packagefile>+ upgrade package(s) #升級更新安裝,存在即更新,不存在即安裝
{-F|–freshen} [install-options] PACKAGE_FILE… #更新升級,不存在即不安裝
--replacepkge 無論軟件包是否已被安裝,都強行安裝軟件包
–test 安裝測試,并不實際安裝
–nodeps 忽略軟件包的依賴關系強行安裝
–force 忽略軟件包及文件的沖突
Query options (with -q or –query):查詢
-q 軟件名 #查詢軟件是否安裝
-a, –all query/verify all packages #查詢所有已安裝的軟件包
-p, –package query/verify a package file #指明軟件包
-l, –list list files in package #查詢軟件生成文件列表
-d, –docfiles list all documentation files #查詢軟件(不是軟件包)生成的目錄文件
-f, –file query/verify package(s) owning file # 查詢根(/)上的文件是由哪個軟件包生成的
-c, –configfiles #查詢程序的配置文件
-R, –requires #查詢軟件的依賴關系
導入所需要公鑰:
rpm -K|checksigrpmfile檢查包的完整性和簽名
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7發行版光盤提供:RPM-GPG-KEY-CentOS-7
rpm -qagpg-pubkey*
示例
centos7環境下
若想安裝rpm包,你先得把安裝光配掛載起來
[root@localhost yum.repos.d]# mkdir /media/cdrom #創建掛載目錄(media和mnt常用來當掛載目錄) [root@localhost yum.repos.d]# mount /dev/cdrom /media/cdrom/ #掛載 mount: /dev/sr0 is write-protected, mounting read-onl #掛載成功 [root@localhost cdrom]# ls#列出/media/cdrom下的文件 CentOS_BuildTag images repodata EFI isolinux RPM-GPG-KEY-CentOS-7 EULA LiveOS RPM-GPG-KEY-CentOS-Testing-7 GPL Packages TRANS.TBL [root@localhost cdrom]# rpm --import ./RPM-GPG-KEY-CentOS-7 #導入公鑰 [root@localhost cdrom]# rpm -ivh /media/cdrom/Packages/tree-1.6.0-10.el7.x86_64.rpm #安裝tree軟件包等功能就可以使用了 Preparing... ################################# [100%] Updating / installing... 1:tree-1.6.0-10.el7 ################################# [100%]
yum
yum(全 稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器?;禦PM包管理,能夠從指定的服務器自動下載 RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。yum提供了查找、安裝、刪除某一個、一組甚至 全部軟件包的命令,而且命令簡潔而又好記。
語法
yum [options] [command] [package …]
常用選項
1 安裝
yum install :全部安裝
yum install package1 安裝指定的安裝包package1
yum groupinsall "group1"… 安裝指定的組包
2 更新和升級
yum update 全部更新
yum update package1 更新指定程序包package1
yum check-update 檢查可更新的程序
yum upgrade package1 升級指定程序包package1
yum groupupdate group1 升級程序組group1
3 查找和顯示
yum info package1 顯示安裝包信息package1
yum list 顯示所有已經安裝和可以安裝的程序包
yum list package1 顯示指定程序包安裝情況package1
yum groupinfo group1 顯示程序組group1信息yum search string 根據關鍵字string查找安裝包
4 刪除程序
yum remove | erase package1 刪除程序包package1
yum groupremove group1 刪除程序組group1
yum deplist package1 查看程序package1依賴情況
5 清除緩存
yum clean packages 清除緩存目錄下的軟件包
yum clean headers 清除緩存目錄下的 headers
yum clean oldheaders 清除緩存目錄下舊的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除緩存目錄下的軟件包及舊的headers
在使用yum之前首先要安裝yum庫。
yum倉庫的三種格式安裝
ftp://
http://
file:/// (最后一個為/路徑)
yum客戶端配置文件:
/etc/yum.conf:為所有倉庫提供公共配置
/etc/yum.repos.d/*.repo:為倉庫的指向提供配置
倉庫指向的定義:
[repositoryID]
name=Some name for this repository
baseurl=url://path/to/repository/ #必須填
enabled={1|0}
gpgcheck={1|0}
gpgkey=URL
enablegroups={1|0}
failovermethod={roundrobin|priority}
默認為:roundrobin,意為隨機挑選;
cost= 默認為1000
yum-config-manager –add-repo= http:/10.1.0.1/cobbler/ks_mirror/CentOS-X-x86_64/ 自動生成倉庫文件
yum-config-manager –disable “倉庫名" 禁用倉庫
yum-config-manager –enable “倉庫名” 啟用倉庫
示例,篇幅太長就不多做示例了!
[root@localhost repository]# yum -y install httpd #安裝httpd軟件及它所依賴的包 Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile Resolving Dependencies --> Running transaction check ---> Package httpd.x86_64 0:2.4.6-40.el7.centos will be installed --> Processing Dependency: httpd-tools = 2.4.6-40.el7.centos for package: httpd-2.4.6-40.el7.centos.x86_64 --> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.x86_64 --> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.x86_64 --> Running transaction check ---> Package apr.x86_64 0:1.4.8-3.el7 will be installed ---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed ---> Package httpd-tools.x86_64 0:2.4.6-40.el7.centos will be installed --> Finished Dependency Resolution Dependencies Resolved ===================================================================================================================================== Package Arch Version Repository Size ===================================================================================================================================== Installing: httpd x86_64 2.4.6-40.el7.centos repository 2.7 M Installing for dependencies: apr x86_64 1.4.8-3.el7 repository 103 k apr-util x86_64 1.5.2-6.el7 repository 92 k httpd-tools x86_64 2.4.6-40.el7.centos repository 82 k Transaction Summary ===================================================================================================================================== Install 1 Package (+3 Dependent packages) Total download size: 3.0 M Installed size: 9.9 M Downloading packages: (1/4): apr-1.4.8-3.el7.x86_64.rpm | 103 kB 00:00:00 (2/4): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:00:00 (3/4): httpd-2.4.6-40.el7.centos.x86_64.rpm | 2.7 MB 00:00:00 (4/4): httpd-tools-2.4.6-40.el7.centos.x86_64.rpm | 82 kB 00:00:00 ------------------------------------------------------------------------------------------------------------------------------------- Total 2.7 MB/s | 3.0 MB 00:00:01 Running transaction check Running transaction test Transaction test succeeded Running transaction Warning: RPMDB altered outside of yum. Installing : apr-1.4.8-3.el7.x86_64 1/4 Installing : apr-util-1.5.2-6.el7.x86_64 2/4 Installing : httpd-tools-2.4.6-40.el7.centos.x86_64 3/4 Installing : httpd-2.4.6-40.el7.centos.x86_64 4/4 Verifying : httpd-2.4.6-40.el7.centos.x86_64 1/4 Verifying : apr-util-1.5.2-6.el7.x86_64 2/4 Verifying : httpd-tools-2.4.6-40.el7.centos.x86_64 3/4 Verifying : apr-1.4.8-3.el7.x86_64 4/4 Installed: httpd.x86_64 0:2.4.6-40.el7.centos Dependency Installed: apr.x86_64 0:1.4.8-3.el7 apr-util.x86_64 0:1.5.2-6.el7 httpd-tools.x86_64 0:2.4.6-40.el7.centos Complete! [root@localhost repository]# yum grouplist all #查看配置的yum倉庫 Loaded plugins: fastestmirror, langpacks There is no installed groups file. Maybe run: yum groups mark convert (see man yum) Loading mirror speeds from cached hostfile Warning: no environments/groups match: all [root@localhost repository]# yum repolist all Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile repo id repo name status base cent7 repository enabled: 8,508 repository CentOS7 repository enabled: 9,007 repolist: 17,515
原創文章,作者:ladsdm,如若轉載,請注明出處:http://www.www58058.com/39621