下载,共享
一,YUM
1.概述
- YUM(yellowdog updater modified)
- 是一个RPM系统的自动更新和软件包安装/卸载器。
- 它可以自动计算依赖和找出想要安装的软件包。
- 基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
- YUM有一个添加简单功能的插件接口。YUM也能够通过他的模块接口被其他的Python 程序使用。
//基于RPM包构建的软件更新机制
//可以自动解决依赖关系
//所有软件包由集中的yum软件仓库提供
2. 三种软件仓库提供方式
- FTP服务:ftp://…、
ftp远程共享源存储仓库 - HTTP服务: http://…
官方网站下载源 - 本地目录:file://…
本地光盘镜像
3.RPM软件包的来源
CentOS发布的RPM包集合
第三方组织发布的RPM包集合
用户自定义的RPM包集合
4.yum工具概述
- 关于yum命令
由软件包yum-…提供
用来访问yum仓库,查询,下载及安装,卸载软件包 - yum的配置文件
基本设置:/etc/yum.conf
仓库设置:/etc/yum.repos.d/*.repo
日志文件:/var/log/yum.log - yum缓存目录
存放下载的软件包,仓库信息等数据
位于/var/cache/yum/ b a s e a r c h ( 硬 件 架 构 , 如 x 8 6 6 4 ) / basearch(硬件架构,如x86_64)/ basearch(硬件架构,如x86
64)/releasever(OS版本) - 清理缓存数据
yum clean all - 加载缓存数据
yum list
yum makeacache
5.软件包查询
- 查询软件包
yum list [软件名]…
yum info [软件名]…
yum search <关键词>…
- 查询软件包组
yum grouplist [包组名]…
yum groupinfo <包组名>…
6. 软件安装升级与卸载
- 安装软件
yum install [软件名]
yum groupinstall <包组名>
- 升级软件
yum update
yum groupdate
yum update 更新软件包,连内核一起更新
yum upgrade 只更新软件包,但不更新内核
- 卸载软件
yum remove <软件名>…
yum groupremove <包组名>…
二,构建CentOS7软件仓库
1.FTP和非官方的rpm包组
将光盘镜像挂载
[root@localhost ~]# hostnamectl set-hostname ftpserver '修改主机名为服务端,方便区分'
[root@localhost ~]# bash
[root@server ~]# mount /dev/cdrom /mnt '将镜像挂载到本地'
mount: /dev/sr0 is write-protected, mounting read-only
[root@server ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 xfs 20G 3.1G 17G 16% /
...省略部分内容
/dev/sr0 iso9660 4.3G 4.3G 0 100% /mnt
查看是否有ftp站点目录
ll /var/
....没有ftp
account cache db games kerberos local log nis preserve spool yp
adm crash empty gopher lib lock mail opt run tmp
yum -y install vsftpd //安装vsftpd
...省略部分内容
mkdir centos7 //在站点下创建文件夹,存放镜像
复制光盘挂载点下的所有文件到存放镜像目录
[root@as ~]# cp -rf /mnt/* /var/ftp/centos7/& //将镜像强制复制到centos7中,并在后台运行
[root@server ftp]# jobs '查看后台运行程序'
[1]+ Running cp -i -rf /mnt/* centos7/ &
启动服务
systemctl start vsftp
systemctl enable vsftp
查看验证:
- .在软件仓库中加入非官方的RPM包组
包括存在的依赖关系的所有RPM包
使用createrepo工具建立仓库数据文件
1.首先yum安装createrepo工具
yum -y install createrepo
2.
[root@as ~]# mkdir /var/ftp/other //创建other目录存放非官方rpm
3.以现有的repodata目录为样板,本地源挂载在mnt下的rpm源,咱们当做非官方源,验证下
[root@as ~]# cd /var/ftp/other/
createrepo -g /mnt/repodata/repomd.xml ./
4.服务已开启
下载端验证:
- 将之前的官方源,备份,
[root@client ~]# cd /etc/yum.repos.d/
[root@client yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
[root@client yum.repos.d]# mkdir bak
[root@client yum.repos.d]#mv C*. bak
[root@client yum.repos.d]#ls bak
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
- 创建一个local.repo 文件,更改配置,下载源为ftp的软件仓库
1.之前的cp的配置local.repo里添加(local.repo文件是之前cp的Centos-Base....出来文件)
2.也可以直接vim 创建
[root@hgg backup]# vi /etc/yum.repos.d/local.repo
[centos]
name=CentOS
baseurl=ftp://20.0.0.18/centos7
gpgcheck=0
enabled=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[other]
name=other
baseurl=ftp://20.0.0.18/other
gpgcheck=0
enabled=1
2.清楚缓存,重新加载缓存
yum clean all;
yum makecache;
2. 本地源搭建
- 将官方源备份,
[root@client ~]# cd /etc/yum.repos.d/
[root@client yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
[root@client yum.repos.d]# mkdir bak
[root@client yum.repos.d]#mv C*. bak
[root@client yum.repos.d]#ls bak
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
- 创建本地源,光盘挂载目录
[root@hgg backup]# vi /etc/yum.repos.d/local.repo
[centos]
name=CentOS
baseurl=ftp:///mnt
gpgcheck=0
enabled=1
3.清楚缓存,重新加载缓存
yum clean all;
yum makecache;
- http
则是需要线网,联网下载;
默认官方源就是httpd
如下:
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
三 ,NFS共享存储服务
简述:一种基于“TCP/IP’传输的网络文件系统协议,nfs客户机可以向访问本地目录一样的访问远程nfs服务器中的共享资源;
- 依赖于RPC(远程过程调用)
- 需安装nfs-utils,rpcbind软件包
- 系统服务:nfs,rpcbind
- 共享配置文件:/etc/exports
NFS发布共享资源
- 服务端
1.安装nfs-utils , rpcbind软件包;
yum -y install rpcbind nfs-utils
- .设置共享目录
[root@as other]# mkdir -p /opt/wwwroot
[root@as other]# vi /etc/exports
/opt/wwwroot 20.0.0.0/24(rw,sync,no_root_squash)
注:(rw,sync,no_root_squash)读写的权限,表示同步写入,当客户机以root身份访问时,赋予本地root权限
- 启动服务和设置开机自启
systemctl start rpcbind;
systemctl start nfs;
systemctl enable nfs
systemctl enable rpcbind
- 查看本地发布的NFS共享目录
[root@as other]#showmount -e
Export list for as:
/opt/wwwroot 20.0.0.0/24
- 客户端:
手动挂载NFS共享目录,挂载到/var/www/html
查看服务器共享目录时,应指出服务器地址;
1.也需要下载软件包:nfs-utils, rpcbind
yum -y install rpcbind nfs-utils
- 启动rpcbind服务,设置开机自启
systemctl start rpcbind;
systemctl enable rpcbind;
systemctl start nfs
systemctl enable nfs
- 查看共享目录
[root@hgg ~]# showmount -e 20.0.0.18 (记住是服务器的地址)
Export list for 20.0.0.18:
/opt/wwwroot 20.0.0.0/24
先查看一下,显示出来说明就可以挂载了;
- 挂载:(挂载之后查看一下挂载,在确认挂载结果;)
将服务器的共享文件挂载,前面要加服务器地址的ip
[root@hgg ~]# mount 20.0.0.18:/opt/wwwroot /var/www/html/
[root@hgg ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 xfs 17G 987M 17G 6% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 8.6M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sr0 iso9660 4.3G 4.3G 0 100% /mnt
/dev/sda1 xfs 1014M 135M 880M 14% /boot
tmpfs tmpfs 378M 0 378M 0% /run/user/0
20.0.0.18:/opt/wwwroot nfs4 17G 5.2G 12G 31% /var/www/html
[root@hgg ~]# tail -1 /etc/mtab
20.0.0.18:/opt/wwwroot /var/www/html nfs4 rw,relatime,vers=4.1,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=20.0.0.19,local_lock=none,addr=20.0.0.18 0 0
- 测试文件:(在客户端的共享目录下创建文件,服务器端共享存储目录可以显示文件的)
两个测试文件自己拟定;
vi /var/www/html/as.html
vi /var/www/html/index.html
在共享目录挂载点下,创建一个文件测试下服务器端可不可以共享的到
- 服务器端
查看::
[root@as ~]# ll /var/www/html/
total 8
-rw-r--r-- 1 root root 13 Jul 31 16:14 as.html
-rw-r--r-- 1 root root 12 Jul 31 16:17 index.html
- fstab自动挂载设置;
1.修改/etc/fstab配置文件,加入NFS共享目录的挂载设置。
[root@hgg html]# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Jul 30 08:59:39 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=0a7d740d-097d-4c18-89e6-0a759b7086a7 / xfs defaults 0 0
UUID=5e0de58b-b88d-4595-b5fd-8120d133f522 /boot xfs defaults 0 0
UUID=d5b40c3b-7424-4c99-b37a-90c3e2793791 swap swap defaults 0 0
/dev/cdrom /mnt iso9660 defaults 0 0
20.0.0.18:/opt/wwwroot /var/www/html nfs defaults_netdev 0 0
~
注:挂载参数建议添加_netdev (设备需要网络); 若添加soft,intr参数可以实现软挂载,允许在网络中断时放弃挂载。这样客户机就可以在每次开机后自动挂载NFS共享资源了
强制卸载NFS
1.NFS客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端的NFS服务突然间停掉了,那么在客户端就会出现执行df -Th命令卡死的现象。
这个时候用umount命令是无法直接卸载的,需要在后面加上-lf才能卸载; -l表示解除正在繁忙的文件系统,-f 表示强制;
注:如果出现卡死现象是,要重新开一个终端,执行cat /etc/rc.loal命令。查看挂载点,然后用umout -lf卸载;