Linux环境部署DNF仓库以及配置NFS共享服务

 更新时间:2025年04月19日 09:42:55   作者:白流心空  
本文详细介绍了如何在Linux环境下部署DNF仓库和配置NFS共享服务,DNF仓库主要用于集中管理软件包,而NFS共享服务则用于多系统间的文件共享,文章涵盖了从仓库部署、软件包同步到NFS配置和客户端访问的全过程,为系统管理员提供了全面的指导

在现代 Linux 系统管理中,高效地管理和分发软件包对于确保系统稳定性、安全性和便捷性至关重要。DNF(Dandified YUM)仓库作为 Fedora、CentOS 8 及后续版本中用于软件包管理的核心组件,为用户提供了强大而便捷的软件包安装、更新和管理功能。与此同时,NFS(Network File System)共享服务在实现多系统间的文件共享与协同工作方面发挥着重要作用。本文将深入探讨如何在 Linux 环境下成功部署 DNF 仓库以及配置 NFS 共享服务。

一.DNF仓库概述与部署准备

1.DNF仓库简介

   DNF 仓库是集中存储软件包及其元数据的服务器或本地目录。当用户在基于 DNF 的系统上执行软件包安装、更新操作时,DNF 工具会从配置的仓库中获取所需的软件包及其相关信息。使用仓库不仅极大地简化了软件管理流程,还能确保用户获取到经过验证和更新的软件版本,从而提高系统的可靠性和安全性。

2.部署环境需求

  • 操作系统:推荐使用 CentOS 8 或 Fedora 等支持 DNF 的主流 Linux 发行版。
  • 网络连接:仓库服务器和客户端需处于同一网络环境中,以确保能够正常通信和传输数据。
  • 存储资源:为仓库服务器准备足够的磁盘空间,用于存储软件包文件。根据实际需求,可考虑使用大容量硬盘或分布式存储系统。
  • 软件包:确保系统中已安装 createrepo_c 和 dnf-utils 等必要软件包,这些软件包可用于仓库的创建和管理。

3.仓库服务器准备

   首先,需要从官方软件源下载所需的软件包。以 CentOS 8 为例,可通过以下命令挂载 CentOS 官方镜像软件源(假设已获取镜像文件),并将其配置为系统的软件源:

mkdir -p /media/cdrom
mount -o loop /path/to/CentOS-8.iso /media/cdrom
echo "/media/centos /etc/yum.repos.d/centos8.repo" >> /etc/yum.repos.d/cnetos8.repo

   其中/path/to/CentOS-8.iso是实际的镜像文件路径

二.DNF仓库的创建

1.软件包目录结构规划

   为 DNF 仓库创建一个专用的目录,例如 /www。在这个目录下,应按照软件包的分类(如不同的发行版本、架构等)创建子目录,以便于管理和查找软件包

mkdir -p /www/dnf_repo/centos8/x86_64

   这种目录结构有助于提高仓库的组织性和可维护性。

2.软件包同步与填充

   有多种方法可将所需的软件包同步到仓库目录中。一种常见的方式是通过订阅官方软件源并使用 dnf 安装工具进行下载。例如,要同步 CentOS 8 的基础软件包,可执行以下命令:

dnf --releaserver=8 --repo=BaseOS install --downloadonly --downloaddir=/www/dnf_repo/centos8/x86_64 软件包名称

   通过多次执行类似命令,可将所需的软件包逐步添加到仓库中。另外,也可编写脚本自动化这个过程,提高效率。

3.创建仓库元数据

   在将软件包放入仓库目录后,需要对仓库进行元数据生成操作,以使 DNF 工具能够正确识别和解析仓库内容。使用 createrepo_c 命令即可完成这一任务:

createrepo_c /www/dnf_repo/centos8/x86_64

   此命令会生成包含软件包信息、依赖关系等元数据的文件,如 repodata 目录下的各种文件。这些元数据文件对于 DNF 工具的软件包搜索、版本比较和依赖解决至关重要。

三、配置DNF仓库

   借助于 DNF软件仓库,可以完成安装、卸载、自动升级rpm 软件包等任务,能够自动査找并解决 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部分:

部署dnf仓库及nfs共享服务_CentOS

   常见选项说明:

参数名称

说明

cachedir

缓存目录,该目录用于存储RPM包和数据库文件。

keepcache

可选值1和0,表示是否要缓存已安装成功的那些RPM包及头文件,缺省值为0,即为不缓存

debuglevel

设置 dnf 生成的 debug 信息。取值范围:[0-10],数值越大会输出越详细的 debug 信息。缺省值为2,设置为0表示不输出 debug 信息。

clean_requirements_on_remove

删除在 dnf remove 期间不再使用的依赖项,如果软件包是通过 DNF 安装的,而不是通过显式用户请求安装的,则只能通过 clen_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/nf.conf 文件中的“repository”部分,另外一种是配置/etc/yum.repos.d目录下的.repo 文件。直接配置/etc/dnf/dnf.conf 文件中的“repository”部分,下面是[repository]部分的一个最小配置

部署dnf仓库及nfs共享服务_服务器_02

   openEuler 提供在线的镜像源,地址:https://repo.openeuler.org/。以 openEuler 23.09的 aarch64版本为例,baseurl 可配置为https://repo.openeuler.org/openEuler-23. 09/0S/aarch64/。

选项说明:

参数

说明

name=repository_name

软件仓库(repository )描述的字符串。

baseurl=repository_url

软件仓库(repository)的地址。

  • 使用http协议的网络位置:例如 http://path/to/repo。
  • 使用ftp协议的网络位置:例如 ftp://path/to/repo。
  • 本地位置:例如 file:///path/to/local/repo。

四、创建本地软件源仓库

  1.安装createrope软件包

dnf install createrepo

  2.将需要的软件包复制到一个目录下,如/ww/ww.repo

  3.创建软件源

createrepo /ww/ww.repo

五、添加、启用和禁用软件园

  1.添加软件源

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

dnf config-manager --add-repo repository_url

 其中repository_url 为repo 源地址。

  2.启用软件源

dnf config-manager --set-enable repository

其中 repository 为新增.repo 文件中的repo id(可通过 dnf repolist 查询)。

也可以使用一个全局正则表达式,来启用所有匹配的软件源。

dnf config-manager --set-enable glob_expression

其中glob_expression 为对应的正则表达式,用于同时匹配多个repo id。

  3.禁用软件源

dnf config-manager --set-disable repository

使用一个全局正则表达式来禁用所有匹配的软件源。

dnf config-manager --set-disable glob_expression

六、管理软件包

  1.搜索软件包

可以使用 rpm 包名称、缩写或者描述搜索需要的 RPM 包。

dnf search package_name

  2.列出软件包清单

列出系统中所有已安装的以及可用的RPM 包信息。

dnf list all

  3.显示rpm包信息

显示一个或者多个 RPM 包信息,多个包之间以空格分隔。

dnf info httpd zip (以httpd,zip 两个包为例)

  4.安装rpm包

安装一个软件包及其所有未安装的依赖。

dnf install package_name

也可以通过添加软件包名字同时安装多个软件包。配置文件/etc/dnf/dnf.conf 添加参数strict=False,运行 dnf命令参数添加--setopt=strict=0。

dnf install package_name package_name --setopt=strict=0

  5.下载软件包

使用 dnf 下载软件包。

dnf download package_name

如果需要同时下载未安装的依赖,则加上--resolve。

dnf download --resolve package_name

  6.删除软件包

卸载软件包以及相关的依赖软件包。

dnf remove package_name

七、管理软件包组

  1.列出软件包清单

使用summary 参数,可以列出系统中所有己安装软件包组、可用的组,可用的环境组的数量。

dnf groups summary

列出所有软件包组和它们的组ID。

dnf group list

  2.显示软件包信息

要列出包含在一个软件包组中必须安装的包和可选包。

dnf group info glob_expression

  3.安装软件包组

使用软件包组名称或它的 ID进行安装。

dnf group install group_name

使用软件包组名称安装

dnf group install groupid

使用软件包组id安装

  2.删除软件包组

卸载软件包组,您可以使用软件包组名称或它的ID。

dnf group remove group_name

使用软件包组名称删除

dnf group remove groupid

使用软件包组id删除

八、检查并更新

  1.检查更新

dnf check-update

  2.升级

dnf update package_name

升级软件包

dnf group update group_name

升级软件包组

  3.更新所有的包和依赖

dnf update

九、NFS共享存储服务

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

1.使用NFS发布共享资源

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

1.安装nfs-utils、rpcbind软件包

部署dnf仓库及nfs共享服务_软件源_03

2.设置共享目录

部署dnf仓库及nfs共享服务_CentOS_04

3.启动NFS服务程序

部署dnf仓库及nfs共享服务_CentOS_05

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

部署dnf仓库及nfs共享服务_软件源_06

十、客户端访问NFS共享资源

1.安装并启动rpcbind服务

部署dnf仓库及nfs共享服务_CentOS_07

2.手动挂载NFS共享目录

部署dnf仓库及nfs共享服务_软件源_08

部署dnf仓库及nfs共享服务_服务器_09

3.fstab自动挂载设置

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

部署dnf仓库及nfs共享服务_CentOS_10

4.强制卸载NFS

   NFS 客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端NFS服务突然间停掉了,那么在客户端就会出现执行 df -h 命令卡死的现象。这个时候使用 umount 命令是无法直接卸载的,需要加上 -lf 才能卸载。当出现卡死现象时,要重新开一个终端,执行cat/etc/rc.local 命令,查看挂载点。然后使用 umount 命令卸载。

部署dnf仓库及nfs共享服务_软件源_11

到此这篇关于Linux环境部署DNF仓库以及配置NFS共享服务的文章就介绍到这了,更多相关Linux部署DNF和配置NFS内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解CentOS7 FTP服务搭建(虚拟用户访问FTP服务)

    详解CentOS7 FTP服务搭建(虚拟用户访问FTP服务)

    Liunx外部文件的传输,避免不了使用FTP服务,所以现在就整理下,CentOS7环境下,FTP服务的搭建。有兴趣的可以了解一下。
    2017-01-01
  • CentOS 8 正式发布 基于Red Hat Enterprise Linux 8

    CentOS 8 正式发布 基于Red Hat Enterprise Linux 8

    紧随CentOS Linux 7.7发行版之后,CentOS Linux 8现已正式发布,新版本基于Red Hat Enterprise Linux 8.0源,这意味着它具有混合云时代的所有强大的新特性和增强功能
    2019-09-09
  • linux系统安装msf的过程详解

    linux系统安装msf的过程详解

    这篇文章主要介绍了linux系统安装msf的过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • linux系统中使用Vim删除偶数行或者奇数行

    linux系统中使用Vim删除偶数行或者奇数行

    vim中进行奇偶数行操作,思路很简单,就是一次匹配两行,然后删除奇数行,删除偶数行或者两行合并。下面我们来看看具体怎么操作吧
    2014-08-08
  • linux tail 查看日志文件方法

    linux tail 查看日志文件方法

    这篇文章给大家分享了linux tail 查看日志文件方法,有兴趣和需要的朋友们可以参考学习下。
    2018-07-07
  • 详解轻巧AMH虚拟主机面板安装使用和GCE云空间搭建网站实例

    详解轻巧AMH虚拟主机面板安装使用和GCE云空间搭建网站实例

    这篇文章主要介绍了轻巧AMH虚拟主机面板安装使用和GCE云空间搭建网站实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • 详解Linux 主机网络接入配置

    详解Linux 主机网络接入配置

    这篇文章主要介绍了详解Linux 主机网络接入配置的相关资料,希望通过本文能帮助到大家,让大家实现网络接入配置的功能,需要的朋友可以参考下
    2017-10-10
  • 解决ssh远程登陆linux显示-bash-4.1$的问题

    解决ssh远程登陆linux显示-bash-4.1$的问题

    下面小编就为大家带来一篇解决ssh远程登陆linux显示-bash-4.1$的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • CentOS Linux服务器安全设置

    CentOS Linux服务器安全设置

    这篇文章主要介绍了阿里云linux服务器安全设置,无论是配置任何服务器,我们都必须把不用的服务关闭、把系统权限设置到最小话,这样才能保证服务器最大的安全,下面是CentOS服务器安全设置,供大家参考,需要的朋友可以参考下
    2016-10-10
  • Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17详细配置

    Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17详细配置

    算不上经验,只能说是个人总结.在搭建过程中遇到的问题.并记录下来.刚开学习始搭建环境的朋友少走一些弯路.这没有过多的参数,并不是什么高性能网站的部署.本人经验有限,在此分享一些遇到的问题.
    2012-06-06

最新评论