Linux部署DNF仓库及NFS共享服务

一.配置DNF

借助DNF软件仓库,可以安装、卸载、自动升级rpm软件包等任务,能够自动查找并解决rpm包之间的依赖关系,不需要管理员一个一个下载无需手动去安装每个软件包,管理员在维护大量linux服务器时更轻松。

拥有大量 Linux 主机的本地网络中,构建一台“源”服务器可以大大缓解软件安装、升级等对 Internet 的依赖。DNF 与 YUM 完全兼容,提供了 YUM 兼容的命令行以及为扩展和插件提供的 API。使用 DNF 需要管理员权限

1.DNF配置文件

DNF的主要配置文件在/etc/dnf/dnf.conf 文件包分两部分

  • “main” 部分保留这DNF全局设置
  • “repository" 部分保存着软件源设置,可以有零个或多个”repository“

在/etc/yum.repos.d 目录中保存着零个或多个repo 源相关文件,它们也可以定义不同的
“repository
所以 openEuler 软件源的配置一般有两种方式,一种是直接配置/etc/dnf/dnf.conf 文件中的’repository”部分,另外一种是在/etc/yum.repos.d 目录下增加.repo 文件

2.配置main部分

/etc/dnf/dnf.conf 文件含”main“部分
在这里插入图片描述
常见选项说明

参数名称说明
cachedir缓存目录,该目录用于存储 RPM 包和数据库文件
keepcache可选值是1和0,表示是否要缓存已安装成功的那些 RPM包及头文件,缺省值为 0,即不缓存
debuglevel设置 dnf 生成的 debug 信息。取值范围:[0-10],数值越大会输出越详细的 debug 信息。缺省值为 2,设置为0表示不输出 debug 信息。
clean_reguirements_on_remove删除在 dnf remove 期间不再使用的依赖项,如果软件包是通过 DNF 安装的,而不是通过显式用户请求安装的,则只能通过 clean requirements on_remove删除软件包,即它是作为依赖项引入的。缺省值为 True
best升级包时,总是尝试安装其最高版本,如果最高版本无法安装,则提示无法安装的原因并停止安装。缺省值为True
obsoletes可选值1和0,设置是否允许更新陈旧的RPM包。缺省值为 1,表示允许更新
gpgcheck可选值1和0,设置是否进行 gpg校验。缺省值为1,表示需要进行校验
plugins可选值1和0,表示启用或禁用 dnf插件。缺省值为1,表示启用 dnf 插件
installonly_limit设置可以同时安装“installonlypkgs"指令列出包的数量。缺省值为 3,不建议降低此值

3.配置repository部分

repository 部分允许您定义定制化的 openEuler 软件源仓库,各个仓库的名称不能相同,否则会引起冲突。配置 repository 部分有两种方式,一种是直接配置/etc/dnf/dnf.conf 文件中的“repository”部分,另外一种是配置/etc/yum.repos.d 目录下的.repo 文件。
直接配置/etc/dnf/dnf.conf 文件中的“repository”部分,下面是[repository]部分的一个最小配置

[repository]
name=repository_name
baseurl=repository_url

这些配置说明含义是

参数说明
name=repository name软件仓库(repository )描述的字符串
baseurl=repository url软件仓库(repository )的地址。使用http协议的网络位置:例如 http://path/to/repo使用ftp协议的网络位置:例如 ftp://path/to/repo本地位置:例如 file:///path/to/local/repo

置/etc/yum.repos.d目录下的.repo 文件。openEuler 提供了多种 repo 源供用户在线使用,各 repo源含义可参考系统安装。使用root 权限添加 openEuler repo 源
在这里插入图片描述

  • enabled 为是否启用该软件源仓库,可选值为1 和0。缺省值为1,表示启用该
    软件源仓库
  • gpgkey 为验证签名用的公钥

①显示当前配置内容

1.显示当前配置信息
dnf config-manager --dump
在这里插入图片描述
2.显示相应软件源配置,首先查询repo id
dnf repolist
在这里插入图片描述

3.然后执行如下命令,显示对应id 的软件源配置,其中repository 为査询得到的
repo id:dnf config-manager --dump repository
4.您也可以使用一个全局正则表达式,来显示所有匹配部分的配置
dnf config-manager --dump glob expression

4.创建本地软件源仓库

要建立一个本地软件源仓库,请按照下列步骤操作。

  1. 安装 createrepo 软件包
    dnf install createrepo
  2. 将需要的软件包复制到一个目录下,如/mnt/local_repo/创建软件源。
  3. createrepo /mnt/local repo

5添加、启用和禁用软件源

①添加软件源

要定义一个新的软件源仓库,您可以在 /etc/dnf/dnf.conf 文件中添加“repository”部分,或者在/etc/yum.repos.d/目录下添加“.repo”文件进行说明。建议您通过添加“.repo”的方式,每个软件源都有自己对应的“.repo”文件

在这里插入图片描述
添加仓库数据
在这里插入图片描述

②启动软件源

要启用软件源,请在 root 权限下执行如下命令,其中 repository 为新增.repo 文件中的repo id
在这里插入图片描述

③禁用软件源

要禁用软件源
在这里插入图片描述

二.管理软件包

使用 dnf 能够让您方便的进行查询、安装、删除软件包等操作

①搜索软件包

您可以使用 rpm 包名称、缩写或者描述搜索需要的 RPM 包,使用命令如下
dnf search httpd

②列出软件包清单

要列出系统中所有已安装的以及可用的RPM包信息,使用命令如下:
dnf list all
要列出系统中特定的 RPM包信息,使用命令如下
dnf list httpd

③显示RPM包信息

查看全部软件包可以使用dnf list all (all也可以替换成指定软件包)
在这里插入图片描述

④安装rpm软件包

要安装一个软件包及其所有未安装的依赖,请在root 权限下执行如下命令:dnf install package name
dnf install httpd
您也可以通过添加软件包名字同时安装多个软件包。配置文件/etc/dnf/dnf.conf 添加参数strict=False,运行 dnf 命令参数添加–setopt=strict=0。请在 root 权限下执行如下命令:dnf install package name package name…–setopt=strict=0

⑤下载软件包

使用 dnf 下载软件包,请在 root 权限下输入如下命令:dnfdownload package_name
如果需要同时下载未安装的依赖,则加上–resolve

在这里插入图片描述

⑥删除软件包

要卸载软件包以及相关的依赖软件包,请在root 权限下执行如下命令
dnf remove package name…
dnf remove totem

三.管理软件包组

①列出软件包组清单

使用 summary 参数,可以列出系统中所有已安装软件包组、可用的组,可用的环境组的数量
在这里插入图片描述
要列出所有软件包组id
在这里插入图片描述

显示软件包组信息
要列出包含在一个软件包组中必须安装的包和可选包
在这里插入图片描述
安装软件包组
每一个软件包组都有自己的名称以及相应的 ID(groupid),您可以使用软件包组名称或它的 ID 进行安装
要在root超级管理员执行
在这里插入图片描述
已安装一个软件包组
在这里插入图片描述

删除软件包组

在这里插入图片描述

四.检查并更新

检查更新
如果您需要显示当前系统可用的更新,使用命令

dnf check-update

升级
如果您需要升级单个软件包,在root 权限下执行如下命令:dnf update package name#例如升级rpm 包

dnf update anaconda-gui.aarch64 (以anaconda-gui 包)#类似的

如果您需要升级软件包组,在root 权限下执行

dnf group update group name

更新所有的包和它们的依赖

要更新所有的包和它们的依赖,在root 权限下执行

dnf update

五.NFS文件共享存储服务

NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。通过使用NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。对于大多数负载均衡群集来说,使用 NFS 协议来共享数据存储是比较常见的做法,NFS也是NAS存储设备必然支持的一种协议

1.使用NFS发布共享资源

NFS 服务的实现依赖于 RPC(Remote Process Cal1,远端过程调用)机制,以完成远程到本地的映射过程。在 0penEuler 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS共享发布和访问,后者用于RPC 支持

①安装 nfs-utils,rpcbind软件包

提供 RPC 支持的服务为 rpcbind,提供 NFS 共享的服务为 nfs,完成安装以后建议调整这两个服务的自启动状态,以便每次开机后自动启用。手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs
在这里插入图片描述
在这里插入图片描述

②设置共享目录

NFS 的配置文件为/etc/exports,文件内容默认为空(无任何共享)。在 exports 文件中设置共享资源时,记录格式为“目录位置客户机地址(权限选项)”

[root@local ~]~# mkdir-p /opt/wwwroo
[root@local ~]# vim /etc/exports/opt/wwwroot 192.168.10.0/24(rw,sync,no_root_squash)

客户机地址可以是主机名、IP 地址、网段地址,允许使用、?通配符;权限选项中的 rw 表示允许读写(ro 为只读),sync 表示同步写入,no_root_squash 表示当客户机以root 身份访问时赋予本地 root 权限(默认是 root_squash,将作为 nfsnobody 用户降权对待)。
当需要将同一个目录共享给不同的客户机,且分配不同的权限时,只要以空格分隔指定多个“客户机(权限选项)”
*

③启动nfs服务

在这里插入图片描述
查看我发布共享目录
在这里插入图片描述

2.在客户端访问nfs文件共享

NFS 协议的目标是提供一种网络文件系统,因此对 NFS 共享的访问也使用 mount 命令来进行挂载。
对应的文件系统类型为 nfs。既可以手动挂载,也可以加入 fstab 配置文件来实现开机自动挂载

①安装并启动 rpcbind

若要正常访问 NFS 共享资源,客户机中也需要安装 rpcbind 软件包,并启动 rpcbind 系统服务。另外,为了使用 showmount 查询工具,建议将 nfs-utils 软件包也一并装上

dnf install y rpcbind nfs-utils
systemctl enable rpcbind
systemctl start rpcbind

如果已经安装了 nfs-utils 软件包,则客户机也可以使用 showmount 查看 NFS 服务器端共享了哪些目录,查询格式为“showmount -e服务器地址”
在这里插入图片描述

②手动挂载 NFS 共享目录

以 root 用户身份执行 mount 操作,将 NFS 服务器共享的/opt/wwwroot 日录挂载到本地目录/var/www/html。与挂载本地文件系统不同的是,设备位置处应指出服务器地址

mount 192.168.10.101:/opt/wwwroot /var/www/html
[root@node02 ~]# tail -1 /etc/mtab

在这里插入图片描述
现在去查看服务器的共享目录是否自动生成123.txt

在这里插入图片描述

③fstab自动挂载

修改/etc/fstab 配置文件,加入 NFS 共享目录的挂载设置。注意将文件系统类型设为 nfs,挂载参数建议添加 netdev(设备需要网络):若添加 sof、intr 参数可以实现软挂载,允许在网络中断时放弃挂载。这样客户机就可以在每次开机后自动挂载 NFS共享资源了

[root@local ~]# vim /etc/fstab //省略部分信,息......192.168.10.101:/opt/wwwroot /var/www/html nfs defaults,_netdev 0 0

④强制卸载nfs

NFS 客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端 NFS 服务突然间停掉了,那么在客户端就会出现执行 df -h 命令卡死的现象。这个时候使用 umount 命令是无法直接卸载的,需要加上 -1f 才能卸载

[root@localhost ~]# umount /var/www/html
umount.nfs4:/var/www/html:device is busy
[root@localhost ~]# umount -lf /var/www/html

谢谢大家观看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值