一、部署 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