一、部署 YUM 软件仓库

yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。借助于 YUM 软件仓库,可以完成安装、卸载、自动升级 rpm 软件包等任务,能够自动 查找并解决 rpm 包之间的依赖关系,而无须管理员逐个、手工地去安装每个 rpm 包,使管 理员在维护大量 Linux 服务器时更加轻松自如。特别是在拥有大量 Linux 主机的本地网络中, 构建一台“源”服务器可以大大缓解软件安装、升级等对 Internet 的依赖。

1.yum的基本用法

(1)主配置文件解析

[root@localhost]# /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


(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


2.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


2.搭建yum仓库的方式

软件仓库的提供方式

FTP服务:ftp://ip地址/站点里路径

HTTP服务:http://域名或者ip地址/站点里的路径

本地目录:file://绝对路径 (file:///mnt 此处第三个/为根目录


(1)搭建本地yum仓库:

  • 首先将光驱中镜像文件进行挂载

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

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

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

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


  • 切换到/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


  • 新建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方式外网环境)

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

  • 新建阿里云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 installnginx //测试


备注:

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

(3)ftp方式搭建云仓库

服务端:192.168.10.101

客户端:192.168.10.102

  • 服务端安装vsftp服务

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


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

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

[root@sesrver ftp]# ls

pub


[root@sesrver ftp]# mkdir centos7

[root@sesrver ftp]# ls

centos7  pub


  • 服务端将光驱里的文件包全部拷到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


  • 服务端开启相关服务,关闭防火墙和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



  • 客户端编写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方式搭建云仓库

  • 服务器端安装httpd

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


  • 创建仓库目录

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

[root@localhost html]# mkdir centos7


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

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


  • 客户端修改仓库文件

[ftpyum]

name=ftpyum

baseurl=http://192.168.10.101/centos7

gpgcheck=0

enabled=1


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

  • 安装所需软件包

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


  • 创建下载目录

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

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


  • 查看yum仓库中的源标识

[root@localhost myrepo]# yum repolist

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile

源标识                       源名称                        状态

httpyum                      httpyum                       4,070

repolist: 4,070


  • 下载

[root@localhost myrepo]# reposync -r httpyum

备注:

-r:下载指定的源标识

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


  • 生成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 也是 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