Linux環(huán)境部署DNF倉庫以及配置NFS共享服務(wù)
在現(xiàn)代 Linux 系統(tǒng)管理中,高效地管理和分發(fā)軟件包對于確保系統(tǒng)穩(wěn)定性、安全性和便捷性至關(guān)重要。DNF(Dandified YUM)倉庫作為 Fedora、CentOS 8 及后續(xù)版本中用于軟件包管理的核心組件,為用戶提供了強大而便捷的軟件包安裝、更新和管理功能。與此同時,NFS(Network File System)共享服務(wù)在實現(xiàn)多系統(tǒng)間的文件共享與協(xié)同工作方面發(fā)揮著重要作用。本文將深入探討如何在 Linux 環(huán)境下成功部署 DNF 倉庫以及配置 NFS 共享服務(wù)。
一.DNF倉庫概述與部署準(zhǔn)備
1.DNF倉庫簡介
DNF 倉庫是集中存儲軟件包及其元數(shù)據(jù)的服務(wù)器或本地目錄。當(dāng)用戶在基于 DNF 的系統(tǒng)上執(zhí)行軟件包安裝、更新操作時,DNF 工具會從配置的倉庫中獲取所需的軟件包及其相關(guān)信息。使用倉庫不僅極大地簡化了軟件管理流程,還能確保用戶獲取到經(jīng)過驗證和更新的軟件版本,從而提高系統(tǒng)的可靠性和安全性。
2.部署環(huán)境需求
- 操作系統(tǒng):推薦使用 CentOS 8 或 Fedora 等支持 DNF 的主流 Linux 發(fā)行版。
- 網(wǎng)絡(luò)連接:倉庫服務(wù)器和客戶端需處于同一網(wǎng)絡(luò)環(huán)境中,以確保能夠正常通信和傳輸數(shù)據(jù)。
- 存儲資源:為倉庫服務(wù)器準(zhǔn)備足夠的磁盤空間,用于存儲軟件包文件。根據(jù)實際需求,可考慮使用大容量硬盤或分布式存儲系統(tǒng)。
- 軟件包:確保系統(tǒng)中已安裝 createrepo_c 和 dnf-utils 等必要軟件包,這些軟件包可用于倉庫的創(chuàng)建和管理。
3.倉庫服務(wù)器準(zhǔn)備
首先,需要從官方軟件源下載所需的軟件包。以 CentOS 8 為例,可通過以下命令掛載 CentOS 官方鏡像軟件源(假設(shè)已獲取鏡像文件),并將其配置為系統(tǒng)的軟件源:
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倉庫的創(chuàng)建
1.軟件包目錄結(jié)構(gòu)規(guī)劃
為 DNF 倉庫創(chuàng)建一個專用的目錄,例如 /www。在這個目錄下,應(yīng)按照軟件包的分類(如不同的發(fā)行版本、架構(gòu)等)創(chuàng)建子目錄,以便于管理和查找軟件包
mkdir -p /www/dnf_repo/centos8/x86_64
這種目錄結(jié)構(gòu)有助于提高倉庫的組織性和可維護性。
2.軟件包同步與填充
有多種方法可將所需的軟件包同步到倉庫目錄中。一種常見的方式是通過訂閱官方軟件源并使用 dnf 安裝工具進行下載。例如,要同步 CentOS 8 的基礎(chǔ)軟件包,可執(zhí)行以下命令:
dnf --releaserver=8 --repo=BaseOS install --downloadonly --downloaddir=/www/dnf_repo/centos8/x86_64 軟件包名稱
通過多次執(zhí)行類似命令,可將所需的軟件包逐步添加到倉庫中。另外,也可編寫腳本自動化這個過程,提高效率。
3.創(chuàng)建倉庫元數(shù)據(jù)
在將軟件包放入倉庫目錄后,需要對倉庫進行元數(shù)據(jù)生成操作,以使 DNF 工具能夠正確識別和解析倉庫內(nèi)容。使用 createrepo_c 命令即可完成這一任務(wù):
createrepo_c /www/dnf_repo/centos8/x86_64
此命令會生成包含軟件包信息、依賴關(guān)系等元數(shù)據(jù)的文件,如 repodata 目錄下的各種文件。這些元數(shù)據(jù)文件對于 DNF 工具的軟件包搜索、版本比較和依賴解決至關(guān)重要。
三、配置DNF倉庫
借助于 DNF軟件倉庫,可以完成安裝、卸載、自動升級rpm 軟件包等任務(wù),能夠自動?xùn)苏也⒔鉀Q rpm包之間的依賴關(guān)系,而無須管理員逐個、手工地去安裝每個rpm 包,使管理員在維護大量 Linux 服務(wù)器時更加輕松自如。特別是在擁有大量Linux 主機的本地網(wǎng)絡(luò)中,構(gòu)建一臺“源”服務(wù)器可以大大緩解軟件安裝、升級等對 Internet 的依賴。DNF與YUM完全兼容,提供了 YUM兼容的命令行以及為擴展和插件提供的 API。使用 DNF 需要管理員權(quán)限,本章所有命令需要在管理員權(quán)限下執(zhí)行。
1.DNF配置文件
DNF的主要配置文件是/etc/dnf/dnf.conf,該文件包含倆部分:
- main部分——保存著 DNF 的全局設(shè)置。
- repository部分——保存著軟件源的設(shè)置,可以有零個或多個“repository”。
另外,在/etc/yum.repos.d 目錄中保存著零個或多個repo源相關(guān)文件,它們也可以定義不同的“repository"。所以 openEuler 軟件源的配置一般有兩種方式,一種是直接配置/etc/dnf/dnf.conf 文件中的“repository”部分,另外一種是在/etc/yum.repos.d目錄下增加.repo 文件。
2.配置main部分
/etc/dnf/dnf.conf文件包含的main部分:
常見選項說明:
參數(shù)名稱 | 說明 |
cachedir | 緩存目錄,該目錄用于存儲RPM包和數(shù)據(jù)庫文件。 |
keepcache | 可選值1和0,表示是否要緩存已安裝成功的那些RPM包及頭文件,缺省值為0,即為不緩存 |
debuglevel | 設(shè)置 dnf 生成的 debug 信息。取值范圍:[0-10],數(shù)值越大會輸出越詳細的 debug 信息。缺省值為2,設(shè)置為0表示不輸出 debug 信息。 |
clean_requirements_on_remove | 刪除在 dnf remove 期間不再使用的依賴項,如果軟件包是通過 DNF 安裝的,而不是通過顯式用戶請求安裝的,則只能通過 clen_requirements_on_remove刪除軟件包,即它是作為依賴項引入的。 缺省值為 True。 |
best | 升級包時,總是嘗試安裝其最高版本,如果最高版本無法安裝,則提示無法安裝的原因并停止安裝。缺省值為True。 |
obsoletes | 可選值1和0,設(shè)置是否允許更新陳舊日的 RPM 包。缺省值為 1,表示允許更新。 |
gpgcheck | 可選值1和0,設(shè)置是否進行g(shù)pg 校驗,缺省值為1,表示需要進行校驗。 |
plugins | 可選值1和0,表示啟用或禁用 dnf 插件。缺省值為1. 表示啟用 dnf 插件。 |
installonly_limit | 設(shè)置可以同時安裝“installonlypkgs"指令列出包的數(shù)量缺省值為 3,不建議降低此值。 |
3.配置repository部分
repository 部分允許您定義定制化的 openEuler軟件源倉庫,各個倉庫的名稱不能相同,否則會引起沖突。配置repository 部分有兩種方式,一種是直接配置/etc/dnf/nf.conf 文件中的“repository”部分,另外一種是配置/etc/yum.repos.d目錄下的.repo 文件。直接配置/etc/dnf/dnf.conf 文件中的“repository”部分,下面是[repository]部分的一個最小配置
openEuler 提供在線的鏡像源,地址:https://repo.openeuler.org/。以 openEuler 23.09的 aarch64版本為例,baseurl 可配置為https://repo.openeuler.org/openEuler-23. 09/0S/aarch64/。
選項說明:
參數(shù) | 說明 |
name=repository_name | 軟件倉庫(repository )描述的字符串。 |
baseurl=repository_url | 軟件倉庫(repository)的地址。
|
四、創(chuàng)建本地軟件源倉庫
1.安裝createrope軟件包
dnf install createrepo
2.將需要的軟件包復(fù)制到一個目錄下,如/ww/ww.repo
3.創(chuàng)建軟件源
createrepo /ww/ww.repo
五、添加、啟用和禁用軟件園
1.添加軟件源
要定義一個新的軟件源倉庫,您可以在/etc/dnf/dnf.conf 文件中添加“repository”部分,或者在/ete/yum.repos.d/目錄下添加“.repo”文件進行說明。建議您通過添加“.repo”的方式,每個軟件源都有自己對應(yīng)的“.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
其中g(shù)lob_expression 為對應(yīng)的正則表達式,用于同時匹配多個repo id。
3.禁用軟件源
dnf config-manager --set-disable repository
使用一個全局正則表達式來禁用所有匹配的軟件源。
dnf config-manager --set-disable glob_expression
六、管理軟件包
1.搜索軟件包
可以使用 rpm 包名稱、縮寫或者描述搜索需要的 RPM 包。
dnf search package_name
2.列出軟件包清單
列出系統(tǒng)中所有已安裝的以及可用的RPM 包信息。
dnf list all
3.顯示rpm包信息
顯示一個或者多個 RPM 包信息,多個包之間以空格分隔。
dnf info httpd zip (以httpd,zip 兩個包為例)
4.安裝rpm包
安裝一個軟件包及其所有未安裝的依賴。
dnf install package_name
也可以通過添加軟件包名字同時安裝多個軟件包。配置文件/etc/dnf/dnf.conf 添加參數(shù)strict=False,運行 dnf命令參數(shù)添加--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.刪除軟件包
卸載軟件包以及相關(guān)的依賴軟件包。
dnf remove package_name
七、管理軟件包組
1.列出軟件包清單
使用summary 參數(shù),可以列出系統(tǒng)中所有己安裝軟件包組、可用的組,可用的環(huán)境組的數(shù)量。
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共享存儲服務(wù)
NFS 是一種基于 TCP/IP傳輸?shù)木W(wǎng)絡(luò)文件系統(tǒng)協(xié)議,最初由Sun 公司開發(fā)。通過使用NFS 協(xié)議,客戶機可以像訪問本地目錄一樣訪問遠程服務(wù)器中的共享資源。對于大多數(shù)負載均衡群集來說,使用 NFS 協(xié)議來共享數(shù)據(jù)存儲是比較常見的做法,NFS也是NAS存儲設(shè)備必然支持的一種協(xié)議。
1.使用NFS發(fā)布共享資源
NFS 服務(wù)的實現(xiàn)依賴于RPC(Remote Process Call,遠端過程調(diào)用)機制,以完成遠程到本地的映射過程。在 0penEuler 系統(tǒng)中,需要安裝 nfs-utils、rpcbind 軟件包來提供 NFS共享服務(wù),前者用于 NFS共享發(fā)布和訪問,后者用于RPC支持。
1.安裝nfs-utils、rpcbind軟件包
2.設(shè)置共享目錄
3.啟動NFS服務(wù)程序
4.查看本機發(fā)布的NFS共享目錄
十、客戶端訪問NFS共享資源
1.安裝并啟動rpcbind服務(wù)
2.手動掛載NFS共享目錄
3.fstab自動掛載設(shè)置
修改/etc/fstab 配置文件,加入 NFS 共享目錄的掛載設(shè)置。注意將文件系統(tǒng)類型設(shè)為 nfs,掛載參數(shù)建議添加_netdev(設(shè)備需要網(wǎng)絡(luò));若添加sof、intr 參數(shù)可以實現(xiàn)軟掛載,允許在網(wǎng)絡(luò)中斷時放棄掛載。這樣客戶機就可以在每次開機后自動掛載 NFS 共享資源了。
4.強制卸載NFS
NFS 客戶端與服務(wù)器端的耦合度是非常高的,如果客戶端正在掛載使用,服務(wù)器端NFS服務(wù)突然間停掉了,那么在客戶端就會出現(xiàn)執(zhí)行 df -h 命令卡死的現(xiàn)象。這個時候使用 umount 命令是無法直接卸載的,需要加上 -lf 才能卸載。當(dāng)出現(xiàn)卡死現(xiàn)象時,要重新開一個終端,執(zhí)行cat/etc/rc.local 命令,查看掛載點。然后使用 umount 命令卸載。
到此這篇關(guān)于Linux環(huán)境部署DNF倉庫以及配置NFS共享服務(wù)的文章就介紹到這了,更多相關(guān)Linux部署DNF和配置NFS內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- CentOS8 yum/dnf 配置國內(nèi)源的方法
- 易語言制作DNF解封源碼
- CentOS7使用dnf安裝mysql的方法
- linux NFS安裝配置及常見問題、/etc/exports配置文件、showmount命令
- linux系統(tǒng)之間通過nfs網(wǎng)絡(luò)文件系統(tǒng)掛載設(shè)置方法
- CentOS 7中搭建NFS文件共享存儲服務(wù)的完整步驟
- Linux NFS服務(wù)器的安裝與配置方法(圖文詳解)
- Ubuntu16.04搭建NFS 文件共享服務(wù)器的方法
- linux下NFS配置教程詳解
- Linux服務(wù)器配置—搭建NFS服務(wù)器步驟
相關(guān)文章
CentOS 5.4下的Memcache安裝步驟(Linux+Nginx+PHP+Memcached)
CentOS 5.4下的Memcache安裝步驟分享,想要配置Linux+Nginx+PHP+Memcached運行環(huán)境的朋友可以參考下2012-02-02centos7利用yum安裝lnmp的教程(linux+nginx+php7.1+mysql5.7)
lnmp相信不用多介紹了,大家應(yīng)該都知道,下面這篇文章主要給大家介紹了關(guān)于centos7利用yum安裝lnmp(linux+nginx+php7.1+mysql5.7)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。2018-03-03