部署YUM仓库及NFS共享服务

目录

YUM简介

        yum的实现过程

YUM配置文件及命令

        yum配置文件

                    yum仓库设置文件

                    yum日志文件

        YUM命令详解

                查询

                yum安装升级

                 yum软件卸载

搭建仓库的方式 

        搭建本地yum仓库

       

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

ftp方式搭建云仓库

 NFS共享  

        NFS原理

                NFS软件介绍

        搭建过程

总结


YUM简介

        yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间。所有软件包由集中的YUM软件仓库提供  

        因为linux本身就是以系统简洁为自身优势,所以在安装操作系统的时候并没有将所有的库文件以及编译软件包进行安装,所以在linux操作系统上进行软件安装的时候会出现软件包依赖的情况。yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。官方的源一般在国外,下载速度肯定有限,手动更改成国内的云可以大幅提升下载速度。

        YUM 的前身是 YUP(Yellow dog Updater,Yellow dog Linux 的软件更新器),最初由TSS 公司(Terra Soft Solutions,INC.)使用 Python 语言开发而成,后来由杜克大学(DuckUniversity)的 Linux 开发队伍进行改进,命名为 YUM(Yellow dog Updater,Modified)。要成功使用 YUM 机制来更新系统和软件,需要有一个包含各种 rpm 安装包文件及其依赖软件的软件仓库(repository),提供软件仓库的服务器也称为“源”服务器。在客户机中只要正确指定软件仓库的地址等信息,就可以通过对应的“源”服务器来安装或更新软件。

        yum的实现过程

        先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。

YUM配置文件及命令

        yum配置文件

        主配置文件在/etc/yum.conf

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

[main]
cachedir=/var/cache/yum/$basearch/$releasever //yum下载rpm包的缓存目录/$basearch代表硬件,$releasever代表版本 比如7

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

                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:自定义变量

                    yum仓库设置文件

        /etc/yum.repos.d //yum仓库文件的位置

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

                    yum日志文件

查看日志

[root@localhost ~]#cat /var/log/yum.log 

 

 

        YUM命令详解

命令不加关键字加入关键词、软件包、软件包组
yum list显示所有可用包单个的可安装包
yum info显示所有可用包的信息单个具体的信息
yum search\模糊查找所有的相关信息
yum whatprovides\精确查找
yum grouplist显示所有可用包组显示具体的包组
yum groupinfo\显示具体的包组的具体信息
yum install\安装具体软件包
yum groupinstall\安装具体软件包组
yum update所有软件升级具体软件升级
yum group update所有包组升级具体包组升级
yum remove\卸载具体软件
yum groupremove\卸载具体包组软件
yum history查看当前yum操作历史\
yum history undo加入序号卸载序号里安装的软件\
yum history redo加入序号重新执行序号里的操作\

                查询

yum list 【软件包】 

显示可用的安装包,如不加软件名是显示所有的可用包

 指定某个软件包

 yum info 【】

显示安装包详细信息

yum search <关键词>

根据关键字查找软件安装包,相当于你只知道这个包里的某个关键字会全部给你匹配出来(跟过滤差不多)

yum whatprovides <关键词>

知道某个命令却不知道具体的包可以用此命令查找

 

yum grouplist [包组名]

安装包组的查询 不加包组名 就是显示所有(建议安装英文操作系统,中文操作系统无法显示英文包名字,无法直接复制)

yum groupinfo <包组名>

显示具体的包组的具体信息,不可单独使用

 

                yum安装升级

yum install [软件名]

安装软件包,如安装一个httpd

[root@localhost ~]#yum install httpd
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * extras: mirrors.cn99.com
 * updates: mirrors.cn99.com
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-97.el7.centos will be installed
--> Processing Dependency: httpd-tools = 2.4.6-97.el7.centos for package: httpd-2.4.6-97.el7.centos.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-97.el7.centos.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-97.el7.centos.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-97.el7.centos.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-7.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package httpd-tools.x86_64 0:2.4.6-97.el7.centos will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================
 Package                     Arch                   Version                               Repository               Size
========================================================================================================================
Installing:
 httpd                       x86_64                 2.4.6-97.el7.centos                   updates                 2.7 M
Installing for dependencies:
 apr                         x86_64                 1.4.8-7.el7                           base                    104 k
 apr-util                    x86_64                 1.5.2-6.el7                           base                     92 k
 httpd-tools                 x86_64                 2.4.6-97.el7.centos                   updates                  93 k
 mailcap                     noarch                 2.1.41-2.el7                          base                     31 k

Transaction Summary
========================================================================================================================
Install  1 Package (+4 Dependent packages)

Total download size: 3.0 M
Installed size: 10 M
Is this ok [y/d/N]: y
Downloading packages:
(1/5): apr-util-1.5.2-6.el7.x86_64.rpm                                                           |  92 kB  00:00:00     
(2/5): httpd-tools-2.4.6-97.el7.centos.x86_64.rpm                                                |  93 kB  00:00:00     
(3/5): mailcap-2.1.41-2.el7.noarch.rpm                                                           |  31 kB  00:00:00     
(4/5): apr-1.4.8-7.el7.x86_64.rpm                                                                | 104 kB  00:00:00     
(5/5): httpd-2.4.6-97.el7.centos.x86_64.rpm                                                      | 2.7 MB  00:00:01     
------------------------------------------------------------------------------------------------------------------------
Total                                                                                   2.1 MB/s | 3.0 MB  00:00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : apr-1.4.8-7.el7.x86_64                                                                               1/5 
  Installing : apr-util-1.5.2-6.el7.x86_64                                                                          2/5 
  Installing : httpd-tools-2.4.6-97.el7.centos.x86_64                                                               3/5 
  Installing : mailcap-2.1.41-2.el7.noarch                                                                          4/5 
  Installing : httpd-2.4.6-97.el7.centos.x86_64                                                                     5/5 
  Verifying  : httpd-2.4.6-97.el7.centos.x86_64                                                                     1/5 
  Verifying  : apr-1.4.8-7.el7.x86_64                                                                               2/5 
  Verifying  : mailcap-2.1.41-2.el7.noarch                                                                          3/5 
  Verifying  : httpd-tools-2.4.6-97.el7.centos.x86_64                                                               4/5 
  Verifying  : apr-util-1.5.2-6.el7.x86_64                                                                          5/5 

Installed:
  httpd.x86_64 0:2.4.6-97.el7.centos                                                                                    

Dependency Installed:
  apr.x86_64 0:1.4.8-7.el7            apr-util.x86_64 0:1.5.2-6.el7       httpd-tools.x86_64 0:2.4.6-97.el7.centos      
  mailcap.noarch 0:2.1.41-2.el7      

Complete!

yum groupinstall <包组名>

 包组安装同yum install,安装一个桌面

 安装桌面

[root@localhost ~]#yum -y groups install "GNOME Desktop"

 

 

 ps:如果安装不成功,就先升级一下yum -y upgrade,再安装

                 yum软件卸载

yum remove <软件名>

卸载已安装的软件必须加软件名,把刚刚安装的httpd删除

[root@localhost ~]#yum remove httpd
Loaded plugins: fastestmirror, langpacks
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-97.el7.centos will be erased
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================
 Package                Arch                    Version                                 Repository                 Size
========================================================================================================================
Removing:
 httpd                  x86_64                  2.4.6-97.el7.centos                     @updates                  9.4 M

Transaction Summary
========================================================================================================================
Remove  1 Package

Installed size: 9.4 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : httpd-2.4.6-97.el7.centos.x86_64                                                                     1/1 
  Verifying  : httpd-2.4.6-97.el7.centos.x86_64                                                                     1/1 

Removed:
  httpd.x86_64 0:2.4.6-97.el7.centos                                                                                    

Complete!

yum history

查看历史的使用记录

yum history undo <序号>

对比remove好处是可以将所有的依赖都删除

 

 yum history redo <序号>

恢复刚刚删除的

如果后悔 卸载 可以使用两种方式

yum history redo 4 (重新安装一遍)

yum history undo 6 (反悔卸载等于重新安装一遍)

搭建仓库的方式 

软件仓库的提供方式

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

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

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

        搭建本地yum仓库

将自带的仓库移走

[root@localhost ~]#cd /etc/yum.repos.d/
[root@localhost 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@localhost yum.repos.d]#mkdir bak
[root@localhost yum.repos.d]#mv *.repo bak
[root@localhost yum.repos.d]#ls
bak
[root@localhost yum.repos.d]#

 新建yum仓库文件

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

清理缓存 

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

 yum list 检查仓库 无报错信息即可正常使用。

 如果没有网络,可以只下载,/data 没有会自动创建

[root@localhost ]#yum -y install --downloadonly --downloaddir=/data/bind  bind
#                                  只下载			指定下载目录(如不存在会新建)  软件名

       

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

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

将自带的仓库移走

[root@localhost ~]#cd /etc/yum.repos.d/
[root@localhost 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@localhost yum.repos.d]#mkdir bak
[root@localhost yum.repos.d]#mv *.repo bak
[root@localhost yum.repos.d]#ls
bak
[root@localhost yum.repos.d]#

Centos系统的国内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/

新建aliyun仓库

ftp方式搭建云仓库

服务端:192.168.91.100

客户端:192.168.91.111

先在服务端安装vsftp 

[root@localhost ~]#yum install vsftpd

cd到var/ftp

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

创建两个目录

[root@localhost ftp]#mkdir centos7 other

挂载,把镜像文件挂载到/mnt目录上

[root@localhost ftp]#mount /dev/sr0 /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载

将mnt目录下所有复制到centos7 里 &代表文件大,在后台运行 

[root@localhost ftp]#cp -rf /mnt/* centos7/ &
[1] 19562
[root@localhost ftp]#jobs
[1]+  运行中               cp -i -rf /mnt/* centos7/ &
[root@localhost ftp]#jobs
[1]+  完成                  cp -i -rf /mnt/* centos7/

cd到other

在客户端安装ftp

尝试连接服务端

 

 编写yum仓库文件

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

测试yum是否可以正常使用

[root@localhost yum.repos.d]#yum install dhcp
已加载插件:fastestmirror, langpacks
centos7                                                                                          | 3.6 kB  00:00:00     
other                                                                                            | 3.6 kB  00:00:00     
(1/4): centos7/group_gz                                                                          | 156 kB  00:00:00     
(2/4): centos7/primary_db                                                                        | 3.1 MB  00:00:00     
(3/4): other/group_gz                                                                            | 1.1 kB  00:00:00     
(4/4): other/primary_db                                                                          | 1.1 kB  00:00:00     
Determining fastest mirrors
正在解决依赖关系
--> 正在检查事务
---> 软件包 dhcp.x86_64.12.4.2.5-58.el7.centos 将被 安装
--> 解决依赖关系完成

依赖关系解决

========================================================================================================================
 Package               架构                    版本                                      源                        大小
========================================================================================================================
正在安装:
 dhcp                  x86_64                  12:4.2.5-58.el7.centos                    centos7                  513 k

事务概要
========================================================================================================================
安装  1 软件包

总下载量:513 k
安装大小:1.4 M
Is this ok [y/d/N]: y
Downloading packages:
dhcp-4.2.5-58.el7.centos.x86_64.rpm                                                              | 513 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : 12:dhcp-4.2.5-58.el7.centos.x86_64                                                                  1/1 
  验证中      : 12:dhcp-4.2.5-58.el7.centos.x86_64                                                                  1/1 

已安装:
  dhcp.x86_64 12:4.2.5-58.el7.centos                                                                                    

完毕!

 NFS共享  

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

        NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制, 以完成远 程到本地的映射过程。在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务, 前者用于 NFS 共享发布和访问,后者用于 RPC 支持。 手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。

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

        NFS原理

 

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

                NFS软件介绍

软件包:nfs-utils(包括服务器端和客户端)

相关软件包:rpcbind(必须),tcp_wappers

nfs端口号2049 RPC端口号111

配置文件: /etc/exports​
配置文件格式
/dir   主机1()

        搭建过程

在服务器上安装 nfs-utils.x86_64 rpcbind 我已经有了

[root@localhost ~]#rpm -q rpcbind nfs-utils 
rpcbind-0.2.0-42.el7.x86_64
nfs-utils-1.3.0-0.48.el7.x86_64

开启两个软件包服务

[root@localhost ~]#systemctl start rpcbind

[root@localhost ~]#systemctl start nfs

新建共享目录 ,给权限

[root@localhost ~]#mkdir /share
[root@localhost ~]#cd /share/
[root@localhost share]#chmod -R 777 /share/

 查看详细的nfs信息

[root@localhost share]#exportfs -v
/share        	192.168.91.0/24(rw,sync,wdelay,hide,no_subtree_check,sec=sys,secure,no_root_squash,no_all_squash)
/share        	<world>(ro,sync,wdelay,hide,no_subtree_check,sec=sys,secure,root_squash,no_all_squash)

编辑配置文件/etc/exports

[root@localhost ~]#vim /etc/exports

 

查看本机发布的 NFS 共享目录

 客户机

安装

[root@localhost ~]#rpm -q rpcbind nfs-utils 
rpcbind-0.2.0-42.el7.x86_64
nfs-utils-1.3.0-0.48.el7.x86_64

开启服务

[root@localhost ~]#systemctl start nfs

创建可共享的目录

[root@localhost ~]#mkdir /data

挂载,和服务器共享 

 此时就可以,双方共享文件了

在服务器创建一个文件

客户机上可以看到

 

 在客户机创建文件,服务器也可以看到

 exportfs 可用于管理nfs
-v 查看本机所有nfs
-r 重读配置文件
-a 输出本机所有共享

总结

        YUM软件仓库主要通过HTTP或FTP方式进行发布,且需要提供repodata数据,其中包含所有rpm包文件的头信息,在使用yum命令,查询、安装、升级或卸载软件包时,都有对应的命令list、info、search,install、update、remove等等

        NFS服务在实现依赖于RPC机制,RPC充当NFS客户端和NFS服务器的中介,对NFS共享的访问使用mount命令进行挂载,对应的文件系统类型为nfs,既可以手动挂载,也可以加入fstab配置文件来实现开机自动挂载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小柏ぁ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值