yum仓库及NFS共享
1、yum简介
yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间
yum需要依赖于环境,依赖于服务端和客户端,允许跨网络
服务器:
-
RPM包 (Packages文件夹中)
-
元数据(repodata文件夹:目录(软件的目录),软件的依赖关系,软件的位置)
最终形成两个文件夹Packages (包文件夹一般取名packages)和 repodata(元数据文件夹)
仓库类型:
-
光盘的仓库基本仓库 比较常用的
-
epel扩展仓库 比较新
客户端的配置文件中
baseurl=地址 一定要写到到 这两个文件夹 repodata packages 的上级目录
2、yum配置文件及命令
2.1 yum配置文件
2.1.1 主配置文件
位置:/etc/yum.conf //主配置文件
[root@31yml ~]# /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 yum.repos.d]# ls /etc/yum.repos.d/ bak CentOS-Debuginfo.repo CentOS-Sources.repo CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo CentOS-CR.repo CentOS-Media.repo
2.1.3 日志文件
位置:/var/log/yum.log //日志文件
[root@31yml ~]#cat /var/log/yum.log Aug 03 21:51:34 Updated: 12:dhcp-libs-4.2.5-83.el7.centos.1.x86_64 Aug 03 21:51:34 Updated: 12:dhcp-common-4.2.5-83.el7.centos.1.x86_64 Aug 03 21:51:34 Installed: 32:bind-export-libs-9.11.4-26.P2.el7_9.13.x86_64 Aug 03 21:51:35 Installed: 12:dhcp-4.2.5-83.el7.centos.1.x86_64 Aug 03 21:51:35 Updated: 12:dhclient-4.2.5-83.el7.centos.1.x86_64 ......more......
2.2 yum命令
2.2.1 查询
1 yum list [软件名]
[root@31yml ~]#yum list httpd 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.ustc.edu.cn * extras: mirrors.163.com * updates: mirrors.ustc.edu.cn 可安装的软件包 httpd.x86_64 2.4.6-99.el7.centos.1 updates
2 yum info [软件名]
[root@31yml ~]#yum info httpd 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.ustc.edu.cn * extras: mirrors.163.com * updates: mirrors.ustc.edu.cn 可安装的软件包 名称 :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@31yml ~]#yum search ftp 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.ustc.edu.cn * extras: mirrors.163.com * updates: mirrors.ustc.edu.cn ======================================== N/S matched: ftp ========================================= ftp.x86_64 : The standard UNIX FTP (File Transfer Protocol) client lftp-scripts.noarch : Scripts for lftp syslinux-tftpboot.noarch : SYSLINUX modules in /var/lib/tftpboot, available for network booting 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 vsftpd-sysvinit.x86_64 : SysV initscript for vsftpd daemon curl.x86_64 : A utility for getting files from remote servers (FTP, HTTP, and others) lftp.i686 : A sophisticated file transfer program lftp.x86_64 : A sophisticated file transfer program wget.x86_64 : A utility for retrieving files using the HTTP or FTP protocols 名称和简介匹配 only,使用“search all”试试。
4 yum provides <关键词>
你知道某个命令却不知道具体的包可以用此命令查找
[root@localhost Packages]#rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm 错误:依赖检测失败: httpd-tools = 2.4.6-67.el7.centos 被 httpd-2.4.6-67.el7.centos.x86_64 需要 [root@localhost Packages]#yum provides httpd-tools 已加载插件:fastestmirror, langpacks Determining fastest mirrors * base: mirrors.tuna.tsinghua.edu.cn * extras: mirrors.tuna.tsinghua.edu.cn * updates: mirrors.ustc.edu.cn httpd-tools-2.4.6-95.el7.centos.x86_64 : Tools for use with the Apache HTTP Server 源 :base [root@localhost ftp]#ll /etc/mime.types -rw-r--r--. 1 root root 51787 5月 15 2013 /etc/mime.types [root@localhost ftp]#yum provides mime.types #不写路径查找不到 No matches found [root@localhost ftp]#yum provides */mime.types #加上通配符 [root@localhost ~]#yum whatprovides ftp 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile ftp-0.17-67.el7.x86_64 : The standard UNIX FTP (File Transfer : Protocol) client 源 :abc
5 yum grouplist [包组名]
安装包组的查询 不加包组名 就是显示所有(此处例子由于安装了中文环境,无法显示英文包组名称无法直接复制中文使用,建议直接安装英文操作系统)
[root@31yml ~]#yum grouplist 已加载插件:fastestmirror, langpacks 没有安装组信息文件 Maybe run: yum groups mark convert (see man yum) Loading mirror speeds from cached hostfile * base: mirrors.ustc.edu.cn * extras: mirrors.163.com * updates: mirrors.ustc.edu.cn 可用的环境分组: 最小安装 基础设施服务器 计算节点 文件及打印服务器 基本网页服务器 虚拟化主机 带 GUI 的服务器 GNOME 桌面 KDE Plasma Workspaces 开发及生成工作站 可用组: 传统 UNIX 兼容性 兼容性程序库 图形管理工具 安全性工具 开发工具 控制台互联网工具 智能卡支持 科学记数法支持 系统管理 系统管理工具 完成
6 yum groupindo <包组名>
不加包组名显示全部
[root@31yml ~]#yum groupinfo "GNOME Desktop" 已加载插件:fastestmirror, langpacks 没有安装组信息文件 Maybe run: yum groups mark convert (see man yum) Loading mirror speeds from cached hostfile * base: mirrors.ustc.edu.cn * extras: mirrors.163.com * updates: mirrors.ustc.edu.cn 环境分组: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
FTP服务:ftp://
HTTP服务:http://
本地目录:file://
yum仓库服务器,在内网就能使用
在服务器端安装http服务(可以是httpd,也可以是nginx)
yum install httpd -y(安装网页软件,提供文件共享服务)
mount /dev/se0 /var/www/html/(提供安装包)
systemctl start httpd
mount /dev/se0 /var/www/html/ ls /var/www/html/
客户端
cd /etc/yum.repos.d mkdir bak mv *.repo bak vim http.repo [http] name=http baseurl=http://服务器的ip地址 gpgcheck=0 yum clean all yum makecache
2.2.2 yum安装升级
1. yum install [软件名]
前提:网卡DNS服务器地址配置外网 218.2.135.1 114.114.114.114 8.8.8.8 [root@31yml ~]#yum install httpd
2. yum groupinstall <包组名>
[root@31yml ~]# yum group install gnome desktop -y
3. yum update
更新包组,可以单个也可以全部 后面加具体包组名称就是单个更新,不加就是全部更新。
但是首先你要有更新的包组库否则也无法更新。
[root@31yml ~]# yum upgrade
4. yum groupupdate
组包更新和单个安装包更新差不多此处不举例子赘述。
2.2.3 软件卸载
1.yum remove <软件名>
卸载已安装的软件必须加软件名
[root@localhost yum.repos.d]# yum remove 已加载插件:fastestmirror, langpacks 错误:需要为 remove 指定软件包列表 [root@localhost yum.repos.d]# yum remove httpd 已加载插件:fastestmirror, langpacks 正在解决依赖关系 --> 正在检查事务 ---> 软件包 httpd.x86_64.0.2.4.6-67.el7.centos 将被 删除 --> 解决依赖关系完成 ......more......
2. yum groupremove <包组名>
同软件包卸载不做赘述
3. yum history
查看历史的使用记录
[root@localhost yum.repos.d]# yum history 已加载插件:fastestmirror, langpacks ID | 登录用户 | 日期和时间 | 操作 | 变更数 ------------------------------------------------------------------------------- 5 | root <root> | 2021-06-24 00:02 | Erase | 1 4 | root <root> | 2021-06-23 11:03 | Install | 1 3 | root <root> | 2021-06-23 11:03 | Install | 1 2 | root <root> | 2021-06-23 11:03 | Install | 5 1 | 系统 <空> | 2021-06-15 22:40 | Install | 1318 history list
选择ID 1,2,3,4,5
可以使用yum history undo 4 进行卸载,这样对比remove好处是可以将所有的依赖都删除
例子中将 4卸载
[root@localhost yum.repos.d]# yum history undo 4 已加载插件:fastestmirror, langpacks Undoing transaction 4, from Wed Jun 23 11:03:38 2021 安装 vsftpd-3.0.2-22.el7.x86_64 @abc 正在解决依赖关系 --> 正在检查事务 ---> 软件包 vsftpd.x86_64.0.3.0.2-22.el7 将被 删除 ......more......
再次使用yum history 查看多了一条6 记录是卸载记录
[root@localhost yum.repos.d]# yum history 已加载插件:fastestmirror, langpacks ID | 登录用户 | 日期和时间 | 操作 | 变更数 ------------------------------------------------------------------------------- 6 | root <root> | 2021-06-24 00:11 | Erase | 1 5 | root <root> | 2021-06-24 00:02 | Erase | 1 4 | root <root> | 2021-06-23 11:03 | Install | 1 3 | root <root> | 2021-06-23 11:03 | Install | 1 2 | root <root> | 2021-06-23 11:03 | Install | 5 1 | 系统 <空> | 2021-06-15 22:40 | Install | 1318 history list
如果后悔 卸载 可以使用两种方式
yum history redo 4 (重新安装一遍)
yum history undo 6 (反悔卸载等于重新安装一遍)
3、搭建仓库的方式
本地yum仓库 没有网络的情况下用 光盘
软件仓库的提供方式 FTP服务:ftp://ip地址/站点里路径 HTTP服务:http://域名或者ip地址/站点里的路径 本地目录:file://绝对路径 (file:///mnt 此处第三个/为根目录)
3.1 搭建本地yum仓库
#关闭防火墙 mount /dev/sr0 /mnt cd /etc/yum.repos.d mkdir bak mv *.repo bak/ vim local.repo [ftp] name=ftp baseurl=file:///mnt gpgcheck=0 yum clean all yum makecache yum install dhcp
3.2 http方式搭建
服务端:192.168.177.100 yum install httpd mount /dev/sr0 /var/www/html 客户端: cd /etc/yum.repos.d mkdir bak mv *.repo bak/ vim httpd.repo [httpd] name=http baseurl=http://192.168.177.100 gpgcheck=0 yum clean all yum makecache yum install dhcp
4、存储和NFS共享
存储类型分为三种
-
直连式存储:Direct-Attached Storage,简称DAS
-
网络附加存储:Network-Attached Storage,简称NAS
-
存储区域网络:Storage Area Network,简称SAN
DAS:存储和主机是直连的,家用电脑,服务和硬盘直连,存储和主机在一台机器上 SAN:有一定距离,主机核存储设备距离先对较远 ,只提供空间不提供文件系统,管理等其他软件服务,只相当于多了一块硬盘 NAS:存储在远程,文件系统也在远程,这块空间,你可以直接访问上面的文件,你只能看到文件,文件共享NFS FTP 等都是NAS
三种存储架构的应用场景
-
DAS虽然比较古老了,但是还是很适用于那些数据量不大,对磁盘访问速度要求较高的中小企业
-
NAS多适用于文件服务器,用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低
-
SAN则适用于大型应用或数据库系统,缺点是成本高、较为复杂
4.1 NFS简介
NFS(Network File System 网络文件服务) 文件系统(软件)文件的权限 NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。 通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源 NFS 也是 NAS 存储 设备必然支持的一种协议
NAS存储:
NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。(远端过程调用:自己没有这种功能,调用别人的功能) NFS 也是 NAS 存储 设备必然支持的一种协议 以完成远 程到本地的映射过程。在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务, 前者用于 NFS 共享发布和访问,后者用于 RPC 支持。 手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。
特点: 采用TCP/IP传输网络文件 安全性低 简单易操作 适合局域网环境
NFS原理:
4.2 NFS软件介绍
软件包: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
4.3 NFS共享配置文件格式
/dir 主机1(opt1,opt2) 主机2(opt1,opt2)... 共享目录 共享给哪个主机
格式说明:
-
以#开始的行为注释
-
主机格式
anonymous:表示使用*通配所有客户端 单个主机:ipv4,ipv6,FQDN IP networks:两种掩码格式均支持 172.18.0.0/255.255.0.0 172.18.0.0/16 wildcards:主机名通配,例如:*.magedu.com,IP不可以 netgroups:NIS域的主机组,@group_name #查看当前共享信息 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问题#### 统一压榨成指定用户
4.4 搭建过程
你可以复习添加一块新硬盘用作共享使用
服务端和客户端都需要安装软件,不区分服务端和客户端,基于内核的共享 [root@localhost httpd]#systemctl stop firewalld [root@localhost httpd]#setenforce 0 [root@localhost share]#yum install nfs-utils.x86_64 rpcbind -y #安装软件包 [root@localhost httpd]#mkdir /share #新建共享目录 [root@localhost httpd]#cd /share/ [root@localhost share]#chmod -R 777 /share/ #修改权限 [root@localhost share]#vim /etc/exports #编辑配置文件 /share * /share 192.168.91.0/24(rw,sync,no_root_squash) #共享目录 网段 读写,同步,无root权限 [root@localhost ~]# systemctl start rpcbind [root@localhost ~]# systemctl start nfs [root@localhost ~]#exportfs -vr #不重启生效 [root@localhost share]#exportfs -v #查看详细的nfs信息 #exportfs 可用于管理nfs -v 查看本机所有nfs -r 重读配置文件 -a 输出本机所有共享 /share 192.168.91.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash) [root@localhost ~]# netstat -anpt | grep rpc [root@localhost ~]# showmount -e Export list for localhost.localdomain: /opt/wwwroot 192.168.7.0/24 /var/ftp/pub 192.168.4.110,192.168.4.11 #查看本机发布的 NFS 共享目录 #客户机 [root@localhost ~]# mount 192.168.7.250:/opt/wwwroot /var/www/html # 服务器地址 冒号 对方共享文件夹 本地挂载点 [root@localhost ~]# vi /etc/fstab …… //省略部分信息 192.168.7.250:/opt/wwwroot /var/www/html nfs defaults,_netdev 0 0 #自动挂载 showmount -e 主机名 (查看远程主机nfs共享) #强制解挂载 [root@localhost ~]# umount /mnt t umount. nfs: /mnt : device is busy [root@localhost ~]# umount -lf /mnt
标签:x86,64,yum,NFS,共享,root,localhost From: https://www.cnblogs.com/bacolate/p/17613034.html