目录
一、yum仓库简介
1.yum简介
yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间 为什么会有依赖关系的发生 因为linux本身就是以系统简洁为自身优势,所以在安装操作系统的时候并没有将所有的库文件以及编译软件包进行安装,所以在linux操作系统上进行软件安装的时候会出现软件包依赖的情况。yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。官方的源一般在国外,下载速度肯定有限,手动更改成国内的云可以大幅提升下载速度。
2.yum的实现过程
(1)先在yum服务器上创建 yum repository(仓库)
(2)在仓库中事先存储了众多rpm包,以及包相关的元数据文件(放置于特定目录repodata下)
(3)当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据
(4)查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。
二. yum配置文件及命令
1.yum配置文件
(1)主配置文件
[root@localhost]# /etc/yum.conf
[a]
cachedir=/var/cache/yum/$basearch/$releasever硬件 版本
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个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)仓库设置文件
[root@localhost]# cd /etc/yum.repos.d
[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.repoPS:这里默认的yum仓库是centos官方的yum源,需要联网才可以使用
(3)日志文件
[root@localhost]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# cat /var/log/yum.log (查看日志文件)
2.yum命令
命令 | 不加关键字 | 加入关键词、软件包、软件包组 |
---|---|---|
yum list | 显示所有可用包 | 单个的可安装包 |
yum info | 显示所有可用包的信息 | 单个具体的信息 |
yum search | \ | 模糊查找所有的相关信息 |
yum whatprovides | \ | 精确查找 |
yum grouplist | 显示所有可用包组 | 显示具体的包组 |
yum groupinfo | 显示所有的包组具体信息 | 显示具体的包组的具体信息 |
yum install | \ | 安装具体软件包 |
yum groupinstall | \ | 安装具体软件包组 |
yum update | 所有软件升级 | 具体软件升级 |
yum groupupdate | 所有包组升级 | 具体包组升级 |
yum remove | \ | 卸载具体软件 |
yum groupremove | \ | 卸载具体包组软件 |
yum history | 查看当前yum操作历史 | \ |
yum history undo | 加入序号卸载序号里安装的软件 | \ |
PS:红色字体为查询命令
蓝色字体为yum安装升级
黄色字体为软件卸载
如何删除yum安装包 yum history
undo 3
redo 3
三.搭建仓库的方式
1.搭建本地yum仓库
[root@localhost ~]# mount /dev/sr0 /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv *.repo bak/
[root@localhost yum.repos.d]# vim a.repo
[a]
name=a
baseurl=file:///mnt
enabled=1
gpgcheck=0
:wq
[root@localhost yum.repos.d]# yum clean all
[root@localhost yum.repos.d]# yum install -y [软件名]
2.搭建云仓库(http外网环境)
(1)切换到 yum.repo.d 目录 将自带的仓库移走
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv *.repo bak/(2)新建aliyun仓库(这里以阿里云为例)
[root@localhost yum.repos.d]# vim ali.repo
[ali]
name=aliyun
#baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch
gpgcheck=0[epel] (epel源仓库)
name=epel
baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
gpgcheck=0[update] (更新包仓库)
name=update
baseurl=https://mirrors.aliyun.com/centos/7/updates/x86_64/
gpgcheck=0:wq
[root@centos7 ~]#yum -y install 【软件名】
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/
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/
PS:(另外一个安装网络源的方式)
[root@localhost ~]# wget http://mirror.centos.org/centos/7/extras/x86_64/Packages/epel-release-7-11.noarch.rpm 安装yum源
[root@localhost ~]# yum install -y epel-release-7-11.noarch.rpm 安装sl命令
[root@localhost ~]# yum install -y sl
小火车
[root@localhost ~]# sl -a
勇敢牛牛,不怕困难
[root@localhost ~]#yum install -y install cowsay
3.ftp方式搭建云仓库
服务端:192.168.174.10
客户端:192.168.174.20
服务端
(1)关闭防火墙和selinux
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
(2)服务端安装vsftp服务并开启
[root@localhost ~]# mount /dev/sr0 /mnt 挂载
[root@localhost ~]# yum install vsftpd.x86_64 -y
已安装:
vsftpd.x86_64 0:3.0.2-22.el7完毕!
[root@localhost repodata]# systemctl start vsftpd 开启服务
(2) 服务端切换到 ftp目录下新建一个centos7目录
[root@localhost ~]# cd /var/ftp/
[root@localhost ftp]# ls
pub
[root@localhost ftp]# mkdir centos7 other
[root@localhost ftp]#
(3)服务端将光驱里的文件包全部拷到centos7里面(此时已经将光驱挂载到mnt目录下)
[root@localhost ftp]# cp -rf /mnt/* centos7/ & (&代表后台运行应为文件较大)
[root@localhost ftp]# cd centos7
[root@localhost 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
[root@localhost ~]# cd /var/ftp/other
[root@localhost other]# createrepo -g /media/cdrom/repodata/repomd.xml ./
(使用createrepo工具建立仓库数据文件)
客户端
(1)安装ftp 服务并启动关闭防火墙和selinux
[root@localhost ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# yum install ftp -y已安装:
ftp.x86_64 0:0.17-67.el7完毕!
[root@localhost repodata]# systemctl stop firewalld.service
[root@localhost repodata]# setenforce 0
[root@localhost yum.repos.d]# systemctl start ftp
(2) 测试ftp服务是否正常
[root@localhost yum.repos.d]# ftp 192.168.174.10
Connected to 192.168.100.100 (192.168.174.10).
220 (vsFTPd 3.0.2)
Name (192.168.174.10:root): ftp 随意起名
331 Please specify the password. 输入密码为空直接回车
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls 查看下是否正常
227 Entering Passive Mode (192,168,100,100,205,112).
150 Here comes the directory listing.
drwxr-xr-x 8 0 0 220 Jun 23 09:14 centos7
drwxr-xr-x 3 0 0 22 Jun 23 09:35 other
drwxr-xr-x 2 0 0 6 Aug 03 2017 pub
226 Directory send OK.出现这个即为成功
(3)编写yum仓库文件
[root@localhost yum.repos.d]# vim centos7.repo
[centos7]
name=centos7
baseurl=ftp://192.168.174.10/centos7
enabled=1
gpgcheck=0
[other]
name=other
baseurl=ftp://192.168.174.10/other
enabled=1
gpgcheck=0:wq
[root@localhost yum.repos.d]# yum clean all
(4)测试是否yum可以正常使用
[root@localhost yum.repos.d]# yum install dhcp -y
已安装:
dhcp.x86_64 12:4.2.5-58.el7.centos完毕!
四、NFS共享
1.简介
NFS(Network File System 网络文件服务) NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。 通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源 NFS 也是 NAS 存储 设备必然支持的一种协议
2.特点
(1)采用TCP/IP传输网络文件
(2)安全性低
(3)简单易操作
(4)适合局域网环境
3.原理
4.优势
节省本地存储空间,将常用的数据如:/home 目录,存放在NFS服务器上且可以通过网络访问,将减少本地磁盘的使用率
5.搭建过程
添加一块盘以作共享
[root@localhost httpd]#systemctl stop firewalld.service 关闭防火墙
[root@localhost httpd]#setenforce 0 关闭selinux
[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 *:wq
[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 输出本机所有共享[root@localhost ~]# netstat -anpt | grep rpc
[root@localhost ~]# showmount -e 查看本机发布的 NFS 共享目录
Export list for localhost.localdomain:
/opt/wwwroot 192.168.7.0/24
/var/ftp/pub 192.168.4.110,192.168.4.11[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 /mn
t umount. nfs: /mnt : device is busy
[root@localhost ~]# umount -lf /mnt
五、总结
这次主要讲了yum仓库的搭建以及NFS,希望对大家有所帮助!