> 文章列表 > 部署YUM仓库及NFS共享服务

部署YUM仓库及NFS共享服务

部署YUM仓库及NFS共享服务

一、YUM仓库服务

1)YUM概述

YUM(Yellow dog Updater Modified)

基于RPM包构建的软件更新机制

可以自动解决依赖关系

所有软件包由集中的YUM软件仓库提供

linux本身就是以系统简洁为自身优势,所以在安装操作系统的时候并没有将所有的库文件以及编译软件包进行安装,所以在linux操作系统上进行软件安装的时候会出现软件包依赖的情况。yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。官方的源一般在国外,下载速度肯定有限,手动更改成国内的云可以大幅提升下载速度

        yum软件仓库中的rpm软件包可以是由红帽官方发布的,也可以是第三方发布的,当然也可以是自己编写的

2)准备安装源

软件仓库的提供方法

  • FTP服务:ftp://……
  • HTTP服务:http://……
  • 本地目录:file://……

RPM软件包的来源

  • CentOS发布的RPM包集合
  • 第三方组织发布的RPM包集合
  • 用户自定义的RPM包集合

构建CentOS 7 软件仓库

  • RPM包来自CentOS 7 DVD光盘
  • 通过FTP方法提供给客户机

在软件仓库中加入非官方RPM包组

包括存在依赖关系的所有RPM包

使用createrepo工具建立仓库数据文件

不同版本使用不同软件仓库 

RHEL\\CentOS .rpm           yum

Ubuntu、Debian .deb         apt

yum软件仓库类型

  • FTP源:ftp://……     一对一          安装快,但软件数量少,版本低
  • 在线源:http://……   一对多          同上
  • 本地源:file://……    一对多           软件数量多,版本新,但是安装前需要更新缓存

yum缓存信息 

二、yum配置文件及命令

1)yum配置文件

位置:/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:自定义变量

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

3)日志文件

位置:/var/log/yum.log //日志文件

[root@localhost ~]# cat /var/log/yum.log
Feb 18 10:12:12 Installed: tree-1.6.0-10.el7.x86_64
Feb 18 10:33:10 Installed: 12:dhcp-4.2.5-68.el7.centos.x86_64
Feb 20 08:46:40 Installed: tree-1.6.0-10.el7.x86_64

4)yum常见命令

命令

作用

yum repolist all 列出所有仓库
yum list all 列出仓库中所有软件包
yum info 软件包名称  查看软件包信息
yum install 软件包名称 安装软件包
yum reinstall 软件包名称 重新安装软件包
yum update 软件包名称 升级软件包
yum remove 软件包名称 卸载软件包
yum clean all 清除所有仓库缓存
yum check-update 检查可更新的软件包
yum grouplist 查看系统中已经安装的软件包组
yum groupinstall 软件包组 安装指定的软件包组
yum groupremove 软件包组 移除指定的软件包组

yum groupinfo 软件包组

查询指定的软件包组信息
yum history 查看当前yum操作历史
yum history undo 加入序号卸载序号里安装的软件
yum history redo 加入序号重新执行序号里的操作

5)命令详解

yum list [软件名]

显示可用的安装包,如不加软件名是显示所有的可用包

yum info [软件名]

显示安装包详细信息,如不加软件名是显示所有包的详细信息

yum search <关键词>

根据关键字查找软件安装包,相当于你只知道这个包里的某个关键字会全部给你匹配出来

yum whatprovides <关键词>

查找只知道命令而不知道具体的包

yum grouplist [包组名]

安装包组的查询,不加包组名就是显示所有

yum install [软件名]

安装软件包,如安装http服务

yum remove <软件名>

卸载已安装的软件

yum history

查看历史的使用记录

我们通常在写yum命令的时候加上-y表示 “是否继续?[y/N]”中的y

本地在线同时

 在线源扩展包

 优先级越小级别越高

启动插件

下载不安装到指定目录

下载软件到指定下载目录

 

--resolve为下载依赖包

三、搭建仓库的方式

1)搭建本地yum仓库

见我另一篇进行本地配置

安装及管理程序(内含应用程序基础、RPM软件包、yum一键安装依赖包、源码编译安装)_Dao.zs的博客-CSDN博客

若要永久挂载需要在/etc/fstab文件中写入下面的信息

[root@localhost ~]# vim /etc/fstab 

当没有网而又没有搭建本地yum仓库的情况下,可以使用下面这条命令,但是只下载需要的包没有建立依赖关系

[root@localhost ]#yum -y install --downloadonly --downloaddir=/data/bind  bind

#downloadonly只下载

#downloaddir指定下载的目录,目录如果不存在,会自动创建

2)http方式外网环境搭建yum仓库(搭建阿里云仓库)

国外云仓库比较慢,可以使用阿里云仓库代替

CentOS系统的yum源
#阿里云
https://mirrors.aliyun.com/centos/$releasever/ 
#腾讯云
https://mirrors.cloud.tencent.com/centos/$releasever/ 
#华为云
https://repo.huaweicloud.com/centos/$releasever/ 
#清华大学
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/#releasever表示版本EPEL的yum源
#阿里云
https://mirrors.aliyun.com/epel/$releasever/x86_64
#腾讯云
https://mirrors.cloud.tencent.com/epel/$releasever/x86_64
#华为云
https://mirrors.huaweicloud.com/epel/$releasever/x86_64
#清华大学
https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64#更新源
http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/

[root@localhost yum.repos.d]# yum clean all && yum makecache
[root@localhost yum.repos.d]# yum list all

3)http方式内网环境搭建yum仓库

搭建方法与ftp类似

setenforce 0
systemctl stop firewalld.service
#两台机子关闭防火墙和selinux

服务端:192.168.109.131上的操作

yum install -y httpd
systemctl start httpd
cd /var/www/html/
mkdir centos7
ls
mount /dev/sr0 /var/www/html/centos7/网页访问本机IP

客户端:192.168.109.132上的操作

cd /etc/yum.repos.d/
mkdir bak
mv *.repo bak
vim http.repo
#####################
[http]
name=centos
baseurl=http://192.168.109.131/centos7
gpgcheck=0
enabled=1
#######################yum clean all &&yum makecache
yum list all

4)ftp方式搭建yum仓库

setenforce 0
systemctl stop firewalld.service
#两台机子关闭防火墙和selinux

服务端:192.168.109.131上的操作

[root@localhost ~]#systemctl start vsftpd

客户端:192.168.109.132上的操作 

baseurl=ftp://192.168.109.131/centos7  
#指名从服务器端的centos7目录中读取
#ftp的根目录就是/var/ftp

[root@localhost yum.repos.d]# yum list all
#显示所有列表

5)yum下载软件包的方法

①开启缓存

vim /etc/yum.conf

cachedir=缓存目录

keepcache=1 #1为开启缓存 0为关闭缓存

yum install -y

②yum install -y 软件 --downloadonly --downloaddir=下载目录

③yumdownloader --destdir=下载目录 --resolve

   createrepo 软件包目录 --》创建软件包依赖关系索引

二、NFS共享存储服务

Windows 共享存储服务 cifs

Linux       共享存储服务 NFS

NAS文件存储

1)NFS(Network File System)网络文件系统

NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发

NFS服务可以将远程Linux系统上的文件共享资源挂载到本地主机的目录上,从而使得本地主机(Linux客户端)基于TCP/IP协议,像使用本地主机上的资源那样读写远程Linux系统上的共享文件

  • 依赖于RPC(远端过程调用)
  • 需安装nfs-utils、rpcbind软件包
  • 系统服务:nfs、rpcbind
  • 共享配置文件:/etc/exports

特点:

  1. 采用TCP/IP传输网络文件
  2. 安全性低
  3. 简单易操作
  4. 适合局域网环境

优点:节省本地存储空间,将常用的数据如:/home 目录,存放在NFS服务器上且可以通过网络访问,将减少本地磁盘的使用率

配置文件:

/etc/exports

存储类型

块存储:硬盘 LVM RAID   

文件存储:NFS

对象存储:oss

NFS架构

NFS原理图

2)搭建过程

①关闭防火墙和selinux并下载软件包

systemctl stop firewalld#关闭防火墙和selinux
setenforce 0
yum install nfs-utils.x86_64 rpcbind -y  #安装软件包

NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制, 以完成远程到本地的映射过程。在CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持

手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs
服务器端192.168.109.131

②在服务器上建立用于NFS文件共享的目录,并设置足够的权限确保其他人也有写入权限

③NFS服务程序的配置文件为/etc/exports,默认情况下里面没有任何内容 

我们可以按照“共享目录的路径 允许访问的NFS客户端(共享权限参数)”的格式来定义 

支持使用通配符

NFS服务程序配置文件的参数

参数 作用
ro 只读
rw 读写
root_squash 当NFS客户端以root访问时,映射为NFS服务器的匿名用户
no_root_quash 当NFS客户端以root访问时,映射为NFS服务器的root用户
all_squash 无论NFS客户端使用什么身份登录,都映射为NFS服务器的匿名用户
sync 同时将数据写入到内存与硬盘中,保证不丢失数据
async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据

 showmount命令中的可用参数和作用

参数 作用
-e 显示NFS服务器的共享列表
-a 显示本机挂载的文件资源的情况
-v 显示版本号

客户端192.168.109.132

systemctl stop firewalld#关闭防火墙和selinux
setenforce 0
yum install nfs-utils.x86_64 rpcbind -y  #安装软件包

将NFS服务器挂载到本地

在客户端的挂载点创建文件,服务器端也可以看到,此前我们给了这个目录权限

​总结

nfs 网络文件共享服务

1)安装软件,启动服务

yum   insatll   nfs-utils           rpcbind

          服务     nfc(2049)   rpcbind(111)

 systemctl start rpcbind

 systemctl start nfs

 systemctl enable rpcbind

 systemctl enable nfs

2)准备共享目录

先准备硬盘/LVM/RAID,格式化后挂载到需要共享的目录(比如/share),并设置相应的权限

chmod 777 /share   #如果无需客户端写入文件则省略

3)修改共享配置文件

vim /etc/exports

共享目录 客户端地址/网段(共享参数选项,……)

……

4)发布共享目录

systemctl restart nfs

或者

exportfs -avr

showmount -e 测试查看

服务端别忘记关闭防火墙

5)客户端挂载使用

showmount -e 服务端IP

mount [-t nfs] 服务端IP:共享目录 本地挂载点

vim /etc/fstab

服务端IP:共享目录 本地挂载点 nfs defaults,_netdev 0 0

如客户端挂载目录出现卡死现象

umount -lf