部署YUM仓库及NFS共享服务

一:yum仓库简介

1:yum概述

yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。

yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。

一个文件可以搭建多个yum仓库;

内核位置为:/boot X86代表架构;

yum info #显示所有可用包的信息

.2:yum实现过程: 

先在yum服务器上创建 yum仓库,在仓库中事先存储了众多rpm包,以及包的相关元数据文件;

当yum客户端利用yum工具进行安装时包时,会自动下载repodata中的元数据,查询元数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。

 3:yum的基本用法
 1:主配置文件解析.

[root@localhost]#vim /etc/yum.conf

[main]

cachedir=/var/cache/yum/$basearch/$releasever //yum下载的RPM包的缓存目录 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

(1) cachedir=/var/cache/yum/x86_64/6/base/packages【yum缓存的目录,yum在此存储下载rpm包和数据库,】

(2) keepcache=0【安装完成后是否保留软件包,0为不保留,1为保留】

(3) debuglevel=2 【信息输出等级,范围为0-10,缺省为2】

(4) logfile=/var/log/yum.log 【yum日志文件位置,可以查询过去所作的更新】

(5) pkgpolicy=newest/last【包策略。一共有两个选项,newest和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository中同时存在,yum应该安装哪一个,如果是newest,则yum会安装最新的那个版本,如果是last,则yum会将服务器id以字母表排序,并选择最后哪个服务器上的软件安装。一般都选newest】

(6) distroverpkg=redhat-release【指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包】

(7) tolerant=1 【表示yum是否容忍命令行发生与软件包有关的错误,比如你要安装1 2 3三个包,而其中3此前已经安装了,设为1,则yum不会出现错误信息,默认为0】

(8) exctarch=1【设置为1,则yum只会安装和系统架构匹配的软件包。】

(9) retries=6 【网络链接发生错误后的重试次数,如果设为0则会无限重试,默认为6】

(10) obsoletes=1【这是一个update的参数,允许更新陈旧的rpm包】

(11) plugins=1 【是否启用插件,默认为1是允许,0表示不允许。】

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:yum仓库文件位置

默认的yum仓库 是centos官方的yum源,需要联网才可以使用;

[root@localhost yum.repos.d]# ls /etc/yum.repos.d/

常见的几个文件:

CentOS-Debuginfo.repo  

CentOS-Base.repo  

CentOS-Vault.repo

CentOS-Media.repo

CentOS-Debuginfo 这个是debug包尤其和内核相关的更新和软件安装

CentOS-Base 这个是联网基础的源,一般都用这个

CentOS-Vault 这个是最近新版本的加入的老版本的yum源配置

CentOS-Media 这个是使用光盘挂载后调用的文件

3:日志文件:/var/log/yum.log

[root@localhost yum.repos.d]# cat /var/log/yum.log //查看日志文件

Jun 23 11:03:16 Installed: apr-1.4.8-3.el7.x86_64

Jun 23 11:03:16 Installed: apr-util-1.5.2-6.el7.x86_64

Jun 23 11:03:16 Installed: httpd-tools-2.4.6-67.el7.centos.x86_64

4:yum基本命令

命令

作用

yum list

显示所有可用包

yum info

显示可用包的信息

yum search

模糊查找相关信息

yum whatprovides

精确查找

yum grouplist

显示所有可用包组

yum groupinfo

显示所有的包组具体信息

yum install

安装具体软件包

yum update

软件升级

yum remove

卸载具体软件

yum history

查看当前yum操作历史

yum history undo

加入序号卸载序号里安装的软件

yum history redo

加入序号重新执行序号里的操作

1:显示可用的安装包,如不加软件名是显示所有的可用包,由于软件过多不做例子。

[root@localhost data]# yum list dhcp

已加载插件:fastestmirror, langpacks

Loading mirror speeds from cached hostfile

已安装的软件包

dhcp.x86_64              12:4.2.5-58.el7.centos               @centos7

2:显示安装包详细信息

[root@localhost ~]# yum info dhcp

3:根据关键字查找软件安装包,有模糊查询和精确查询

[root@localhost ~]# yum search ftp   #模糊查询

[root@localhost ~]# yum whatprovides ftp   #精确查询

4:安装包组的查询,若不加包组名就是显示所有(此处例子由于安装了中文环境,无法显示英文包组名称无法直接复制中文使用,建议直接安装英文操作系统)

[root@localhost data]# yum grouplist

5:安装软件包

[root@localhost ~]# yum install httpd

6:卸载已安装的软件必须加软件名

[root@localhost yum.repos.d]# yum remove httpd

7:查看yum历史的使用记录

[root@localhost yum.repos.d]# yum history

5:搭建yum仓库的方式

软件仓库的提供方式
FTP服务:ftp://ip地址/站点里路径
HTTP服务:http://域名或者ip地址/站点里的路径
本地目录:file://绝对路径 (file:///mnt 此处第三个/为根目录

1:搭建本地yum仓库:

(1)首先将光驱中镜像文件进行挂载

[root@localhost ~]# mount /dev/sr0 /mnt/

mount: /dev/sr0 写保护,将以只读方式挂载

[root@localhost ~]# df -Th    //查看下挂载

/dev/sr0          iso9660   4.3G  4.3G     0  100% /mnt

(2)切换到 /etc/yum.repo.d 目录 将自带的仓库移走

[root@localhost ~]# cd /etc/yum.repos.d/

[root@localhost yum.repos.d]# mkdir bak    #新建一个文件夹用来存放原来的.repo文件

[root@localhost yum.repos.d]# mv *.repo bak/    #将原来的.repo文件移走

[root@localhost yum.repos.d]# ls   #查看一下

bak

(3)新建yum仓库文件

[root@localhost yum.repos.d]# vim abc.repo

[abc]

name=abc

baseurl=file:///mnt

enabled=1

gpgcheck=0

[root@localhost yum.repos.d]#yum clean all   //清除一下yum

[root@localhost yum.repos.d]#yum list   //列出yum

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

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

(1)新建阿里云yum仓库文件

[root@localhost yum.repos.d]# vim ali.repo

[ali]

name=aliyun

baseurl=https://mirrors.aliyun.com/centos/7.9.2009/os/x86_64/

enabled=1

gpgcheck=1

gpgkey=file:///opt/RPM-GPG-KEY-CentOS-7

备注:可以把阿里的校验文件下载到本地,就可以在安装软件包时进行完整性校验了。

如果不需要校验,gpgcheck=0即可

[root@localhost yum.repos.d]#yum clean all   //清除一下yum缓存

[root@localhost yum.repos.d]#yum -y install wget   //测试

在阿里镜像站找到epel下载链接:

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

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

[root@centos7 ~]#yum -y install nginx //测试

备注:

GPG:GNU Privacy Guard(GNU加密防护),是一种加密软件,它是PGP加密软件的满足GPL的替代物

3:ftp方式搭建云仓库:

服务端:192.168.10.101

客户端:192.168.10.102

(1)服务端安装vsftp服务

[root@sesrver ~]# yum install vsftpd -y

(2)服务端切换到 ftp目录下新建一个centos7,other目录

[root@sesrver ~]# cd /var/ftp/

[root@sesrver ftp]# ls

pub

[root@sesrver ftp]# mkdir centos7

[root@sesrver ftp]# ls

centos7  pub

(3)服务端将光驱里的文件包全部拷到centos7里面

[root@sesrver ftp]#mount /dev/sr0 /mnt/

[root@sesrver ftp]# cp -rf /mnt/* centos7/ &                                //&代表后台运行应为文件较大

[root@sesrver ftp]#jobs  #查看shell作业信息(后台下载的)

[root@sesrver ftp]# cd centos7/

[root@sesrver centos7]# ls                                   //已将安装包文件拷入

CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7

EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7

EULA             isolinux  repodata  TRANS.TBL

(4)服务端开启相关服务,关闭防火墙和selinux

[root@sesrver repodata]# systemctl stop firewalld.service

[root@sesrver repodata]# setenforce 0

[root@sesrver repodata]# systemctl start vsftpd   //重启vsftpd服务

[root@sesrver ftp]#netstat -natp | grep ftp   //过滤查找ftp

tcp6       0      0 :::21                   :::*                    LISTEN      20518/vsftpd

#客户端安装ftp 服务并启动关闭防火墙和selinux

[root@client yum.repos.d]# yum install ftp

[root@client repodata]# systemctl stop firewalld.service

[root@client repodata]# setenforce 0

#测试ftp服务是否正常

[root@client yum.repos.d]# ftp 192.168.10.101

(5)客户端编写yum仓库文件

[root@client yum.repos.d]# vim centos7.repo

[centos7]

name=centos7

baseurl=ftp://192.168.10.101/centos7

enabled=1

gpgcheck=0

[root@client ftp]#yum clean all

[root@client ftp]#yum list

[root@client yum.repos.d]# yum install dhcp

4:http方式搭建云仓库

(1)服务器端安装httpd

[root@localhost ~]# yum -y install httpd

(2)创建仓库目录

[root@localhost ~]# cd /var/www/html/

[root@localhost html]# mkdir centos7

(3)将光盘上的文件拷贝到httpd网站根目录

[root@localhost html]# cp -rf /media/cdrom/* /var/www/html/centos7/

(4)客户端修改仓库文件

[ftpyum]

name=ftpyum

baseurl=http://192.168.10.101/centos7

gpgcheck=0

enabled=1

5:从yum仓库将rpm包拉取到本地并制作本地yum仓库

(1)安装所需软件包

[root@localhost ~]# yum -y install createrepo yum-utils

(2)创建下载目录

[root@localhost ~]# mkdir /opt/myrepo

[root@localhost ~]# cd /opt/myrepo/

(3)查看yum仓库中的源标识

[root@localhost myrepo]# yum repolist

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile

源标识                       源名称                        状态

httpyum                      httpyum                       4,070

repolist: 4,070

(4)下载

[root@localhost myrepo]# reposync -r httpyum

备注:

-r:下载指定的源标识

如果要下载所有的源,只需要执行reposync即可

(5)生成repodate

[root@localhost myrepo]# createrepo /opt/myrepo/centos7/

Spawning worker 0 with 4070 pkgs

Workers Finished

Saving Primary metadata

Saving file lists metadata

Saving other metadata

Generating sqlite DBs

Sqlite DBs complete

[root@localhost myrepo]# ls /opt/myrepo/centos7/

Packages  repodata

二:NFS共享文件

1:NFS简介

NFS(Network File System 网络文件服务)
NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。
通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。
NFS 也是 NAS 存储 设备必然支持的一种协议。

2:特点

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

3:原理

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

4:搭建过程

#服务器端:192.168.10.101

[root@localhost httpd]#systemctl stop firewalld

[root@localhost httpd]#setenforce 0

[root@localhost share]#yum install nfs-utils.x86_64  -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.10.0/24(rw,sync,no_root_squash)

#共享目录  网段           读写,同步,无root权限

#重启rpcbind和nfs服务

[root@localhost ~]# systemctl start rpcbind

[root@localhost ~]# systemctl start nfs

[root@localhost ~]#exports -vr

#不重启生效

[root@localhost share]#exportfs -v

#查看详细的nfs信息

[root@localhost ~]# netstat -anpt | grep rpc

[root@localhost share]# showmount -e

Export list for localhost.localdomain:

/share (everyone)

#客户机端:192.168.10.102

[root@localhost ~]#mkdir /data   //创建一个挂目录

#挂载服务器端地址文件在自己目录下

[root@localhost ~]# mount 192.168.10.101:/share /data

[root@localhost ~]#df -hT

192.168.10.101:/share  nfs4       17G  8.6G  8.5G   51% /data

#测试一下

#服务器 touch 一个文件,在客户端看看有没有

[root@localhost share]# touch 1.txt

#客户端:

[root@localhost yum.repos.d]# cd /data

[root@localhost data]# ls

1.txt

#因为给了 share 777权限,因此客户端也可以 touch 文件

[root@localhost data]# touch 2.txt

[root@localhost data]# ls

1.txt  2.txt

#强制解挂载

[root@localhost ~]# umount /mnt

t umount. nfs: /mnt : device is busy

[root@localhost ~]# umount -lf /mnt

 

  • 36
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值