前言

在 Linux 系统运维中,DNF 软件包管理和 NFS 跨服务器共享是必备基础技能。DNF 能自动解决软件依赖,让安装、升级更高效;NFS 可实现多主机文件无缝共享,适用于集群、备份等场景。本文基于 openEuler 系统,提炼核心操作步骤,去掉冗余说明,聚焦 “能直接上手”,初学者可快速掌握两大服务的部署与使用。

一、DNF 仓库部署与软件包管理

1.1 DNF 基础认知

DNF 是新一代 RPM 包管理工具,兼容 YUM,核心优势:自动解决依赖、支持本地 / 远程源、操作简洁。注意:所有命令需 root 权限执行(或加 sudo)。

1.2 核心配置文件

1.2.1 主配置文件:/etc/dnf/dnf.conf

包含两部分:[main](全局设置)和[repository](软件源设置),核心参数如下(直接用默认配置即可满足基础需求):

[main]
gpgcheck=1          # 开启签名验证(安全)
installonly_limit=3 # 保留3个内核旧版本
clean_requirements_on_remove=True # 卸载时清理无用依赖
best=True           # 优先安装最佳兼容版本
skip_if_unavailable=False # 源不可用时报错
1.2.2 软件源目录:/etc/yum.repos.d/

存放.repo 后缀的软件源配置文件,推荐通过此目录添加软件源(比直接修改 dnf.conf 更灵活)。

1.3 软件源配置(本地 + 远程)

1.3.1 远程源(openEuler 官方源)

适合能联网的服务器,步骤:

  1. 创建 repo 文件:
vim /etc/yum.repos.d/openEuler.repo
  1. 写入配置:
[os]
name=openEuler-OS
baseurl=https://repo.openeuler.org/openEuler-$releasever/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.openeuler.org/openEuler-$releasever/OS/$basearch/RPM-GPG-KEY-openEuler
  1. 验证:dnf repolist(输出 os 源即生效)
1.3.2 本地源(企业内网必备)

内网多服务器场景,搭建本地源节省带宽,步骤:

  1. 安装工具:dnf install createrepo -y
  2. 创建本地仓库目录并同步软件包:
mkdir -p /opt/myrepo
cd /opt/myrepo
reposync --repo=os # 同步官方os源到本地(需联网一次)
  1. 生成源索引:createrepo /opt/myrepo/
  2. 配置本地源 repo 文件:
vim /etc/yum.repos.d/myrepo.repo
[myrepo]
name=LocalRepo
baseurl=file:///opt/myrepo
enabled=1
gpgcheck=0
  1. 验证:dnf clean all && dnf repolist(输出 myrepo 即成功)

1.4 软件源启用 / 禁用

# 查看所有源状态
dnf repolist all
# 启用源(例:myrepo)
dnf config-manager --set-enable myrepo
# 禁用源(例:os)
dnf config-manager --set-disable os

1.5 软件包核心操作(高频使用)

功能 命令示例
搜索软件包 dnf search httpd(关键词搜索)
查看软件包信息 dnf info httpd
安装软件包 dnf install httpd -y(-y 自动确认)
安装多个软件包 dnf install httpd mysql php -y
下载软件包(不安装) dnf download httpd --resolve(含依赖)
卸载软件包 dnf remove httpd -y
卸载并清理依赖 dnf autoremove httpd -y
检查更新 dnf check-update
升级单个软件 dnf update httpd -y
全面升级系统 dnf update -y

1.6 软件包组管理(批量操作)

# 查看所有包组
dnf group list
# 安装包组(例:开发工具集)
dnf group install "Development Tools" -y
# 卸载包组
dnf group remove "Development Tools" -y

1.7 常见问题速解

  • 提示 “无权限”:切换 root(su - root)或加 sudo。
  • 源不可用:dnf config-manager --set-disable 无效源ID,再dnf clean all --refresh
  • 依赖冲突:尝试安装指定版本(dnf install 软件名-版本号)。

二、NFS 共享服务部署

2.1 NFS 基础认知

NFS 基于 TCP/IP,依赖 RPC 机制,核心用于跨主机文件共享。需安装两个软件包:nfs-utils(NFS 核心)、rpcbind(RPC 支持)。

2.2 服务端配置(共享方)

步骤 1:环境准备 
# 关闭SELinux(临时)
setenforce 0
# 关闭防火墙(初学者简化,生产环境可配置放行规则)
systemctl stop firewalld && systemctl disable firewalld
步骤 2:安装软件包
dnf install nfs-utils rpcbind -y
# 设置开机自启
systemctl enable nfs rpcbind
步骤 3:配置共享目录
  1. 创建共享目录:mkdir -p /opt/wwwroot(自定义路径)
  2. 编辑配置文件(核心):
vim /etc/exports
# 格式:共享目录 客户端地址(权限)
/opt/wwwroot 192.168.10.0/24(rw, sync, no_root_squash)
  • 客户端地址:可填 IP(192.168.10.102)、网段(192.168.10.0/24)、*(所有主机)。
  • 权限:rw(读写)、ro(只读)、sync(同步写入)、no_root_squash(客户端 root 保留权限)。
  1. 生效配置:exportfs -r
步骤 4:启动服务并验证
# 先启动rpcbind,再启动nfs
systemctl start rpcbind nfs
# 查看共享目录
showmount -e
# 输出如下表示成功
Export list for 主机名:
/opt/wwwroot 192.168.10.0/24

2.3 客户端配置(访问方)

步骤 1:环境准备
setenforce 0
systemctl stop firewalld && systemctl disable firewalld
# 安装依赖包
dnf install nfs-utils rpcbind -y
systemctl start rpcbind && systemctl enable rpcbind
步骤 2:查看服务器共享
# 格式:showmount -e NFS服务器IP
showmount -e 192.168.10.101
步骤 3:挂载共享目录
  1. 创建本地挂载点:mkdir -p /var/www/html
  2. 手动挂载(临时,重启失效):
mount 192.168.10.101:/opt/wwwroot /var/www/html
  1. 验证:df -h(输出 NFS 挂载记录即成功)
步骤 4:开机自动挂载(推荐)
  1. 编辑配置文件:
vim /etc/fstab
# 末尾添加
192.168.10.101:/opt/wwwroot /var/www/html nfs defaults,netdev 0 0
  1. 生效:mount -a(无报错即配置正确)

2.4 强制卸载(解决卡死问题)

若服务器停机导致客户端挂载卡死,执行:

umount -lf /var/www/html
# -l:解除繁忙挂载,-f:强制

2.5 常见问题速解

  • 客户端看不到共享:检查服务器 rpcbind、nfs 服务是否启动,exports 配置是否正确。
  • 挂载后无法写入:服务器共享目录权限设为 777(chmod 777 /opt/wwwroot),exports 配置为 rw 权限。
  • 开机挂载失败:fstab 中添加 netdev 参数(表示依赖网络)。

三、总结

本文聚焦 DNF 和 NFS 的核心操作,去掉冗余理论,保留 “步骤 + 命令 + 验证” 的实操流程。DNF 部分掌握软件源配置和常用包管理命令,即可满足日常运维;NFS 部分按 “服务端配置共享 + 客户端挂载” 步骤操作,快速实现跨主机文件共享。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐