博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Linux基础 - 包管理 rpm与yum

Posted on 2023-02-20 22:03  Kingdomer  阅读(58)  评论(0编辑  收藏  举报

 

RPM是为了简化安装的复杂度,而Yum软件仓库是为了解决软件包之间的依赖关系

一、rpm 本地安装

rpm -ivh filename.rpm   # 安装
rpm -Uvh filename.rpm   # 升级
rpm -e   filename.rpm   # 卸载
rpm -qpi filename.rpm   # 查询软件描述
rpm -qpl filename.rpm   # 列出软件文件
rpm -qf  filename.rpm   # 查询文件属于哪个RPM

  

二、yum

2.1 yum 命令

yum reportlist all        # 列出所有仓库
yum list all              # 列出仓库中所有软件包
yum info xxx              # 查看软件包信息
yum install xxx           # 安装软件包
yum reinstall xxx         # 重装软件包
yum update xxx            # 升级软件包
yum remove xxx            # 移除软件包
yum clean all             # 清除所有仓库缓存
yum check-update          # 检查可更新软件包
yum grouplist             # 查看系统已经安装的软件包组
yum groupinstall xxx      # 安装指定的软件包组
yum groupremove xxx       # 移除指定软件包组
yum groupinfo xxx         # 查询指定的软件包组信息

  

2.2 只下载rpm包, 不安装

yum install yum-plugin-downloadonly
yum install --downloadonly --downloaddir=/tmp/packages/  gcc-c++

  

2.3 httpd  list - install - info

[root@centos78 ~]# yum list  httpd --showduplicates
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.nju.edu.cn
 * epel: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.ustc.edu.cn
Available Packages
httpd.x86_64                               2.4.6-95.el7.centos                                  base
httpd.x86_64                               2.4.6-97.el7.centos                                  updates
httpd.x86_64                               2.4.6-97.el7.centos.1                                updates
httpd.x86_64                               2.4.6-97.el7.centos.2                                updates
httpd.x86_64                               2.4.6-97.el7.centos.4                                updates
httpd.x86_64                               2.4.6-97.el7.centos.5                                updates
httpd.x86_64                               2.4.6-98.el7.centos.6                                updates

 

[root@centos78 ~]# yum install httpd-2.4.6-95.el7.centos
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.nju.edu.cn
 * epel: ftp.iij.ad.jp
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.ustc.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-95.el7.centos will be installed
--> Processing Dependency: httpd-tools = 2.4.6-95.el7.centos for package: httpd-2.4.6-95.el7.centos.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-95.el7.centos.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-95.el7.centos.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-95.el7.centos.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-7.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-95.el7.centos will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================================
 Package                     Arch                   Version                             Repository            Size
===================================================================================================================
Installing:
 httpd                       x86_64                 2.4.6-95.el7.centos                 base                 2.7 M
Installing for dependencies:
 apr                         x86_64                 1.4.8-7.el7                         base                 104 k
 apr-util                    x86_64                 1.5.2-6.el7                         base                  92 k
 httpd-tools                 x86_64                 2.4.6-95.el7.centos                 base                  93 k
 mailcap                     noarch                 2.1.41-2.el7                        base                  31 k

Transaction Summary
===================================================================================================================
Install  1 Package (+4 Dependent packages)

Total download size: 3.0 M
Installed size: 10 M
Is this ok [y/d/N]: y
Downloading packages:
(1/5): httpd-tools-2.4.6-95.el7.centos.x86_64.rpm                                           |  93 kB  00:00:00
(2/5): apr-1.4.8-7.el7.x86_64.rpm                                                           | 104 kB  00:00:00
(3/5): apr-util-1.5.2-6.el7.x86_64.rpm                                                      |  92 kB  00:00:00
(4/5): mailcap-2.1.41-2.el7.noarch.rpm                                                      |  31 kB  00:00:01
(5/5): httpd-2.4.6-95.el7.centos.x86_64.rpm                                                 | 2.7 MB  00:00:01
-------------------------------------------------------------------------------------------------------------------
Total                                                                              1.8 MB/s | 3.0 MB  00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : apr-1.4.8-7.el7.x86_64                                                                          1/5
  Installing : apr-util-1.5.2-6.el7.x86_64                                                                     2/5
  Installing : httpd-tools-2.4.6-95.el7.centos.x86_64                                                          3/5
  Installing : mailcap-2.1.41-2.el7.noarch                                                                     4/5
  Installing : httpd-2.4.6-95.el7.centos.x86_64                                                                5/5
  Verifying  : httpd-tools-2.4.6-95.el7.centos.x86_64                                                          1/5
  Verifying  : mailcap-2.1.41-2.el7.noarch                                                                     2/5
  Verifying  : apr-1.4.8-7.el7.x86_64                                                                          3/5
  Verifying  : httpd-2.4.6-95.el7.centos.x86_64                                                                4/5
  Verifying  : apr-util-1.5.2-6.el7.x86_64                                                                     5/5

Installed:
  httpd.x86_64 0:2.4.6-95.el7.centos

Dependency Installed:
  apr.x86_64 0:1.4.8-7.el7          apr-util.x86_64 0:1.5.2-6.el7     httpd-tools.x86_64 0:2.4.6-95.el7.centos
  mailcap.noarch 0:2.1.41-2.el7

Complete!

  

[root@centos78 ~]# yum info httpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.nju.edu.cn
 * epel: ftp.iij.ad.jp
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.ustc.edu.cn
Installed Packages
Name        : httpd
Arch        : x86_64
Version     : 2.4.6
Release     : 95.el7.centos
Size        : 9.4 M
Repo        : installed
From repo   : base
Summary     : Apache HTTP Server
URL         : http://httpd.apache.org/
License     : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
            : web server.

Available Packages
Name        : httpd
Arch        : x86_64
Version     : 2.4.6
Release     : 98.el7.centos.6
Size        : 2.7 M
Repo        : updates/7/x86_64
Summary     : Apache HTTP Server
URL         : http://httpd.apache.org/
License     : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
            : web server.

 

2.4 yum 安装依赖报错处理

[root@centos78 ~]]# package-cleanup --cleandupes --noscripts

[root@centos78 ~]]# yum-complete-transaction --cleanup-only
Cleaning up unfinished transaction journals
Cleaning up 2021-10-20.02:46.46
Cleaning up 2021-10-20.02:51.00

[root@centos78 ~]]# package-cleanup --cleandupes --noscripts

[root@centos78 ~]]# yum-complete-transaction --cleanup-only
No unfinished transactions left.
# 执行最近一次的yum命令
[root@centos78 ~]]# yum history redo last

  

 

[root@cl-server yum.repos.d]# yum
已加载插件:fastestmirror
您需要给出命令
Usage: yum [options] COMMAND

List of Commands:

check          检查 RPM 数据库问题
check-update   检查是否有可用的软件包更新
clean          删除缓存数据
deplist        列出软件包的依赖关系
distribution-synchronization 已同步软件包到最新可用版本
downgrade      降级软件包
erase          从系统中移除一个或多个软件包
fs             Acts on the filesystem data of the host, mainly for removing docs/lanuages for minimal hosts.
fssnapshot     Creates filesystem snapshots, or lists/deletes current snapshots.
groups         显示或使用、组信息
help           显示用法提示
history        显示或使用事务历史
info           显示关于软件包或组的详细信息
install        向系统中安装一个或多个软件包
list           列出一个或一组软件包
load-transaction 从文件名中加载一个已存事务
makecache      创建元数据缓存
provides       查找提供指定内容的软件包
reinstall      覆盖安装软件包
repo-pkgs      将一个源当作一个软件包组,这样我们就可以一次性安装/移除全部软件包。
repolist       显示已配置的源
search         在软件包详细信息中搜索指定字符串
shell          运行交互式的 yum shell
swap           Simple way to swap packages, instead of using shell
update         更新系统中的一个或多个软件包
update-minimal Works like upgrade, but goes to the 'newest' package match which fixes a problem that affects your system
updateinfo     Acts on repository update information
upgrade        更新软件包同时考虑软件包取代关系
version        显示机器和/或可用的源版本。


Options:
  -h, --help                                        显示此帮助消息并退出
  -t, --tolerant                                    忽略错误
  -C, --cacheonly                                   完全从系统缓存运行,不升级缓存
  -c [config file], --config=[config file]          配置文件路径
  -R [minutes], --randomwait=[minutes]              命令最长等待时间
  -d [debug level], --debuglevel=[debug level]      调试输出级别
  --showduplicates                                  在 list/search 命令下,显示源里重复的条目
  -e [error level], --errorlevel=[error level]      错误输出级别
  --rpmverbosity=[debug level name]                 RPM 调试输出级别
  -q, --quiet                                静默执行
  -v, --verbose                              详尽的操作过程
  -y, --assumeyes                            回答全部问题为是
  --assumeno                                 回答全部问题为否
  --version                                  显示 Yum 版本然后退出
  --installroot=[path]                       设置安装根目录
  --enablerepo=[repo]                        启用一个或多个软件源(支持通配符)
  --disablerepo=[repo]                       禁用一个或多个软件源(支持通配符)
  -x [package], --exclude=[package]          采用全名或通配符排除软件包
  --disableexcludes=[repo]                   禁止从主配置,从源或者从任何位置排除
  --disableincludes=[repo]                   disable includepkgs for a repo or for everything
  --obsoletes                                更新时处理软件包取代关系
  --noplugins                                禁用 Yum 插件
  --nogpgcheck                               禁用 GPG 签名检查
  --disableplugin=[plugin]                   禁用指定名称的插件
  --enableplugin=[plugin]                    启用指定名称的插件
  --skip-broken                              忽略存在依赖关系问题的软件包
  --color=COLOR                              配置是否使用颜色
  --releasever=RELEASEVER                    在 yum 配置和 repo 文件里设置 $releasever 的值
  --downloadonly                             仅下载而不更新
  --downloaddir=DLDIR                        指定一个其他文件夹用于保存软件包
  --setopt=SETOPTS                           设置任意配置和源选项
  --bugfix                                   Include bugfix relevant packages, in updates
  --security                                 Include security relevant packages, in updates
  --advisory=ADVS, --advisories=ADVS         Include packages needed to fix the given advisory, in updates
  --bzs=BZS                                  Include packages needed to fix the given BZ, in updates
  --cves=CVES                                Include packages needed to fix the given CVE, in updates
  --sec-severity=SEVS, --secseverity=SEVS    Include security relevant packages matching the  severity, in updates

  插件选项: