部署DNF仓库及NFS共享服务

前言

在现代Linux系统中,软件包的高效管理是保障系统稳定性和扩展性的关键。DNF作为新一代RPM包管理工具,通过自动解决依赖关系和灵活的仓库配置,极大简化了软件安装、升级及维护的复杂度。通过DNF工具,管理员可快速构建本地镜像源,减少对外部网络的依赖,尤其适用于企业内网环境,实现软件资源的集中管理与快速分发。

此外,网络文件系统(NFS)作为跨服务器数据共享的核心协议,为分布式系统提供了无缝的存储整合能力。通过NFS,多台服务器可高效访问同一存储资源,支撑负载均衡集群、数据备份等场景。

配置DNF

借助于DNF软件仓库,可以完成安装、卸载、自动升级rpm软件包等任务,能够自动查找并解决rpm包之间的依赖关系,无须逐个、手动安装每一个rpm包。DNF与YUM完全兼容,提供了YUM兼容的命令行以及为扩展和插件提供API,使用DNF需要管理员权限。

配置DNF配置文件

DNF的主要配置文件是/etc/dnf/dnf.conf,该文件包括两部分:

a.“main”:部分保存着DNF的全局设置

b.“repository”:部分保存着软件源的设置,可以有零个或多个“repository”

另外,在/etc/yum.repos.d目录中保存着零个或多个repo源相关文件,它们也可以定义不同的“repository”。

所以openEuler软件源的配置一般有两种方式,一种是直接配置/etc/dnf/dnf.conf文件中的“repository”部分,另外一种是在/etc/yum.repos.d目录下增加.repo文件

配置main部分

/etc/dnf.conf文件包含的“main”部分,配置示例如下

常用选项说明:

参数名称说明
cachedir缓存目录,该目录用于存储RPM包和数据库文件
keepcache可选值是1和0,表示是否要缓存已安装成功的那些RPM包及头文件,缺省值为0,即不缓存
debuglevel设置dnf生成的debug信息,取值范围:0~10,数值越大会输出越详细的debug信息,缺省值为2,设置为0表示不输出debug信息
clean_requirements_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,不建议降低此值

配置repository部分

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

直接配置/etc/dnf/dnf.conf文件中的”repository“部分,下面是此部分的一个最小配置示例:

选项说明:

参数说明
name=repository_name软件仓库(repository)描述的字符串
baseur1=repository_ur1

软件仓库的地址

a.使用http协议的网络位置:例,http://path/to/repo

b.使用ftp协议的网络位置:例,ftp://path/to/repo

c.本地位置:例,file:///path/to/local/repo

配置/etc/yum.repos.d目录下的.repo文件。openEuler提供多种repo源供用户在线使用,各repo源含义可参考系统安装。使用root权限添加openEuler repo源,示例:

显示当前配置

a.显示当前的配置信息:dnf config-manager --dump

b.显示相应软件源的配置,首先查询repo id:dnf repolist

c.然后执行如下命令,显示对应id的软件源配置,其中repository为查询得到的repo id:dnf config-manager --dump repository

d.全局正则表达式,显示所有匹配部分的设置:dnf config-manager --dump glob_expression

创建本地软件源仓库

步骤

1.安装createrepo软件包

dnf  install  createrepo

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

3.创建软件源

createrepo  /mnt/local_repo

添加、禁用和启用软件源

添加软件源

要定义一个新的软件源仓库,您可以在/etc/dnf/dnf.conf文件中添加“repository”部分,或者在/etc/yum.repos.d/目录下添加“.repo”文件进行说明。

要在系统中添加一个这样的源,请在root权限下执行如下命令,执行完成之后会在/etc/yum.repos.d/目录下生成对应的repo文件。其中repository_url为repo源地址。

命令:dnf  config-manager --add-repo repository_url

启用软件源

启用软件源在root权限下执行如下命令,其中repository为新增.repo文件中的repo id(可通过dnf repolist查询)

命令:dnf config-manager --set-enable repository

也可以使用一个全局正则表达式,来启用所有匹配的软件源。其中glob_expression为对应的正则表达式,用于同时匹配多个repo id:

dnf config-manager  --set-enable glob_expression

禁用软件源

root权限下执行如下命令:

dnf config-manager  --set-disable repository

同样的,也可以使用一个正则表达式来禁用所有匹配的软件源:

dnf config-manager  --set-disable glob_expression

管理软件包

搜索软件包

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

命令:dnf  search  httpd(以httpd为例)

列出软件包清单

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

命令:dnf install all

要列出系统中特定的RPM包信息

命令:dnf list httpd(httpd为例)

显示RPM包信息

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

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

安装RPM包

要安装一个软件包及其所有未安装的依赖,在root权限下执行以下命令:

dnf install package_name

下载软件包

使用dnf下载软件包,root权限下执行命令

命令:dnf download --resolve package_name

删除软件包

命令:dnf remove package_name

管理软件包组

软件包集合是服务于一个共同的目的一组软件包,例如系统工具等。

列出软件包组清单

使用summary参数,可以列出所有已安装软件包组、可用的组,可用的环境组

命令:dnf groups summary

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

命令:dnf group list

显示软件包组信息

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

命令:dnf group info glob_expression

例:显示Development Tools信息

命令:dnf group info “Development Tools”

安装软件包组

每一个软件包组都有自己的名称以及相应的ID,可以使用软件包组名称或它的ID进行安装(root权限)

命令:dnf group install group_name

           dnf group install groupid

删除软件包组

命令:dnf group remove group_name

            dnf group remove groupid

检查并更新

dnf可以检查系统中是否有软件包需要更新

检查更新

显示当前系统可用的更新

命令:dnf check-update

升级

root权限下,升级单个软件包

命令:dnf update package_name

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

命令:dnf update

NFS共享存储服务

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

使用NFS发布共享资源

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

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

手动加载NFS共享服务时,应该先启动rpcbind,再启动nfs

命令:dnf install -y nfs-utils rpcbind

           systemctl enable nfs

           systemctl enable rpcbind

2.设置共享目录

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

例:将文件/opt/wwwroot共享给192.168.10.0/24网段使用,允许读写操作

命令:mkdir -p /opt/wwwroot

           vim /etc/exports

/opt/wwwroot  192.168.10.0/24(rw,sync,no_root_squash)

其中客户机地址可以是主机名、IP地址、网段地址,允许使用*、?通配符;权限选项中rw表示允许读写(ro为只读),sync表示同步写入,no_root_squash表示当客户机以root身份访问时赋予本地root权限。

当需要将同一个目录共享给不同的客户机,且分配不同的权限时,只要以空格分隔指定多个“客户机(权限选项)”即可

例:将/var/ftp/public目录共享给两个客户机,并分别给予只读、读写权限

命令:vi /etc/exports

/var/ftp/pub 192.168.10.101(ro)  192.168.10.102(rw)

3.启动NFS服务程序

systemctl start rpcbind

systemctl start nfs-server

dnf install net-tools -y (安装网络工具,否则无法使用netstat)

netstat -anpt | grep rpc

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

showmount -e

在客户机中访问NFS共享资源

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

1.安装并启动rpcbind

若要正常访问NFS共享资源,客户机中也需要安装rpcbind软件包,并启动rpcbind系统服务

命令:dnf  install  -y  rpcbind  nfs-utils

           systemctl  enable  rpcbind

           systemctl  start  rpcbind

使用showmount查看NFS服务器共享哪些目录,格式为“showmount  -e  服务器地址”  

命令:showmount  -e  192.168.10.101

2.手动挂载NFS共享目录

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

命令:mount  192.168.10.101:/opt/www/html  /var/www/html

          tail -l  /etc/mtab(确认挂载结果)

          vim  /var/www/html/index.html(在客户机创建测试文件)

test web document

完成挂载后,访问客户机/var/www/html文件夹,实际上就相当于访问NFS服务器中的/opt/wwwroot文件夹,其中的网络映射过程对于用户程序来说是透明的。例如,上述操作中创建的测试文件,会立刻出现在服务器的/opt/wwwroot目录下

3.fstab自动挂载设置

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

vim /etc/fstab

192.168.10.101:/opt/wwwroot  /var/www/html  nfs  default,_netdev  0  0

4.强制卸载NFS

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

命令:umount  /var/www/html(显示device is busy)

          umount  -lf  /var/www/html

<think>嗯,用户询问的是在线安装操作系统或系统工具的方法。这个问题涉及操作系统部署的现代方式,需要区分清楚"在线安装"的具体含义——用户可能指远程网络安装、云服务部署或系统工具的在线获取。 从引用内容看,用户提供的参考资料主要涉及传统安装方式(如U盘启动盘、虚拟机安装),但用户明确要求"在线"方案。引用[2]提到开源神器可快速安装多系统,引用[4]提到DRBL+Clonezilla的批量网络安装,这些是相关度较高的线索。 用户的核心需求可能是:1)无需物理介质安装操作系统;2)快速获取系统工具。需要重点解释网络启动安装(PXE)和云服务两种主流方案,同时补充系统工具的在线获取途径。 对于PXE安装部分,要强调其企业级特性,需要配套服务器环境。引用[4]的DRBL方案正是基于PXE的,可以结合说明。对于普通用户,云服务部署更实际,引用[2][3]提到的虚拟机方案也属于广义在线部署。 系统工具安装要区分操作系统内置工具(如包管理器)和第三方工具。引用[1]提到Universal Installer这类写盘工具,但用户需要的是在线安装方式,应转向brew/choco等现代包管理工具。 最后生成的问题需覆盖不同场景:企业批量部署(呼应引用[4])、个人电脑维护(引用[3]的虚拟机方案)、移动设备方案(引用[2]的iOS神器),形成完整链条。</think>好的,了解您想了解在线安装操作系统或系统工具的方法。这与传统的使用U盘或DVD物理介质安装不同,主要通过网络进行。以下是几种主要方法: 1. **网络启动安装 (PXE Boot - 常用于局域网批量部署)** * **原理:** 计算机通过网络接口启动,从网络上的服务器(如TFTP服务器)下载引导程序和操作系统安装文件进行安装。 * **关键组件:** * **PXE 服务器:** 提供 DHCP 服务分配 IP 地址,告知客户端 TFTP 服务器位置;提供 TFTP 服务存放引导文件(如 `pxelinux.0`)和内核镜像。 * **安装源服务器:** 存放完整的操作系统安装文件(如 ISO 镜像解压后的文件或网络安装镜像),通常通过 HTTP、FTP 或 NFS 共享。 * **配置工具:** 如 `dnsmasq` (集成 DHCP/TFTP)、专用 PXE 服务器软件、或者更强大的方案如 **DRBL (Diskless Remote Boot in Linux) + Clonezilla (再生龙)** [^4]。 * **优点:** 无需为每台机器准备物理介质;适合机房、企业环境批量自动化安装操作系统;全网络化。 * **缺点:** 需要一定的网络和服务器配置知识;依赖稳定的局域网环境。 * **方法简述:** 1. 搭建 PXE 服务器(配置 DHCP, TFTP)。 2. 准备网络安装镜像或解压完整安装 ISO 到 HTTP/FTP/NFS 共享目录。 3. 配置 PXE 引导菜单(如 `pxelinux.cfg/default`)指向网络安装源和内核。 4. 目标计算机 BIOS/UEFI 设置从网络(PXE)启动。 5. 目标机启动后自动获取 IP,下载引导文件,连接到安装源,开始安装过程。 * **相关引用:** DRBL+Clonezilla 正是利用 PXE 技术实现全自动批量安装操作系统的强大组合[^4]。 2. **云服务部署 (最常见的“在线安装”)** * **原理:** 在云服务平台(如阿里云、腾讯云、AWS、Azure、Google Cloud)上,直接选择操作系统镜像创建虚拟机实例。云平台的后台会自动完成从镜像部署到启动的全过程。 * **方法:** 1. 登录云服务商控制台。 2. 进入创建虚拟机实例(ECS/VM/Compute Engine)的页面。 3. 在“镜像”或“操作系统”选项中,选择所需的系统(如 Ubuntu 20.04, Windows Server 2022, CentOS Stream 等)。这些镜像是云平台预置或用户自己上传的。 4. 配置实例规格(CPU、内存、存储)、网络、安全组等。 5. 启动实例。云平台会自动从后台存储加载所选镜像并启动虚拟机。 * **优点:** 极其简单快捷;无需用户手动处理安装介质或过程;按需使用;全球可用。 * **缺点:** 需要云服务账户并产生费用;安装的是运行在云平台上的虚拟机或容器,而本地物理机。 * **相关引用:** 虽然引用[2][3]主要讲本地虚拟机安装,但提到的虚拟机软件(VMware, VirtualBox)也常用于连接云服务或管理本地私有云环境。引用[2]提到的开源神器在特定场景下(如iOS设备)也可能涉及连接到云服务或远程资源。 3. **操作系统内置的“在线升级/安装”功能 (用于安装工具或特定版本)** * **原理:** 利用操作系统自带的包管理器,通过网络仓库下载和安装软件包或系统组件。 * **方法 (命令行示例):** * **Linux (Debian/Ubuntu 使用 `apt`):** ```bash sudo apt update # 更新软件包列表 sudo apt install <package-name> # 安装特定软件包 sudo apt install --reinstall <package-name> # 重新安装软件包(修复) sudo do-release-upgrade # 升级到新的主要发行版(需要网络源支持) ``` * **Linux (Red Hat/CentOS/Fedora 使用 `dnf`/`yum`):** ```bash sudo dnf check-update # 检查更新(Fedora/CentOS Stream 8+) sudo dnf install <package-name> sudo yum check-update # (CentOS 7 等) sudo yum install <package-name> sudo dnf system-upgrade download --releasever=<version> # Fedora 升级 sudo dnf system-upgrade reboot ``` * **macOS (使用 `brew` - 第三方包管理器):** ```bash brew update # 更新 Homebrew 自身和软件包列表 brew install <formula-name> # 安装软件 ``` * **Windows (使用 `winget` - 微软官方包管理器):** ```cmd winget search <tool-name> # 搜索工具 winget install <package-id> # 安装工具 ``` * **Windows Update / macOS System Preferences > Software Update:** 用于安装系统更新、安全补丁和 *部分* 功能更新/升级(如 Windows 10 到 11, macOS 小版本或大版本升级)。 * **优点:** 方便快捷管理软件和更新;依赖关系自动解决;通常安全可靠。 * **缺点:** 主要用于安装应用软件、工具或系统更新/补丁,**不能用于全新安装整个操作系统到空白硬盘**(除是特定的大版本升级路径,如 Win10->Win11, macOS Monterey -> Sonoma,且当前系统需已安装并运行)。 4. **虚拟机管理程序直接拉取镜像 (简化虚拟机创建)** * **原理:** 现代虚拟机软件(如 VMware Fusion/Workstation Pro, VirtualBox, Parallels Desktop)集成了直接从官方源下载操作系统安装镜像的功能。 * **方法:** 1. 打开虚拟机软件(如 VMware Workstation Pro)。 2. 选择创建新虚拟机。 3. 在安装来源步骤,选择“安装程序光盘映像文件(iso)”,但软件通常会提供一个选项如 **“安装此操作系统更容易…”** 或直接列出可下载的操作系统(如 Ubuntu, Fedora, Debian, CentOS 等)。 4. 选择所需系统版本,软件会自动从官方源下载对应的精简版或标准版镜像。 5. 下载完成后,虚拟机会自动创建并启动安装过程(通常是简化或自动化的安装)。 * **优点:** 省去用户手动下载镜像的步骤;方便快速创建标准虚拟机。 * **缺点:** 下载的镜像版本可能有限;主要用于创建虚拟机,而物理机;安装过程可能简化(缺少自定义选项)。 * **相关引用:** 引用[3]详细介绍了在 VMware 中使用 ISO 安装操作系统的传统步骤,而此方法是在其基础上的简化(自动获取 ISO)。 **总结与选择建议:** * **想在空白物理机上全新安装操作系统?** 对于单台机器,传统 U盘/DVD 或 **PXE 网络启动(需要服务器)**[^4] 是主要方式。云部署是在云平台上创建虚拟机。 * **想快速创建一台虚拟机?** 使用虚拟机软件的**直接下载镜像功能**(如 VMware, VirtualBox)或**云服务部署**是最简单快捷的“在线安装”方式。 * **想安装或更新系统工具/软件/补丁?** 使用操作系统自带的**包管理器**(`apt`, `dnf`, `yum`, `winget`, `brew`)或**系统更新功能**(Windows Update, macOS Software Update)。 * **想批量部署大量物理机?** **PXE + 自动化工具(如 DRBL+Clonezilla)**[^4] 是高效的网络在线安装解决方案。 **
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值