当前位置: 首页 > 文档资料 > 技术文档 Cookbook >

软件包的安装与更新

优质
小牛编辑
135浏览
2023-12-01

什么是红帽订阅管理

红帽订阅订阅管理提供了向服务器/计算机授权产品订阅的工具,让管理员能够获取软件包的更新,跟踪系统所用支持合同和订阅的相关信息。PackageKit 和 yum 等标准工具可以用来获取红帽提供的软件包和更新等内容。可以通过红帽订阅管理工具执行下列四项基本任务:

  • 注册 - 注册系统,将该系统与某一红帽帐户关联。这可以让订阅管理器唯一地清查该系统。不再使用某一系统时,可以取消注册。

  • 订阅 - 订阅系统,授权它获取所选红帽产品的更新。订阅包含特定的支持级别、到期日期和默认存储库。可以通过工具自动附加,或选择具体的授权。随着需求的变化,可以移除订阅。

  • 启用 yum 库 - 启用 yum 库,以提供软件包。默认情况下每一订阅会启用多个 yum 库,但可以根据需要启用或禁用更新或源代码等其他 yum 库。

  • 审核和跟踪 - 审核和跟踪可用或已用的授权。可以在具体系统上本地查看订阅信息,也可在红帽客户门户订阅页面或订阅资产管理器 (SAM) 查看具体帐户的订阅信息。

subscription-manager

RHEL 默认安装会包含 subscription-manager 包,通过此包可以注册一个有效订阅,从而进行安装和更新软件包。

注册一个红帽账户
# subscription-manager register --username=yourusername --password=yourpassword
查看有效订阅
# subscription-manager list --available | less
# subscription-manager list --available --matches '*OpenShift Container Platform*'
绑定订阅
# subscription-manager attach --auto
# subscription-manager attach --pool=<YOUR_POOL_ID>
查看绑定的订阅
# subscription-manager list --consumed
取消注册
# subscription-manager unregister
禁止所有的 repo
# subscription-manager repos --disable="*"
NoteLinux 操作系统注册成功之后,/etc/pki 目录下, product 中的证书指明系统上安装了哪些红帽产品;consumer 中的证书指明系统所注册到的红帽帐户;entitlement 中的证书指明该系统附加有哪些订阅。

yum

yum 是一个强大的命令行工具,可用于更加灵活地管理(安装、更新、删除和查询)软件包。

Table 1. 常用 yum 命令
命令描述

yum list [NAME-PATTERN]

按名称列出已安装和可用的软件包

yum grouplist

列出已安装和可用的组

yum search KEYWORD

按关键字搜索软件包

yum info PACKAGENAME

显示软件包的详细信息

yum install PACKAGENAME

安装软件包

yum groupinstall "GROUPNAME"

安装软件包组

yum update

更新所有软件包

yum remove PACKAGENAME

删除软件包

yum history

显示事务历史记录

使用 yum 查找软件包

查看 repositories
# yum repolist
yum list 显示已安装的和可用的软件包
# yum list 'http*'*
查看已安装的包
# yum list installed
查看 package groups
# yum grouplist
查着包
# yum search all 'web server'
查着包
# yum provides /var/www/html
查看包详细情况
# yum info httpd

使用 yum 安装和删除软件包

安装包
# yum install httpd
更新包
# yum update
移除包
# yum remove httpd
group 安装
# yum group install "Infiniband Support"

查看事务历史记录

查看安装的历史
# yum history
查看 yum 日志 /var/log/yum.log
Dec 05 16:09:59 Installed: apr-1.4.8-3.el7_4.1.x86_64
Dec 05 16:09:59 Installed: apr-util-1.5.2-6.el7.x86_64
Dec 05 16:10:00 Installed: httpd-tools-2.4.6-67.el7_4.6.x86_64
Dec 05 16:10:00 Installed: mailcap-2.1.41-2.el7.noarch
...

yum history undo

//安装
# yum search gnuplot
# yum info gnuplot
# yum install -y gnuplot

//查看已安装的包
# yum list gnuplot*
Installed Packages
gnuplot.x86_64                                                                                       4.6.2-3.el7                                                                                @rhel-7-server-rpms
gnuplot-common.x86_64                                                                                4.6.2-3.el7                                                                                @rhel-7-server-rpms

//移除
# yum remove gnuplot
# yum remove gnuplot-common

//group 安装
# yum group list
# yum group info "Compatibility Libraries"
# yum group install "Compatibility Libraries"

//查看历史
# yum history
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
     5 | root <root>              | 2017-12-05 16:40 | Install        |   12
     4 | root <root>              | 2017-12-05 16:29 | Install        |    2
     3 | root <root>              | 2017-12-05 16:20 | I, O, U        |  157 EE
     2 | root <root>              | 2017-12-05 16:09 | Install        |    5
     1 | System <unset>           | 2017-12-05 11:29 | Install        | 1298

# yum history undo 5
# yum history undo 4

yum 源管理

查看所有 repositories
# yum repolist all
yum-config-manager enable/disable repository
# yum-config-manager --enable rhel-7-server-extras-rpms
# yum-config-manager --disable content.example.com_rhel7.0_x86_64_rht
yum-config-manager 添加第三方 repository
# yum-config-manager --add-repo="http://dl.fedoraproject.org/pub/epel/7/x86_64/"

rpm

rpm -q -a - 查看全部已安装了的包
# rpm -q -a
# rpm -q -a | grep "http*"
rpm -q PACKAGENAME - 查看当前已安装了的包
# rpm -q yum
yum-3.4.3-154.el7.noarch
rpm -q -f FILENAME - 确认什么包提供了此文件
# rpm -q -f /etc/yum.repos.d/
yum-3.4.3-154.el7.noarch
rmp -q - yum list
# rpm -q httpd
httpd-2.4.6-67.el7_4.6.x86_64
rpm -q -i - yum info
# rpm -q -i httpd
rpm -q -l - 列出某个包引入的所有文件
# rpm -q -l yum
rpm -q -c - 列出某个包引入的所有配置文件
# rpm -q -c yum
/etc/logrotate.d/yum
/etc/yum.conf
/etc/yum/version-groups.conf
rpm -q -d - 列出某个包引入的所有文档文件
# rpm -q -d yum
rpm -q --scripts - 列出某个包安装前后可能会执行的脚本
# rpm -q --scripts openssh-server
rpm -q --changelog - 列出某一个包的 changelog
# rpm -q --changelog yum
rpm -q -l -p - 查询包中内容
# rpm -q -l -p wonderwidgets-1.0-4.x86_64.rpm
rpm -ivh - 安装包
# rpm -ivh wonderwidgets-1.0-4.x86_64.rpm
rpm -q -p -i - 安装此包需要多大磁盘空间
# rpm -q -p -i wonderwidgets-1.0-4.x86_64.rpm