LinuxDay11——软件包管理

rpm包管理

CentOS系统上使用rpm命令管理程序包:

  安装、卸载、升级、查询、校验、数据库维护

安装

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

    -v:verbose  -vv:显示过程

    -h:以#显示程序包管理执行数据

 rpm -ivh PACKAGE_FILE...

 [install-options]

  --test:测试安装,但不真执行安装,即dry run模式

  --nodeps:忽略依赖关系

  --replacepkgs | replacefiles

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

  --nodigest:不检查包完整性

  --noscripts:不执行程序包脚本

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

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

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

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

升级

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

  -U升级安装

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

  -F升级

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

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

  rpm -Uvh PACKAGE_FILE ...

  rpm -Fvh PACKAGE_FILE ...

  --oldpackage:降级

  --force: 强制安装

升级主要事项

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

(2)如果源程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名

查询

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

  -q查询

 [select-options]

  -a: 显示所有包

  -f: 查看指定的文件由哪个程序包安装生成

  -p rpmfile:针对尚未安装的程序包文件做查询操作

  -c:只看配置文件

  -d:显示文档

  -i:包的说明信息

  -l:查看程序包提供了哪些文件

  --scripts:查询包的脚本信息

  --provides:列出包提供的“能力”

  -R:查询包所依赖的“能力”

  --whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供

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

 rpm2cpio 包文件|cpio –itv 预览包内文件

 rpm2cpio 包文件|cpio –id “*.conf” 释放包内文件

校验

 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 differrpm {-V|--verify} [select-options] [verify-options]

导入所需要公钥

 rpm -K|checksig rpmfile 检查包的完整性和签名

 rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

 CentOS 7发行版光盘提供:RPM-GPG-KEY-CentOS-7

 rpm -qa “gpg-pubkey*”

数据库

 数据库重建:

  /var/lib/rpm

 rpm {--initdb|--rebuilddb}

  initdb: 初始化

    如果事先不存在数据库,则新建之

    否则,不执行任何操作

  rebuilddb:重建已安装的包头的数据库索引目录

yum包管理器

 yum(Yellowdog Update Modifier)是一个基于rpm的交互式软件包管理器。

用法:

  yum [options] [command] [package ...]

配置文件

 yum客户端配置文件:

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

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

 /etc/yum.conf 配置文件

  cachedir 缓存目录

  keepcache=0|1 安装时是否保留缓存的rpm包

  logfile 日志文件

  gpgcheck=0|1 检查签名和完整性

 /var/log/yum.log 日志

 /etc/yum.repos.d/FILE.repo  yum源文件

  /var/cache/yum/x86_64/6 缓存路径

  # yum-config-manager --add-repo=https://mirrors.aliyun.com/centos/6/os/x86_64/

  # yum-config-manager --disable “仓库名" 禁用仓库

  # yum-config-manager --enable “仓库名” 启用仓库

  # createrepo /rpmdir 创建元数据

 仓库指向的定义:

  [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:意为随机挑选,默认值

    priority:按顺序访问

  cost= 默认为1000

 yum的repo配置文件中可用的变量:

  $releasever: 当前OS的发行版的主版本号

  $arch: 平台,i386,i486,i586,x86_64等

  $basearch:基础平台;i386, x86_64

  $YUM0-$YUM9:自定义变量

选项:

  -y 安装或卸载是直接回答yes,不进入交互式

  -q 静默模式

  --disablerepo=repoidglob:临时禁用此处指定的repo

  --enablerepo=repoidglob:临时启用此处指定的repo

  --noplugins:禁用所有插件

子命令:

 list 列出repo源包含的所有软件包

 installed 列出所有已安装的包

 install 安装

 reinstall 重新安装

 repolist [all|disabled] 列出当前生效的repo源[所有|已关闭的]

 clean all 清除缓存

 update [package1...] 升级软件包

 downgrade [package1...] 降级软件包

 check-update 检查可升级的包

 remove 卸载软件包

 info 查看包的详细信息

 provides 查找命令由哪些包提供

 makecheck 手动生成缓存

 search 模糊搜索包信息

 deplist 检查依赖包

 history 安装卸载的历史

   list # 列出指定的操作

   info # 列出指定操作的详细信息

   undo # 撤销指定id的操作

   redo # 重新执行

 groupinstall 安装包组

 groupupdate 升级包组

 grouplist 列出所有包组

 groupremove 移除包组

 groupinfo 查看包组的详细信息

posted @ 2018-04-20 15:01  Gmiao  阅读(193)  评论(0编辑  收藏  举报