Linux系统管理之——软件包管理

安装、升级和卸载应用软件是影响用户对操作系统评价的决定性因素之一。

本文从基本的rpm/dpkg命令行出发,以CentOS和UBUNTU为例,介绍典型Linux系统中应用软件的管理和使用;

软件包管理工具的作用是提供在操作系统中安装,升级,卸载需要的软件的方法,并提供对系统中所有软件状态信息的查询;

RPM全称为:Redhat PacesgeManager,最早由RedHat公司制定实施,随后被GNU开源操作系统接收并成为很多Linux系统(RHEL)的既定软件标准;

DEB软件包管理工具——DPKG,全称为DebianPackage。

一、RPM

  1. 安装

    rpm {-i|--install}[install-options] PACKAGE_FILE ...

    -v:verbose,详细过程;

    -vv:更详细的信息;

    -h:以#显示程序包管理执行进度,每个#表示2%的进度;

             rpm –ivh PACKAGE_FILE…

    [install-optins ]:

    --test:测试安装,但不真正执行安装过程;

    --nodeps:忽略依赖关系;

    --replacepkgs:重新安装,替换原有;

    --ignoreos:忽略系统平台差异;

    --nodigest:不检查包完整性;

    --nosignature:不检查来源合法性;

    --oldpackage:允许降级安装;

    --noscripts:安装不执行脚本:

    %pre:安装前脚本;--nopre

    %post:安装后脚本;--nopost

    %preun:卸载前脚本;--nopreun

    %postun:卸载后脚本;--nopostun

[[email protected] Packages]# rpm -ivh--noscripts --nopost zsh-5.0.2-7.el7.x86_64.rpm 
准备中...                         ################################# [100%]
正在升级/安装...
  1:zsh-5.0.2-7.el7                 ################################# [100%]

2.升级

rpm {-U|--upgrade}[install-options] PACKAGE_FILE ...

rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

upgrade:安装有旧版程序包,则“升级”:如果不存在旧版程序包,则"安装";

freeshen:安装有旧版程序包,则"升级":如果不存在旧版程序包,则不执行升级操作;

--oldpackage:降级;

--force:强行升级;

注意:

(1)、不要对内核做升级操作;Linux支持多内核版本并存;因此,可直接安装新版本的内核;

(2)、如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一个配置文件并不会覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留;

3、查询:

rpm {-q|--query} [select-options] [query-options]

 

[select-options]

         -a:所有包;

-f:查询指定的文件由那个程序包安装生成;

-g:[-g,--group GROUP]{-p,--package PACKAGE_FILE]

         -p/PATH/TO/PACKAGE_FILE:针对尚未安装的程序包文件做查询操作;

         --whatprovides CAPABILITY:查询指定CAPABILITY([kep‘blt]能力、性能)由那个包所提供;

--whatrequires CAPABILITY:查询指定的CAPABILITY被那个包所依赖;

[query-options]

--changelog:查询rpm包的changelog;

-c:查询程序的配置文件;

-i:--info,information;

-l:查看指定程序包安装生成的所有文件;

--scripts:程序包自带的脚本片段;

-R,--requres:查询指定的程序包所依赖的CAPABILITY;

--provides:列出指定程序包所提供的CAPABILITY;

[[email protected] ~]# rpm -qf /bin/ls
coreutils-8.4-37.el6.x86_64
[[email protected] ~]#rpm -ql bash | head -10
/bin/bash
/bin/sh
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc
/usr/bin/bashbug-64
/usr/share/doc/bash-4.1.2/COPYING
/usr/share/info/bash.info.gz
/usr/share/locale/af/LC_MESSAGES/bash.mo
/usr/share/locale/bg/LC_MESSAGES/bash.mo
 [[email protected]~]# rpm -q --scripts httpd
preinstall scriptlet (using /bin/sh):
# Add the "apache" user
getent group apache >/dev/null ||groupadd -g 48 -r apache
getent passwd apache >/dev/null ||  useradd -r -u 48 -g apache -s /sbin/nologin    -d /var/www -c "Apache" apache
exit 0
postinstall scriptlet (using /bin/sh):
# Register the httpd service
/sbin/chkconfig --add httpd
/sbin/chkconfig --add htcacheclean
preuninstall scriptlet (using /bin/sh):
if [ $1 = 0 ]; then
         /sbin/servicehttpd stop > /dev/null 2>&1
         /sbin/chkconfig--del httpd
         /sbin/service htcacheclean stop >

4、卸载

rpm {-e|--erase}[--allmatches] [--nodeps] [--noscripts]

[--notriggers] [--test]PACKAGE_NAME ...

# rpm –e zsh

--allmatches
    删除所有那些包匹配PACKAGE_NAME的版本。如果PACKAGE_NAME有多个匹配,正常情况下将有一个错误说明。
--nodeps
     在没有安装包之前,不检测依赖关系。
--noscripts
--nopreun
--nopostun
     不执行同名角本。--noscripts、--nopreun –nopostun含义相同。关闭%preun、%postun脚本的响应。
--notriggers
--notriggerun
--notriggerpostun
     不执行任何指定类型的触发器脚本。--notriggers、--notriggerun、 --notriggerpostun含义相同。同时关闭%triggerun、%triggerpostun脚本响应。
--repackage
     在删除之前重新打包文件。先前安装的包将由宏%_repackage_name_fmt指定,且其创建目录也由宏%_repackage_dir指定(默认值是/var/tmp)。
--test  不真的卸载任何东西, 仅仅是经历一下这个动作。与-vv选项联合使用。

5、校验

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 differ

         包来源合法性验证及完整性验证:

完整性验证:SHA256

来源合法性验证:RSA

    公钥加密:

对称加密:加密、解密使用同一密钥;

非对称加密:密钥是成对的;

public key:公钥;公开所有人;

secret key:私钥;不能公开;

    导入所需要公钥:

rpm --import /PATH/FROM/GPG-PUBKEY-FILE

rpm -k 直接检验程序包完整性;

CentOS 7 发行光盘提供的密钥文件:RPM-GPG-KEY-CentOS-7

cd /var/lib/rpm

rpm的信息数据库;

[[email protected] ~]# cd /var/lib/rpm/
[[email protected] rpm]# ls
Basenames     __db.002 Dirnames     Installtid    Packages        Pubkeys         Sha1header
Conflictname  __db.003 Filedigests  Name          Providename     Requirename     Sigmd5
__db.001      __db.004 Group        Obsoletename  Provideversion  Requireversion  Triggername

6、数据库重建

rpm{--initdb|--rebuilddb}

--initdb:初始化

如果实现不存在数据库,则新建之;否则,不执行任何操作;

--rebuilddb:重建;

无论当前存在与否,直接重新创建数据库;

二、YUM:

  1. 软件包间的依赖关系:

    由于开源的多态性,Linux 操作系统中的软件之间的依赖性关系处理一直令用户感到头疼。

    如果 package_a 依赖于 package_b,那么在一个没有安装 package_b 的系统中,package_a 是不被系统推荐安装的,强制安装很可能会导致软件无法正常工作。

    基于以上 package_a 和package_b 的关系,在一个干净的系统中 ( 未安装package_a 或 package_b),欲安装 package_a,错误通常会表现为:

[[email protected] Packages]# rpm -ivhmysql-connector-odbc-5.2.5-6.el7.x86_64.rpm 
错误:依赖检测失败:
         libodbc.so.2()(64bit)被 mysql-connector-odbc-5.2.5-6.el7.x86_64 需要
         libodbcinst.so.2()(64bit)被 mysql-connector-odbc-5.2.5-6.el7.x86_64 需要

查询软件包依赖关系:使用rpm –qRp

[[email protected] Packages]# rpm -qRp
mysql-connector-odbc-5.2.5-6.el7.x86_64.rpm 
/sbin/ldconfig
/sbin/ldconfig
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)

需要先安装被目标软件包所依赖的软件包,但在此过程中又可能会遇到其他的依赖关系问题或嵌套的依赖关系,故而是的手工使用rpm命令解决依赖关系变得相当繁琐;故而出现了YUM,自动解决软件包依赖关系;

YUM:yellow dog,YellowdogUpdate Modifier;

YUM 基于 RPM 包管理工具,能够从指定的源空间(服务器,本地目录等)自动下载目标 RPM 包并且安装,可以自动处理依赖性关系并进行下载、安装,无须繁琐地手动下载、安装每一个需要的依赖包。此外,YUM 的另一个功能是进行系统中所有软件的升级。如上所述,YUM 的RPM 包来源于源空间,在 RHEL系列中由 /etc/yum.repos.d/ 目录中的*.repo 文件配置指定,如CentOS-Debuginfo.repo 的内容:

[base-debuginfo]
name=CentOS-6 - Debuginfo
baseurl=http://debuginfo.centos.org/6/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-6
enabled=0

YUM的系统配置文件位于/etc/yum.conf,内容如下:

[main]
cachedir=/var/cache/yum         #yum下载的RPM包的缓存目录
keepcache=0             #缓存是否保存,1保存,0不保存。
debuglevel=2             #调试级别(0-10),默认为2(具体调试级别的应用,我也不了解)。
logfile=/var/log/yum.log         #yum的日志文件所在的位置
exactarch=1             #在更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。
obsoletes=1              #这是一个update的参数,简单的说就是相当于upgrade,允许更新陈旧的RPM包。
gpgcheck=1             #是否检查GPG(GNU Private Guard),一种密钥方式签名。
plugins=1             #是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。
installonly_limit=3         #允许保留多少个内核包。
exclude=selinux*         #屏蔽不想更新的RPM包,可用通配符,多个RPM包之间使用空格分离。

yum repository:yum repo

存储了众多rpm包,以及包的相关的元数据文件(放置与特定目录下:repodate):yum应该指向的路径;

yum中文件服务器可以使用:

ftp://   http://  nfs://   file:///

yum客户端:

rpm–q yum    查询本地系统是否安装了yum软件包;

rpm–qc yum   查询yum的配置文件;

配置文件:

/etc/yum.conf   : 为所有仓库提供公共配置;

/etc/yum.repos.d/*.repo :为仓库的指向提供配置;

关于yum.conf配置文件中的参数解释可以查看man yum.conf

yum仓库指向的定义:

[fedora]      #方括号里面的是软件源的名称,将被yum取得并识别

name=Fedora $releasever - $basearch   # 这里也定义了软件 仓库的名称,通常是为了方便阅读配置文件,一般没什么作用,$releasever变量定义了发行版本,通常是8,9,10等数字,$basearch变 量定义了系统的架构,可以是i386、x86_64、ppc等值,这两个变量根据当前系统的版本架构不同而有不同的取值,这可以方便yum升级的时候选择 适合当前系统的软件包,以下同……
failovermethod=priority  
#failovermethod 有两个值可以选择,priority是默认值,表示从列出的baseurl中顺序选择镜像服务器地址,roundrobin表示在列出的服务器中随机选择
exclude=compiz* *compiz* fusion-icon*#exclude这个选项是后来我自己加上去的,用来禁止这个软件仓库中的某些软件包的安装和更新,可以使用通配符,并以空格分隔,可以视情况需要自行添加
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
#上面的一行baseurl第一个字符是‘#‘表示该行已经被注释,将不会被读取,这一行的意思是指定一个baseurl(源的镜像服务器地址)
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
#上面的这一行是指定一个镜像服务器的地址列表,通常是开启的,本例中加了注释符号禁用了,我们可以试试,将$releasever和$basearch替换成自己对应的版本和架构,例如10和i386,在浏览器中打开,我们就能看到一长串镜可用的镜像服务器地址列表。
选择自己访问速度较快的镜像服务器地址复制并粘贴到repo文件中,我们就能获得较快的更新速度了,格式如下baseurl所示:
baseurl=
ftp://ftp.sfc.wide.ad.jp/pub/Linux/Fedora/releases/10/Everything/i386/os
http://ftp.chg.ru/pub/Linux/fedora/linux/releases/10/Everything/i386/os
http://ftp.yz.yamagata-u.ac.jp/pub/linux/fedora/linux/releases/10/Everything/i386/os

enabled=1 #这个选项表示这个repo中定义的源是启用的,0为禁用
gpgcheck=1 #这个选项表示这个repo中下载的rpm将进行gpg的校验,已确定rpm包的来源是有效和安全的
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch#定义用于校验的gpg密钥

yum命令的语法:

 command is one of:
       * install package1 [package2] [...]
       * update [package1] [package2] [...]
       * update-to [package1] [package2] [...]
       * update-minimal [package1] [package2] [...]
       * check-update
       * upgrade [package1] [package2] [...]
       * upgrade-to [package1] [package2] [...]
       * distribution-synchronization [package1] [package2] [...]
       * remove | erase package1 [package2] [...]
       * autoremove [package1] [...]
       * list [...]
       * info [...]
       * provides | whatprovides feature1 [feature2] [...]
       * clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
       * makecache [fast]
       * groups [...]
       * search string1 [string2] [...]
       * shell [filename]
       * resolvedep dep1 [dep2] [...]
          (maintained for legacy reasons only - use repoquery or yum provides)
       * localinstall rpmfile1 [rpmfile2] [...]
          (maintained for legacy reasons only - use install)
       * localupdate rpmfile1 [rpmfile2] [...]
          (maintained for legacy reasons only - use update)
       * reinstall package1 [package2] [...]
       * downgrade package1 [package2] [...]
       * deplist package1 [package2] [...]
       * repolist [all|enabled|disabled]
       * repoinfo [all|enabled|disabled]
       * repository-packages <enabled-repoid> <install|remove|remove-or-reinstall|remove-or-
      distribution-synchronization> [package2] [...]
        * version [ all | installed | available | group-* | nogroups* |grouplist | groupinfo
       ]
        *  history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|roll‐
      back|new|sync|stats]
       * load-transaction [txfile]
       * updateinfo [summary | list | info | remove-pkgs-ts | exclude-updates |exclude-all |
      check-running-kernel]
       * fssnapshot [summary | list | have-space | create | delete]
       * fs [filters | refilter | refilter-cleanup | du]
       * check
       * help [command]

显示仓库列表:

repolist[all|enabled|disabled]

显示程序包:

list  ==》    #yum list

yum remove | erase package1[package2,....]    ==》卸载软件包;

yum info gcc  类似于rpm –qi   ==》查询指定软件包的信息;

yum makecache                                                    ==》构建缓存,建立本地原数据;

yum search string1 [string2] [...]                       ==》以指定的关键字搜索程序包名,

YUM命令子命令释义:

check-update       检查可提供的包升级
clean              删除缓存数据
deplist            列出包依赖相关
erase              移除一个或多个包从你的系统
groupinfo          显示关于包组的细节
groupinstall       从组里安装软件包到你的系统
grouplist          列出当前的组
groupremove        在一个组中移除包从您的系统
help               显示帮助用法信息
info               显示关于包或一组包的细节信息
install            安装一个或多个软件包在你的系统
list               列出一个包或某组的包
localinstall       安装本地 RPM
makecache          生成原数据缓存
provides           Find what package provides the given value
reinstall          重新安装一个包
repolist           显示软件仓库的配置
resolvedep         决定哪个包提供了给定的依赖
search             查找包细节居给定的字符串
shell              运行交互式的yum shell
update             更新一个或多个包在你的系统
upgrade            Update packages taking obsoletes into account
YUM命令选项释义:
Options:
-h, --help                show this help message and exit
-t, --tolerant            be tolerant of errors
-C                        从缓冲中运行,而不是升级缓存
-c  [config file]         config file location
-R  [minutes]             最大化的命令等待时间
-d  [debug level]         调试输出级别
--showduplicates          显示复制, 在repo,list/search命令下
-e  [error level]         错误输出级别
-q, --quiet               安静的操作
-v, --verbose             verbose operation
-y                        回答所有的问题为是
--version                 显示 YUM版本信息并退出
--installroot=[path]  设置为root安装
--enablerepo=[repo]       激活一个或多个仓库(支持通配符)
--disablerepo=[repo]  禁掉一个或多个仓库(支持通配符)
-x [package], --exclude=[package] 在名称或glob不包含包。
--disableexcludes=[repo]       disable exclude from main, for a repo or for everything
--obsoletes               enable obsoletes processing during updates
--noplugins               禁掉yum插件
--nogpgcheck              禁掉GPG验证检查
--disableplugin=[plugin]       用名称禁掉插件
--enableplugin=[plugin]   enable plugins by name
--skip-broken             忽略包的依赖问题
--color=COLOR             control whether color is used

三、DNF

DNF是新一代的RPM软件包管理器。首先出现在Fedora 18中,在Fedora22中正式取代了YUM。

DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析、运行速度等多方面的内容;

在CentOS 7 和 RHEL7中默认预装DNF,但可以自行安装,和YUM同时使用;

DNF大部分采用Python编写,发行许可为GPL v2

  1. 安装DNF:

    1. 为了安装DNF,必须先安装并启用epel-release 库依赖;

      yum install epel-release

    2. 使用 epel-release 依赖中的 YUM 命令来安装 DNF 包。

      yum install dnf

      2、DNF常用子命令:   ==》和yum大致相同;

         # dnf –version    查看安装在系统中DNF包管理器的版本;

         # dnf repolist           用于显示系统中可用的DNF软件库;

         # dnf repolist all     显示系统中可用和不可用的DNF软件库;

         # dnf list                     列出用户系统上的所有来自软件库的可用软件包和所有已安装在本地系统的软件包;

         # dnf list installed  列出所有安装了的RPM包;

         # dnf list available  列出来自所有可用软件库的可供安装的软件包;

         # dnf search STRING       搜索指定的软件名称;可用使用通配符;

         # dnf provides /bin/bash     查找某一文件的提供者;

         # dnf info PACKAGE_NAME 查看软件包详情;

        

         # dnf install nano 安装软件包;

         # dnf update system 升级软件包;

         # dnf check-update 检查系统中所有软件包的更新;

         # dnf update 或 # dnf upgrade  升级系统中所有由可用升级的软件包;

         # dnf remove PACKAGE_NAME 或 # dnf erase PACKAGE_NAME  删除指定软件包;

        

         # dnf autoremove 删除无用孤立的软件包;

         # dnf clean all 删除缓存的无用软件包;

 

         # dnf help SUB_COMMAND  获取dnf命令的某个子命令的使用帮助;如:dnf help clean

         # dnf help   列出所有的DNF命令及其用途;

         # dnf history 查看系统上DNF命令的执行历史,以此可以知道自你使用DNF开始有说明软件被安装和卸载;

         # dnfgrouplist          列出所有的软件包组;

#dnf groupinstall ‘Educational Software’  安装一个软件包组;

#dnf groupupdate ‘Educational Software’      升级一个软件包组中的软件包;

#dnf groupremove ‘Educational Software’  删除一个软件包组;

#dnf –enablerepo=epel install phpmyadmin 从特定的软件包库安装特定的软件;

#dnf distro-sync  通过所有可用的软件源将已经安装的所有软件包更新到最新的稳定发行版。

#dnf reinstall PACKAGE_NAME        重新安装特定软件包;

#dnf downgrade PACKAGE_NAME          降低特定软件包的版本,相当于rpm的—oldpackage

DNF的不足:

  1. 在 DNF 中没有 –skip-broken 命令,并且没有替代命令供选择。
  2. 在 DNF 中没有判断哪个包提供了指定依赖的 resolvedep 命令。
  3. 在 DNF 中没有用来列出某个软件依赖包的 deplist 命令。
  4. 当你在 DNF 中排除了某个软件库,那么该操作将会影响到你之后所有的操作,不像在 YUM 下那样,你的排除操作只会在升级和安装软件时才起作用。
时间: 2024-12-21 23:15:53

Linux系统管理之——软件包管理的相关文章

Linux 系统管理04--账号管理

Linux系统管理04--账号管理 一.用户账号管理 1.用户账号概述 (1)用户账号的常见分类: 1>超级用户:root uid=0 gid=0 权限最大. 2>普通用户:uid>=500 做一般权限的系统管理,权限有限.(500<uid<60000) 3>程序用户:1=<uid<500 为了提升系统安全性,为了支持所对应服务对系统资源 的使用,不能用于登录系统或管理系统. (2)UID:用户标识 (3)用户账号文件 1>  /etc/passwd

【one day one linux】linux下的软件包管理工具

Linux 下的软件包管理工具 linux下的软件安装可以通过两种方式,一种是直接使用自带的软件包管理工具安装,另外一种通过编译源码安装. 1.软件包的种类 Red Hat和Fedora:redhat最早发行的个人版本的Linux,自从Red Hat 9.0版本发布后,RedHat 公司就不再开发桌面版的 Linux发行套件,Red Hat Linux停止了开发,而将全部力量集中在服务器版的开发上,也就是 Red Hat Enterprise Linux 版.2004年4月30日,Red Hat

Linux系统管理之磁盘管理与文件系统

Linux系统管理之磁盘管理与文件系统 一.前言 管理磁盘是管理员的重要工作内容,本文主要介绍以下几个方面 磁盘结构及分区表示 管理磁盘及分区 管理文件系统 二.磁盘(无尘环境制造)结构及分区 1.物理结构 盘片:硬盘有多个盘片,每盘片2面 磁头:每面有一个磁头 2.数据结构 扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据 磁道:同一盘片不同半径的同心圆 柱面:不同盘片相同半径构成的圆柱面 多个扇区组成磁道,多个相同直径的磁道组成柱面 笔记本的磁盘一般是2.5英寸,7mm厚度和9.5

linux下rpm软件包管理命令详解

1.linux下软件的基本概念 程序需要用到的重要文件:配置文件,指令,库文件,帮助信息 /etc, /bin, /sbin, /lib,/usr/share/man 1.1.系统启动需用到的程序路径,必须在根文件系统的分区上 /etc, /bin, /sbin, /lib,/usr/share/man 1.2.系统启动后需用到的操作作系统核心功能或必要功能程序路径 /etc,/usr/bin,/usr/sbin/,/usr/lib,/usr/share/man 1.3.用户安装的第三方程序所需

Linux系统红帽软件包管理器(RPM)

1.源代码管理 绝大多数开源软件都是直接以源代码形式发布的,一般会被打包为tar.gz 的归档压缩文件.程序源代码需要编译为二进制可执行文件后才能够运行使用.源代码的基本编译流程为 ./configure:解压缩后运行该命令,它主要检查编译环境.相关库文件以及配置参数并生成 makefile make:对源代码进行编译,生成可执行文件 make install:将生成的可执行文件安装到计算机中 源代码形式的软件使用起来较为麻烦,但是兼容性和可控性较好.并且开源软件一般会大量使用其他开源软件的功能

linux入门之软件包管理

一.rpm 安装 程序包管理器就是将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装,卸载查询,升级和校验等管理操作,在CentOS系统上使用rpm命令管理程序包进行安装.卸载.升级.查询.校验.数据库维护等操作时,需要先对光盘进行挂载 ,挂载光盘命令如下 [[email protected] ~]#mount /dev/cdrom /media mount: /dev/sr0 is write-protected, mounting read-only 出现

Linux基础_软件包管理

一,软件包管理 # 使用rpm安装及移除软件RPM 1:rpm:Red-Hat Package Manager 2:rpm文件形式 yum-metadata-parser-1.1.2-16.el6.x86_64.rpm 第1部分是name,表示这个rpm软件包的名称: # yum-metadata-parser 第2部分是version,表示这个rpm软件包的版本编号: # 1.1.2 第3部分是release,表示这个rpm软件包的版本发布次数(修正号码): # 16 第4部分是archite

linux下系统软件包管理(rpm、yum、源码包安装)

1. rpm工具rpm全称为Redhat Package Manager,红帽软件包管理工具,设计理念是开放的,不仅仅是在RedHat平台上,在SUSE上也是可以使用的. rpm包名字构成由-和.分成了若干部分,如abrt-cli-2.0.8-15.el6.centos.i686.rpm,abrt-cli是包名,2.0.8-15是版本号,el6指的是redhat企业版6,centos指的是这是在centos上用的,i686指的是平台类型.有些rpm包并没有写具体的平台而是noarch,这代表这个

linux基础(11)--软件包管理--RHEL6.5

1. rpm软件包管理 rpm全称是redhat package manager, 只能用于redhat系列系统的软件包管理,如RHEL.Centos.fedora 本文中光盘镜像挂载到/mnt下. 系统自带rpm包存放在./mnt/Packages下, ls | wc -l   可以查出系统自带rpm包的数目. (1)安装rpm包 rpm -ivh /mnt/Packages/XXX.rpm 如果出现以来关系,可以强制忽略: rpm -ivh /mnt/Packages/XXX.rpm (2)