yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间
要有安装包
安装包来源:
1.光驱里自带挂载提供软件包
2.网络下载到本地
3.直接通过网络
Packages文件夹? ? ? ?repodata文件夹(元数据? ? 软件的依赖关系,软件的位置 ? )
位置:/etc/yum.conf
基本不需要动 默认就好
[root@localhost]# /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever //yum下载的RPM包的缓存目录 $basearch代表硬件架构 $releasever系统版本比如7
keepcache=0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //是否保存缓存 ?0代表不保存,1代表保存
debuglevel=2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//调试级别了解即可
logfile=/var/log/yum.log?? ??? ??? ??? ??? ? // 日志文件位置
exactarch=1?? ??? ??? ??? ??? ??? ??? ??? ? ? ? //是否允许不同版本的rpm安装
obsoletes=1?? ??? ??? ??? ??? ??? ??? ??? ??? ?//update 的一个参数是否可以允许旧版本的运行?? ?
gpgcheck=1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//验证秘钥
plugins=1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //是否允许插件1代表可以
installonly_limit=5 ? ? ? ? ? ? ? ? ? ? ? ? //保存几个内核 5代表5个
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-releaseyum的repo配置文件中可用的变量:
$releasever: 当前OS的发行版的主版本号,如:8,7,6
$arch: CPU架构,如:aarch64, i586, i686,x86_64等
$basearch:系统基础平台;i386, x86_64
$contentdir:表示目录,比如:centos-8,centos-7
$YUM0-$YUM9:自定义变量
位置:/etc/yum.repos.d/*.repo
一定是 .repo 结尾
位置:/var/log/yum.log
命令 | 不加关键字 | 加入关键词、软件包、软件包组 |
---|---|---|
yum list | 显示所有可用包 | 单个的可安装包 |
yum info | 显示所有可用包的信息 | 单个具体的信息 |
yum search | \ | 模糊查找所有的相关信息 |
yum provides | \ | 精确查找 |
yum grouplist | 显示所有可用包组 | 显示具体的包组 |
yum groupinfo | 显示所有的包组具体信息 | 显示具体的包组的具体信息 |
yum install | \ | 安装具体软件包 |
yum groupinstall | \ | 安装具体软件包组 |
yum update | 所有软件升级 | 具体软件升级 |
命令 | 不加关键字 | 加入关键词、软件包、软件包组 |
---|---|---|
yum group update | 所有包组升级 | 具体包组升级 |
yum remove | \ | 卸载具体软件 |
yum groupremove | \ | 卸载具体包组软件 |
yum history | 查看当前yum操作历史 | \ |
yum history undo | 加入序号卸载序号里安装的软件 | \ |
yum history redo | 加入序号重新执行序号里的操作 | \ |
显示可用的安装包,如不加软件名是显示所有的可用包
[root@localhost ~]# yum list httpd
[root@localhost ~]# yum list *httpd*
#包含httpd 的软件包
可以理解为rpm -qi(已安装)
显示安装包详细信息,详情如下
[root@localhost ~]# yum info httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
可安装的软件包
名称 ? ?:httpd
架构 ? ?:x86_64
版本 ? ?:2.4.6
发布 ? ?:67.el7.centos
大小 ? ?:2.7 M
源 ? ?:abc
简介 ? ?: Apache HTTP Server
网址 ? ?:http://httpd.apache.org/
协议 ? ?: ASL 2.0
描述 ? ?: The Apache HTTP Server is a powerful, efficient, and
? ? ? ? ? ? : extensible web server.
(如不加软件名是显示所有包的详细信息 ?)
根据关键字查找软件安装包,相当于你只知道这个包里的某个关键字会全部给你匹配出来
?[root@localhost ~]# yum search ftp
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
========================= N/S matched: ftp =========================
ftp.x86_64 : The standard UNIX FTP (File Transfer Protocol) client
tftp.x86_64 : The client for the Trivial File Transfer Protocol
? ? ? ? ? ? : (TFTP)
tftp-server.x86_64 : The server for the Trivial File Transfer
? ? ? ? ? ? ? ? ? ?: Protocol (TFTP)
vsftpd.x86_64 : Very Secure Ftp Daemon
curl.x86_64 : A utility for getting files from remote servers (FTP,
? ? ? ? ? ? : HTTP, and others)
lftp.x86_64 : A sophisticated file transfer program
你知道某个命令却不知道具体的包可以用此命令查找
写绝对路径
?当不知道绝对路径 前面写*
安装包组的查询 不加包组名 就是显示所有
不加包组名显示全部
安装软件包,如例子yum install安装http服务? ? 加? -y
包组安装同yum install
?yum group install gnome desktop -y
更新包组,可以单个也可以全部 后面加具体包组名称就是单个更新,不加就是全部更新。
组包更新和单个安装包更新差不多
卸载已安装的软件必须加软件名
同软件包卸载不做赘述
查看历史的使用记录
具体使用环境:
①?直接卸载,只能卸载主包,载不了依赖关系
②??找到 history
yum history info 7
? ?再undo
可以使用yum history undo 4 进行卸载,这样对比remove好处是可以将所有的依赖都删除
yum history redo 4 (再来一次)
yum history undo 6 (取消操作)
1.1?目的:国外云仓库比较慢,可以使用阿里云仓库代替
1.2切换到 yum.repo.d 目录 将自带的仓库移走
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv *.repo bak/
[root@localhost yum.repos.d]# ls
bak
1.3? ?手搓阿里云仓库
[ali]
name=aliyun
#baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/? ? ? ? ? ? ? ? ??
gpgcheck=0
1.4?手搓额外元仓库
[epel] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//epel源仓库
name=epel
baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
gpgcheck=0
1.5?手搓更新包仓库
[update] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //更新包仓库
name=update
baseurl=https://mirrors.aliyun.com/centos/7/updates/x86_64/
gpgcheck=0
注意:1,baseurl=后面可接多条地址
? ? ? ? ? ?2,这个地址一定要到? ?能看到元数据和安装包的页面
2.1? 实验目的:
生产环境中,让一台机器(服务机)单独作为软件安装存储机器,其他机器可省下更多的空间
服务机:
2.2?服务机下载?vsftpd
2.3?服务机? 启动vsftpd?程序
2.4? 在? /var/ftp/? ?新建一个ccc文件夹? ? 并将光盘挂载到这个文件里
这样我们使用ccc? 这个文件夹等于使用? 光盘了(光盘里有packages? 和元数据)
2.5? ?去到客户机
把有干扰的网络元全部移走
2.6? 手搓一个? 本地元
3.1? 实验目的:
生产环境中,让一台机器(服务机)单独作为软件安装存储机器,其他机器可省下更多的空间
步骤与ftp方式搭建云仓库?基本一致
2通过httpd 协议搭建内网yum仓库服务器
服务端:
systemctl ? stop ?firewalld
seteforce ? 0
yum ?install ?httpd
systemctl ?stop ?nginx
systemctl ?start ? httpdcd ?/var/www/html
mkdir ? centos7
mount /dev/sr0 ? ? ?/var/www/html/centos7客户端
systemctl ? stop ?firewalld
seteforce ? 0
cd ?/etc/yum.repos.d
mkdir ?bak
mv *.repo ? bak
vim? http.repo
[http]
name=http
baseurl=http://192.168.91.100/centos7 ??
gpgcheck=0
5.1?实验目的:防止以后没网,也要下载网络元的软件,服务机先把网络仓库下到本地,
5.2? 此项实验和? ? 实验6相似
5.3? ?先下载额外元
[root@localhost ~]#yum install epel-release
#安装epel源 ? ?生成epel仓库文件
5,4? ?同步epl?元? ?到指定文件夹
[root@localhost ~]# reposync -r epel -p /root/
#下载同步epel源 ?根据epel仓库文件去找目录
?5.5? ?此时我们现在只有安装包(packages)? ? ? ? ? ? ? ? ? ?所以我们需要安装? ? ?建立元数据的命令
[root@localhost ~]# yum -y install createrepo
#安装建立元数据命令
?5.6? 建立元数据? ?这样? ?/root/?有安装包也有元数据了
[root@localhost ~]# createrepo -v /root/epel
#建立元数据 ? ?软件目录 ?依赖关系 ?
6.1?实验目的:自研公司小软件 想要用yum安装
原理,要到该软件所有的安装包和依赖关系,手搓一个本地元? ? 本地安装
6.2? 假如tree? 是我们自研的小软件,想要用yum安装
6.3? 将安装包? 挪到我们新建的 /data/test/packages/? ??
?6.4? createrepo? ? -v? ?/data/test/
在/data/test/? ?生成元信息
6.5? ?我们看到??/data/test/? ? ? ? 有我们安装软件不可缺少的两项? ?安装包和元数据了
6.6? 避免干扰,将网络元移走,手搓一个本地元
?
6.7? 清除缓存,重新下载元数据
6.8?安装成功
7.1实验目的:客户机没有任何网 ,服务机只下载不安装,再把安装包一个一个拷给客户机
7.2??--downloadonly #只下载不安装
? ? ? ??--downloaddir=绝对目录路径 ?#下载到某一目录 ?
7.3? ls? /opt? ? ?然后再导给客户机就好
?
?
1,rpm -e rpm?
直接删除? ?是删除不掉的
2,rpm -e rpm --nodeps?
需要强制删除? ? ? ? (--nodeps?#忽略依赖关系)
3,关机重启? ?321? 进入急救模式
4,?把rpm 从光驱 装进根
mkisofs -r -o ?/root/xxx.iso ?/data/centos7/epel?
制作成镜像
分为编译安装内核? ? ? ?和yum安装内核
此次展示yum安装内核
1,?安装? ?yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
2,?会新增一个元
?3,改?元配置文件
?
4,?找到? 内核5,?看本机目前的内核
?6,找到? lt?版本的主包
7,?升级内核
8,升级内核后,并不会覆盖原来的内核? ?开机界面可选