Linux 实操:DNF 仓库与 NFS 共享服务快速部署指南
·
前言
在 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 官方源)
适合能联网的服务器,步骤:
- 创建 repo 文件:
vim /etc/yum.repos.d/openEuler.repo
- 写入配置:
[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
- 验证:
dnf repolist(输出 os 源即生效)
1.3.2 本地源(企业内网必备)
内网多服务器场景,搭建本地源节省带宽,步骤:
- 安装工具:
dnf install createrepo -y - 创建本地仓库目录并同步软件包:
mkdir -p /opt/myrepo
cd /opt/myrepo
reposync --repo=os # 同步官方os源到本地(需联网一次)
- 生成源索引:
createrepo /opt/myrepo/ - 配置本地源 repo 文件:
vim /etc/yum.repos.d/myrepo.repo
[myrepo]
name=LocalRepo
baseurl=file:///opt/myrepo
enabled=1
gpgcheck=0
- 验证:
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:配置共享目录
- 创建共享目录:
mkdir -p /opt/wwwroot(自定义路径) - 编辑配置文件(核心):
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 保留权限)。
- 生效配置:
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:挂载共享目录
- 创建本地挂载点:
mkdir -p /var/www/html - 手动挂载(临时,重启失效):
mount 192.168.10.101:/opt/wwwroot /var/www/html
- 验证:
df -h(输出 NFS 挂载记录即成功)
步骤 4:开机自动挂载(推荐)
- 编辑配置文件:
vim /etc/fstab
# 末尾添加
192.168.10.101:/opt/wwwroot /var/www/html nfs defaults,netdev 0 0
- 生效:
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 部分按 “服务端配置共享 + 客户端挂载” 步骤操作,快速实现跨主机文件共享。
更多推荐




所有评论(0)