南宁江南区网站制作价格,wordpress 开启伪静态,WordPress文章发布模块,网站建设丂金手指科杰yum工具的使用
rpm的弊端 前面我们讲了下rpm#xff0c;那么rpm有什么弊端呢#xff1f;其弊端是显而易见的#xff0c;当用rpm安装软件时#xff0c;若遇到有依赖关系的软件#xff0c;必须先安装依赖的软件才能继续安装我们要安装的软件#xff0c;当依赖关系很复杂的…yum工具的使用
rpm的弊端 前面我们讲了下rpm那么rpm有什么弊端呢其弊端是显而易见的当用rpm安装软件时若遇到有依赖关系的软件必须先安装依赖的软件才能继续安装我们要安装的软件当依赖关系很复杂的情况下这种安装方式就很让人头疼所以我们需要另一种安装方式来解决这个问题今天我们要来学习的就是这样一个工具–yum
yum的优劣势 yum有什么优势呢yum最大的优势就是能够解决rpm的依赖问题yum能够自动解决软件安装时的依赖关系。 yum的缺陷就是如果在未完成安装的情况下强行中止安装过程下次再安装时将无法解决依赖关系Fedora22、redhat7和centos7等可以通过手动安装dnf工具来解决此问题。 dnf是redhat7上用来代替yum的一个工具其存在的意义就是处理yum的缺陷但其用法与yum是完全一样的甚至连选项都是一样的你可以理解为dnf就是yum只是换了个名字而已。
什么是yum及其作用 那么什么是yum呢yum是yellowdog update manager的简称它能够实现rpm管理的所有操作并能够自动解决各rpm包之间的依赖关系。yum是rpm的前端工具是基于rpm来实现软件的管理的一个工具。 你不能用yum去管理windows的exe程序包也不能用yum去管理ubuntu的deb程序包只能用yum来管理redhat系列的rpm包
挂载光盘 插入光盘执行以下命令
[rootlocalhost ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[rootlocalhost ~]# ls /mnt/
addons EULA GPL isolinux media.repo repodata RPM-GPG-KEY-redhat-release
EFI extra_files.json images LiveOS Packages RPM-GPG-KEY-redhat-beta TRANS.TBL
[rootlocalhost ~]#yum的原理 yum的工作需要两部分来合作一部分是yum服务器另一部分就是client的yum工具。下面分别介绍两部分工作原理。
yum服务器端工作原理 所有要发行的rpm包都放在yum服务器上以提供别人来下载rpm包根据kernel的版本号cpu的版本号分别编译发布。yum服务器只要提供简单的下载就可以了ftp或者http的形式都可以。yum服务器有一个最重要的环节就是整理出每个rpm包的基本信息包括rpm包对应的版本号、conf文件、binary信息以及很关键的依赖信息。在yum服务器上提供了createrepo工具用于把rpm包的基本概要信息做成一张“清单”这张“清单”就是描述每个rpm包的spec文件中信息。
client端工作原理 client每次调用yum install或者search的时候都会去解析/etc/yum.repos.d下面所有以.repo结尾的配置文件这些配置文件指定了yum服务器的地址。yum会定期去更新yum服务器上的rpm包清单然后把清单下载保存到yum客户端自己的cache里面根据/etc/yum.conf里配置默认是/var/cache/yum下面每次调用yum装包的时候都会去这个cache目录下去找清单根据清单里的rpm包描述从而来确定安装包的名字、版本号、所需要的依赖包等然后再去yum服务器下载rpm安装。前提是不存在rpm包的cache
yum的配置文件 配置文件有哪些 /etc/yum.conf 作用为所有仓库提供公共配置/etc/yum.repos.d/*.repo 作用为仓库的指向提供配置 yum的repo配置文件中可用的变量 $releaseversion当前OS的发行版的主版本号$arch平台类型$basearch基础平台
为yum定义repo文件
[Repo_Name]仓库名称
name描述信息
baseurl仓库的具体路径接受以下三种类型ftp://http://file:///
enabled可选值101为启用此仓库0为禁用此仓库
gpgcheck可选值101为检查软件包来源合法性0为不检查来源如果gpgcheck设为1则必须用gpgkey定义密钥文件的具体路径gpgkey/PATH/TO/KEY
vim /etc/yum.conf
cachedir/var/cache/yum/$basearch/$releasever //缓存目录
keepcache0 //缓存软件包, 1启动 0 关闭
debuglevel2 //调试级别
logfile/var/log/yum.log //日志记录位置
exactarch1 //检查平台是否兼容
obsoletes1 //检查包是否废弃
gpgcheck1 //检查来源是否合法,需要有制作者的公钥信息
plugins1 //是否启用插件
tolerant{1|0} //容错功能1为开启0为关闭当设为0时如果用yum安装多个软件包且其中某个软件包已经安装过就会报错当设为1时当要安装的软件已经安装时自动忽略
installonly_limit5
bugtracker_url
# metadata_expire90m //每小时手动检查元数据
# in /etc/yum.repos.d //包含repos.d目录 yum仓库管理
yum本地仓库
挂载光盘参照本章第4部分内容复制光盘内容到yum服务器
[rootlocalhost ~]# mkdir /opt/myrepo
[rootlocalhost ~]# cp -r /mnt/* /opt/myrepo/
[rootlocalhost ~]# ls /opt/myrepo/
addons EULA GPL isolinux media.repo repodata RPM-GPG-KEY-redhat-release
EFI extra_files.json images LiveOS Packages RPM-GPG-KEY-redhat-beta TRANS.TBL配置yum仓库repo 文件
[rootlocalhost ~]# vim /etc/yum.repos.d/myrepo.repo
[rootlocalhost ~]# cat /etc/yum.repos.d/myrepo.repo
[myrepo]
namemyrepo
baseurlfile:///opt/myrepo
gpgcheck0
enabled1
[rootlocalhost ~]#
#清空yum本地缓存
[rootlocalhost ~]# yum clean all
Loaded plugins: langpacks, product-id, search-disabled-repos, subscriptionmanager
This system is not registered with an entitlement server. You can use
subscription-manager to register.
Cleaning repos: myrepo
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by
orphaned data from disabled or removed repos
#检验yum本地仓库
[rootlocalhost ~]# yum list all
......
plymouth-core-libs.i686
0.8.9-0.28.20140113.el7 myrepo
plymouth-graphics-libs.i686
0.8.9-0.28.20140113.el7 myrepo
policycoreutils-devel.i686
2.5-17.1.el7 myrepo
policycoreutils-devel.x86_64
........
省略.....清空yum 本地缓存
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use
subscription-manager to register.
17 files removed检验yum本地仓库
[rootlocalhost yum.repos.d]# yum list all
yajl.i686 2.1.0-21.el9
AppStream
yajl.x86_64 2.1.0-21.el9
AppStream
省略......
yum网络仓库
官方网络yum仓库国外阿里云yum仓库163yum仓库xx大学yum仓库epel源
[rootlocalhost yum.repos.d]# cat tq.repo
[BaseOS]
nameBaseOS
baseurlhttps://mirrors.aliyun.com/rockylinux/9/BaseOS/$basearch/os/
gpgcheck0
enabled1
gpgkeyhttps://mirrors.aliyun.com/rockylinux/RPM-GPG-KEY-Rocky-9[AppStream]
nameAppStream
baseurlhttps://mirrors.aliyun.com/rockylinux/9/AppStream/$basearch/os/
gpgcheck0
enabled1
gpgkeyhttps://mirrors.aliyun.com/rockylinux/RPM-GPG-KEY-Rocky-9软件官方仓库
[rootlocalhost ~]# vim /etc/yum.repos.d/nginx.repo[nginx]namenginx repobaseurlhttp://nginx.org/packages/centos/7/$basearch/gpgcheck0enabled1yum 管理软件
yum 命令语法
yum [options] [command] [package ...]常用的选项常用的选项
--nogpgcheck //如果从网上下载包有时会检查gpgkey此时可以使用此命令跳
过gpgkey的检查
-y //自动回答为yes
-q //静默模式安装时不输出信息至标准输出
--disablereporepoidglob //临时禁用此处指定的repo
--enablereporepoidglob //临时启用此处指定的repo
--noplugins //禁用所有插件[rootlocalhost ~]# yum -y -q install vsftpd
[rootlocalhost ~]#常用的命令
list // 列表
all
[rootlocalhost ~]# yum list all
yara.x86_64 4.2.3-1.el9
AppStream
yelp.x86_64 2:40.3-2.el9
AppStreamavailable 列出仓库中有的但尚未安装的所有可用包
[roottq ~]# yum list availableinstalled 例出已经安装的包
[roottq ~]# yum list installed | grep wget
[roottq ~]# yum list installed**clean //**清理缓存
packages
headers
metadata
dbcache
all
[roottq ~]# yum clean allrepolist //显示repo列表及其简要信息
all
enabled
disabled
[roottq ~]# yum repolist allinstall // 安装
[roottq ~]# yum install zsh**update //**升级
[roottq ~]# yum check-update ##先检查可以升级
[roottq ~]# yum update grub2 -y**downgrade package //**降级
**remove/erase //**卸载
[roottq ~]# yum -y remove zshinfo
yum info package
[roottq ~]# yum info wgetprovides|whatprovides 查看文件由那个包所提供的
[roottq ~]# yum provides */bin/ls
[roottq ~]# yum provides wget**search string //**以指定的关键字搜索程序名及信息
**deplist package //**显示指定包的依赖关系
history //查看yum的历史事务信息
[roottq ~]# yum history**localinstall //**安装本地rpm包自动解决依赖关系
[rootlocalhost ~]# rpm -e vsftpd //卸载
[rootlocalhost ~]# yum -y localinstall vsftpd-3.0.5-5.el9.x86_64.rpm**grouplist //**列出可用的组
[roottq ~]# yum grouplistgroupinstall “group name” 安装一组软件
[roottq ~]# yum -y groupinstall Development Toolsyum groups remove - y xx
[rootlocalhost ~]# yum groups remove -y Base**createrepo //**常见yum仓库的元数据信息
[rootlocalhost ~]# yum install createrepo -y
[rootlocalhost ~]# createrepo 1搜索软件包
yum list all 列出软件仓库中可用的软件
[rootlocalhost ~]# yum list all
zlib-devel.i686 1.2.11-39.el9
AppStream
zlib-devel.x86_64 1.2.11-39.el9
AppStream
zram-generator.x86_64 0.3.2-7.el9
AppStream
zsh.x86_64 5.8-9.el9yum list | grep 服务名 进行模糊查找
[rootlocalhost ~]# yum list |grep vsftpdyum info 服务名 列出软件包详情
[rootlocalhost ~]# yum info vsftpd重装软件包
rootlocalhost ~]# rpm -q vsftpd //查看以及安装的包
vsftpd-3.0.5-5.el9.x86_64
[rootlocalhost ~]# rpm -qc vsftpd //查看配置文件信息
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
[rootlocalhost ~]# rm -f /etc/vsftpd/vsftpd.conf
[rootlocalhost ~]# yum reinstall vsftpd-3.0.5-5.el9.x86_64.rpm与缓存相关命令
yum makecache 缓存yum源软件仓库, xml元数据文件
[rootlocalhost ~]# yum makecache修改软件包和全居配置
[rootlocalhost ~]# vi /etc/yum.conf
[rootlocalhost ~]# cat /etc/yum.conf
[main]
gpgcheck1
installonly_limit3
clean_requirements_on_removeTrue
bestTrue
skip_if_unavailableFalse
另一种缓存rpm包方式:
安装插件支持只下载软件包不安装
[rootlocalhost ~]# yum -y install zsh --downloadonly --downloaddir/tmp
httpd清除所有yum缓存
[rootlocalhost ~]# yum clean all只清除缓存包
[rootlocalhost ~]# yum clean packages历史命令相关
查看历史执行yum 命令
[rootlocalhost ~]# yum history查询历史执行yum命令ID详细信息
[rootlocalhost ~]# yum history info 5撤销历史执行过的yum命令
[rootlocalhost ~]# yum history undo 5yum签名检查机制 1.rpm软件提供组织redhat在构建rpm包时, 使用其私钥private key对 rpm进行签名 2.客户端在使用rpm为了验证其合法性, 可以使用redhat提供的公钥public key进行签名检查 方式一指定公钥位置
[rootlocalhost yum.repos.d]# cat tq.repo
[BaseOS]
nameBaseOS
baseurlhttps://mirrors.aliyun.com/rockylinux/9/BaseOS/$basearch/os/
gpgcheck0
enabled1
gpgkeyhttps://mirrors.aliyun.com/rockylinux/RPM-GPG-KEY-Rocky-9
[AppStream]
nameAppStream
baseurlhttps://mirrors.aliyun.com/rockylinux/9/AppStream/$basearch/os/
gpgcheck0
enabled1
# gpgkeyhttps://mirrors.aliyun.com/rockylinux/RPM-GPG-KEY-Rocky-9
[rootlocalhost yum.repos.d]#方式二提起导入公钥
[rootlocalhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[rootlocalhost ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[base]
nameCentOS-$releasever - Base
mirrorlisthttp://mirrorlist.centos.org/?
release$releaseverarch$basearchrepoosinfra$infra
baseurlhttp://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck1方式三不进行签名验证
[rootlocalhost ~]# yum install httpd --nogpgcheck