yum仓库简介
1.1 yum简介
yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间。
为什么会有依赖关系的发生 因为linux本身就是以系统简洁为自身优势,所以在安装操作系统的时候并没有将所有的库文件以及编译软件包进行安装,所以在linux操作系统上进行软件安装的时候会出现软件包依赖的情况。
1.2yum 实现过程
要有安装包
安装包:
1.光驱里自带 挂载提供软件包
先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。
yum需要依赖于环境,依赖于服务端和客户端,允许跨网络
服务器:
-
RPM包 (Packages文件夹中)
-
元数据(repodata文件夹:目录(软件的目录),软件的依赖关系,软件的位置)
客户端的配置文件中
baseurl=地址 一定要写到到 这两个文件夹 repodata packages 的上级目录
最终形成两个文件夹Packages (包文件夹一般取名packages)和 repodata(元数据文件夹)
-
光盘的仓库基本仓库 比较常用的
-
epel扩展仓库 比较新
1.3如何实现安装服务
2.yum配置文件及命令
2.1 yum配置文件
2.1.1 主配置文件
位置:/etc/yum.conf //主配置文件
[root@localhost ~]#vim /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-release
yum的repo配置文件中可用的变量:
$releasever: 当前OS的发行版的主版本号,如:8,7,6
$arch: CPU架构,如:aarch64, i586, i686,x86_64等
$basearch:系统基础平台;i386, x86_64
$contentdir:表示目录,比如:centos-8,centos-7
$YUM0-$YUM9:自定义变量
2.1.2 仓库设置文件
位置:/etc/yum.repos.d/*.repo //yum仓库文件位置
例子里是默认的yum仓库 是centos官方的yum源,需要联网才可以使用(网络源)
[root@localhost ~]#vim /etc/yum.conf
[root@localhost ~]#cd /etc/yum.repos.d/
[root@localhost yum.repos.d]#ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
2.1.3 日志文件
位置:/var/log/yum.log //日志文件
[root@localhost yum.repos.d]#cat /var/log/yum.log //查看日志文件
[root@localhost yum.repos.d]#
#这里我是新虚拟机没有日志
2.2 yum命令详解
命令 | 不加关键字 | 加入关键词、软件包、软件包组 |
---|---|---|
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 | 加入序号重新执行序号里的操作 | \ |
2.2.1查询
1.yum list [软件名]
显示可用的安装包,如不加软件名是显示所有的可用包,由于软件过多不做例子。
[root@localhost yum.repos.d]#yum list httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
可安装的软件包
httpd.x86_64 2.4.6-99.el7.centos.1 updates
[root@localhost yum.repos.d]#yum list *httpd*
#包含httpd 的软件包
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
可安装的软件包
httpd.x86_64 2.4.6-99.el7.centos.1 updates
httpd-devel.x86_64 2.4.6-99.el7.centos.1 updates
httpd-manual.noarch 2.4.6-99.el7.centos.1 updates
httpd-tools.x86_64 2.4.6-99.el7.centos.1 updates
keycloak-httpd-client-install.noarch 0.8-1.el7 base
libmicrohttpd.i686 0.9.33-2.el7 base
libmicrohttpd.x86_64 0.9.33-2.el7 base
libmicrohttpd-devel.i686 0.9.33-2.el7 base
libmicrohttpd-devel.x86_64 0.9.33-2.el7 base
libmicrohttpd-doc.noarch 0.9.33-2.el7 base
python2-keycloak-httpd-client-install.noarch 0.8-1.el7 base
2. yum info [软件名]
显示安装包详细信息,详情如下(如不加软件名是显示所有包的详细信息)
[root@localhost yum.repos.d]#yum info httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
可安装的软件包
名称 :httpd
架构 :x86_64
版本 :2.4.6
发布 :99.el7.centos.1
大小 :2.7 M
源 :updates/7/x86_64
简介 : Apache HTTP Server
网址 :http://httpd.apache.org/
协议 : ASL 2.0
描述 : The Apache HTTP Server is a powerful, efficient, and extensible
: web server.
3.yum search <关键词>
根据关键字查找软件安装包,相当于你只知道这个包里的某个关键字会全部给你匹配出来
[root@localhost yum.repos.d]#yum search httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
=========================================== N/S matched: httpd ===========================================
keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client
libmicrohttpd-devel.i686 : Development files for libmicrohttpd
libmicrohttpd-devel.x86_64 : Development files for libmicrohttpd
libmicrohttpd-doc.noarch : Documentation for libmicrohttpd
python2-keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client
httpd.x86_64 : Apache HTTP Server
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
httpd-manual.noarch : Documentation for the Apache HTTP server
httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
libmicrohttpd.i686 : Lightweight library for embedding a webserver in applications
libmicrohttpd.x86_64 : Lightweight library for embedding a webserver in applications
mod_auth_mellon.x86_64 : A SAML 2.0 authentication module for the Apache Httpd Server
mod_dav_svn.x86_64 : Apache httpd module for Subversion server
名称和简介匹配 only,使用“search all”试试。
4.yum provides <关键词>
你知道某个命令却不知道具体的包可以用此命令查找
[root@localhost yum.repos.d]#yum provides httpd-tools
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
httpd-tools-2.4.6-95.el7.centos.x86_64 : Tools for use with the Apache HTTP Server
源 :base
httpd-tools-2.4.6-97.el7.centos.x86_64 : Tools for use with the Apache HTTP Server
源 :updates
[root@localhost ftp]#yum provides mime.types
#不写路径查找不到
No matches found
[root@localhost ftp]#yum provides */mime.types
#加上通配符
5.yum grouplist [包组名]
安装包组的查询 不加包组名 就是显示所有(此处例子由于安装了中文环境,无法显示英文包组名称无法直接复制中文使用,建议直接安装英文操作系统)
[root@localhost yum.repos.d]#yum grouplist
已加载插件:fastestmirror, langpacks
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
可用的环境分组:
最小安装
基础设施服务器
计算节点
文件及打印服务器
基本网页服务器
虚拟化主机
带 GUI 的服务器
GNOME 桌面
KDE Plasma Workspaces
开发及生成工作站
可用组:
传统 UNIX 兼容性
兼容性程序库
图形管理工具
安全性工具
开发工具
控制台互联网工具
智能卡支持
科学记数法支持
系统管理
系统管理工具
6.yum groupinfo <包组名>
不加包组名显示全部
[root@localhost yum.repos.d]# yum groupinfo "GNOME Desktop"
已加载插件:fastestmirror, langpacks
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
环境分组:GNOME 桌面
环境 ID:gnome-desktop-environment
描述:GNOME 是一个非常直观且用户友好的桌面环境。
必备组:
+base
+core
+desktop-debugging
+dial-up
+directory-client
+fonts
+gnome-desktop
+guest-agents
+guest-desktop-agents
+input-methods
+internet-browser
+java-platform
+multimedia
+network-file-system-client
+networkmanager-submodules
+print-client
+x11
可选组:
+backup-client
+gnome-apps
+internet-applications
+legacy-x
+office-suite
+remote-desktop-clients
+smart-card
2.2.2 yum安装升级
1. yum install [软件名]
安装软件包,如例子yum install安装tree服务
[root@localhost yum.repos.d]#yum install tree.x86_64 -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 tree.x86_64.0.1.6.0-10.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
==========================================================================================================
Package 架构 版本 源 大小
==========================================================================================================
正在安装:
tree x86_64 1.6.0-10.el7 base 46 k
事务概要
==========================================================================================================
安装 1 软件包
总下载量:46 k
安装大小:87 k
Downloading packages:
tree-1.6.0-10.el7.x86_64.rpm FAILED
http://mirrors.jlu.edu.cn/centos/7.9.2009/os/x86_64/Packages/tree-1.6.0-10.el7.x86_64.rpm: [Errno 14] curl#6 - "Could not resolve host: mirrors.jlu.edu.cn; Name or service not known"/s | 0 B --:--:-- ETA
正在尝试其它镜像。
警告:/var/cache/yum/x86_64/7/base/packages/tree-1.6.0-10.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY ] 0.0 B/s | 0 B --:--:-- ETA
tree-1.6.0-10.el7.x86_64.rpm 的公钥尚未安装
tree-1.6.0-10.el7.x86_64.rpm | 46 kB 00:00:00
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥
导入 GPG key 0xF4A80EB5:
用户ID : "CentOS-7 Key (CentOS 7 Official Signing Key) <[email protected]>"
指纹 : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
软件包 : centos-release-7-4.1708.el7.centos.x86_64 (@anaconda)
来自 : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : tree-1.6.0-10.el7.x86_64 1/1
验证中 : tree-1.6.0-10.el7.x86_64 1/1
已安装:
tree.x86_64 0:1.6.0-10.el7
完毕!
2. yum groupinstall <包组名>
包组安装同yum install 不做过多叙述(包组过多省略结果)
[root@localhost yum.repos.d]#yum group install gnome desktop -y
已加载插件:fastestmirror, langpacks
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
Warning: group desktop does not exist.
正在解决依赖关系
--> 正在检查事务
#########安装图形化########################## linux图形化界面
#如无法使用请先升级
yum -y upgrade
#再安装
yum -y groups install "GNOME Desktop"
3. yum update
更新包组,可以单个也可以全部 后面加具体包组名称就是单个更新,不加就是全部更新。
但是首先你要有更新的包组库否则也无法更新。
[root@localhost yum.repos.d]# yum upgrade 后面还有很多省略 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * epel: mirrors.tuna.tsinghua.edu.cn 正在解决依赖关系 --> 正在检查事务
4.yum groupupdate
组包更新和单个安装包更新差不多此处不举例子赘述。
例子中没有更新的包组所以无法安装。
[root@localhost yum.repos.d]# yum groupupdate
已加载插件:fastestmirror, langpacks
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
* epel: mirror.sjtu.edu.cn
Maybe run: yum groups mark install (see man yum)
指定组中没有可安装或升级的软件包
2.2.3 软件卸载
1.yum remove <软件名>
卸载已安装的软件必须加软件名
[root@localhost yum.repos.d]# yum remove tree
已加载插件:fastestmirror, langpacks
正在解决依赖关系
--> 正在检查事务
---> 软件包 tree.x86_64.0.1.6.0-10.el7 将被 删除
--> 解决依赖关系完成
依赖关系解决
==========================================================================================================
Package 架构 版本 源 大小
==========================================================================================================
正在删除:
tree x86_64 1.6.0-10.el7 @base 87 k
事务概要
==========================================================================================================
移除 1 软件包
安装大小:87 k
是否继续?[y/N]:y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在删除 : tree-1.6.0-10.el7.x86_64 1/1
验证中 : tree-1.6.0-10.el7.x86_64 1/1
删除:
tree.x86_64 0:1.6.0-10.el7
完毕!
2. yum groupremove <包组名>
同软件包卸载不做赘述
3. yum history
查看历史的使用记录
[root@localhost yum.repos.d]#yum history 已加载插件:fastestmirror, langpacks ID | 登录用户 | 日期和时间 | 操作 | 变更数 ------------------------------------------------------------------------------- 5 | root <root> | 2023-08-07 22:56 | Erase | 1 4 | root <root> | 2023-08-07 22:05 | I, O, U | 974 EE 3 | root <root> | 2023-08-07 22:01 | I, U | 14 2 | root <root> | 2023-08-07 21:59 | Install | 1 1 | 系统 <空> | 2023-07-14 18:27 | Install | 1372 history list [root@localhost yum.repos.d]#
选择ID 1,2,3,4,5,6
可以使用yum history undo 6 进行卸载,这样对比remove好处是可以将所有的依赖都删除
例子中将 6卸载
[root@localhost yum.repos.d]#yum history undo 6
已加载插件:fastestmirror, langpacks
Undoing transaction 6, from Mon Aug 7 23:00:46 2023
安装 tree-1.6.0-10.el7.x86_64 @base
正在解决依赖关系
--> 正在检查事务
---> 软件包 tree.x86_64.0.1.6.0-10.el7 将被 删除
--> 解决依赖关系完成
依赖关系解决
==========================================================================================================
Package 架构 版本 源 大小
==========================================================================================================
正在删除:
tree x86_64 1.6.0-10.el7 @base 87 k
事务概要
==========================================================================================================
移除 1 软件包
安装大小:87 k
是否继续?[y/N]:y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在删除 : tree-1.6.0-10.el7.x86_64 1/1
验证中 : tree-1.6.0-10.el7.x86_64 1/1
删除:
tree.x86_64 0:1.6.0-10.el7
完毕!
[root@localhost yum.repos.d]# yum history info 7 #查看第7次具体卸载了什么
[root@localhost yum.repos.d]#yum history info 7
已加载插件:fastestmirror, langpacks
事务 ID: 7
起始时间 : Mon Aug 7 23:01:19 2023
启动 RPM 数据库 : 1458:7cf43301f2e71c27ced33d973f0a52a7ea515c92
结束时间 : (0 秒)
结束 RPM 数据库 : 1457:02ba7747a919c421ed08db87267b5067ba97a9c4
用户 : root <root>
返回码 : 成功
命令行 : history undo 6
事务完成属主:
已安装 rpm-4.11.3-48.el7_9.x86_64 @updates
已安装 yum-3.4.3-168.el7.centos.noarch @base
已安装 yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch @base
已变更的包:
删除 tree-1.6.0-10.el7.x86_64 @base
history info
如果后悔 卸载 可以使用两种方式
yum history redo 7 (重新安装一遍)
yum history undo 6 (反悔卸载等于重新安装一遍)
3. 搭建仓库的方式
本地yum仓库 没有网络的情况下, 光盘
软件仓库的提供方式 FTP服务:ftp://ip地址/站点里路径 HTTP服务:http://域名或者ip地址/站点里的路径 本地目录:file://绝对路径 (file:///mnt 此处第三个/为根目录) 看我前面文章有写过
3.2 搭建阿里云仓库 (http方式外网环境)
国外云仓库比较慢,可以使用阿里云仓库代替 看合集
3.3 ftp方式搭建云仓库
服务端:192.168.1.100
客户端:192.168.1.200 看合集
3.4 http 方式搭建
看合集
4.存储和NFS共享
存储类型
存储类型分为三种
-
直连式存储:Direct-Attached Storage,简称DAS
-
网络附加存储:Network-Attached Storage,简称NAS
-
存储区域网络:Storage Area Network,简称SAN
DAS:存储和主机是直连的,家用电脑,服务和硬盘直连,存储和主机在一台机器上
SAN:有一定距离,主机核存储设备距离先对较远 ,只提供空间不提供文件系统,管理等其他软件服务,只相当于多了一块硬盘
NAS:存储在远程,文件系统也在远程,这块空间,你可以直接访问上面的文件,你只能看到文件,文件共享NFS FTP 等都是NAS
三种存储架构的应用场景
-
DAS虽然比较古老了,但是还是很适用于那些数据量不大,对磁盘访问速度要求较高的中小企业
-
NAS多适用于文件服务器,用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低
-
SAN则适用于大型应用或数据库系统,缺点是成本高、较为复杂
1.NFS简介
NFS(Network File System 网络文件服务) 文件系统(软件)文件的权限 NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。 通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源 NFS 也是 NAS 存储 设备必然支持的一种协议
NFS 它是文件系统,是操作系统内核来管理的
特点: 采用TCP/IP传输网络文件 安全性低 简单易操作 适合局域网环境
NFS优势:节省本地存储空间,将常用的数据如:/home 目录,存放在NFS服务器上且可以通过网络访问,将减少本地磁盘的使用率。
1.2NFS软件介绍
软件包:nfs-utils(包括服务器端和客户端)
相关软件包:rpcbind(必须)
nfs端口号不固定 **RPC端口号111
NFS服务主要进程:
-
rpc.nfsd 最主要的NFS进程,管理客户端是否可登录
-
rpc.mountd 挂载和卸载NFS文件系统,包括权限管理
-
rpc.lockd 非必要,管理文件锁,避免同时写出错
-
rpc.statd 非必要,检查文件一致性,可修复文件
日志:/var/lib/nfs/
NFS配置文件:
/etc/exports
/etc/exports.d/*.exports
1.3 NFS共享配置文件格式
/etc/exports
/data 主机1(opt1,opt2) 主机2(opt1,opt2)...
共享目录 共享给哪个主机
每个条目指定目录导出到的哪些主机,及相关的权限和选项
默认选项:(ro,sync,root_squash,no_all_squash)
ro,rw 只读和读写
async 异步,数据变化后不立即写磁盘,先写入到缓冲区中,过一段时间再写入磁盘,性能高,安全性低
sync(1.0.0后为默认)同步,数据在请求时立即写入共享存储磁盘,性能低,安全性高
root_squash (默认)远程root映射为nfsnobody,UID为65534,CentOS8 为nobody,CentOS
7以前的版本为nfsnobody
no_root_squash 远程root映射成NFS服务器的root用户
all_squash 所有远程用户(包括root)都变成nfsnobody,CentOS8 为nobody
no_all_squash (默认)保留共享文件的UID和GID
anonuid和anongid 指明匿名用户映射为特定用户UID和组GID,而非nobody,可配合all_squash使用
/data/nfs1 *(rw,all_squash,anonuid=1002,anongid=1002)
共享规则:
#查看当前共享信息
exportfs -v
[root@localhost ~]#exportfs -r
#重新加载服务配置
exportfs: No options for /share *: suggest *(sync) to avoid warning
###客户机上如何查看共享
[root@localhost yum.repos.d]#showmount -e 192.168.91.100
#
Export list for 192.168.91.100:
/share *
[root@localhost yum.repos.d]#mount 192.168.91.100:/share /mnt/nfs1/
# 对方地址 共享文件夹 挂载点
[root@localhost yum.repos.d]#df
[root@localhost data]#chmod 777 /data/ -R
[root@localhost data]#chmod 755 /data/ -R
#恢复权限
[root@localhost data]#setfacl -m u:nfsnobody:rwx /data/nfs1
#只给 nfsnobody用户 权限
[root@localhost data]#setfacl -b /data/nfs1
#删除acl 列表
[root@localhost nfs1]#ll
#变成nobody 由root_squash(压缩缩小) 决定
总用量 4
-rw-r--r--. 1 nfsnobody nfsnobody 0 3月 21 01:17 111.txt
-rwxrwxrwx. 1 root root 2259 3月 21 01:12 passwd
#普通用户不压榨 由 no_all_squash决定
/share *(rw,no_root_squash)
###用户 uid问题####
统一压榨成指定用户
2.搭建过程
看合集
5.工作环境
5.1误将 rpm 软件删除
看合集
标签:x86,简介,64,yum,root,el7,localhost,搭建 From: https://www.cnblogs.com/sl08/p/17617429.html