自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用 dnf 進(jìn)行 Linux 包管理

系統(tǒng) Linux
了解如何在 Linux 上使用 dnf 命令安裝軟件包,然后下載我們的速查表,讓正確的命令觸手可及。

在計(jì)算機(jī)系統(tǒng)上安裝應(yīng)用程序非常簡單:就是將檔案(如 ??.zip?? 文件)中的文件復(fù)制到目標(biāo)計(jì)算機(jī)上,放在操作系統(tǒng)預(yù)期放應(yīng)用程序的位置。因?yàn)槲覀冎械脑S多人習(xí)慣于使用花哨的安裝“向?qū)А眮韼椭覀冊谟?jì)算機(jī)上安裝軟件,所以這個(gè)過程似乎在技術(shù)上應(yīng)該比實(shí)際更復(fù)雜。

然而,復(fù)雜的是,是什么構(gòu)成了一個(gè)程序?用戶認(rèn)為的單個(gè)應(yīng)用程序?qū)嶋H上包含了分散在操作系統(tǒng)中的軟件庫的各種依賴代碼(例如:Linux 上的 .so 文件、Windows 上的 .dll 文件和 macOS 上的 .dylib 文件)。

為了讓用戶不必?fù)?dān)心這些程序代碼之間的復(fù)雜的互相依賴關(guān)系, Linux 使用 包管理系統(tǒng)package management system 來跟蹤哪些應(yīng)用程序需要哪些庫,哪些庫或應(yīng)用程序有安全或功能更新,以及每個(gè)軟件會附帶安裝哪些額外的數(shù)據(jù)文件。包管理器本質(zhì)上是一個(gè)安裝向?qū)?。它們易于使用,提供了圖形界面和基于終端的界面,讓你的生活更輕松。你越了解你的發(fā)行版的包管理器,你的生活就會越輕松。

在 Linux 上安裝應(yīng)用程序

如果你在使用 Linux 桌面時(shí),偶爾想要安裝一個(gè)應(yīng)用程序,那么你可能正在尋找 ??GNOME “軟件”??,它是一個(gè)桌面應(yīng)用程序?yàn)g覽器。

GNOME “軟件” 程序

它會按你的預(yù)期工作:點(diǎn)擊它的界面,直到你找到一個(gè)看起來有用的應(yīng)用程序,然后單擊 “安裝” 按鈕。

或者,你可以在 GNOME “軟件” 中打開從網(wǎng)絡(luò)下載的 ??.rpm??? 或 ??.flatpakref?? 軟件包,以便它進(jìn)行安裝。

但如果你更傾向于使用命令行,請繼續(xù)閱讀。

用 dnf 搜索軟件

在安裝應(yīng)用程序之前,你可能需要確認(rèn)它是否存在于你的發(fā)行版的服務(wù)器上。通常,使用 ??dnf??? 搜索應(yīng)用程序的通用名稱就足夠了。例如,假設(shè)你最近閱讀了 ??一篇關(guān)于 Cockpit 的文章???,并決定嘗試一下。你可以搜索 ??cockpit?? 驗(yàn)證該發(fā)行版是否包含它:

$ dnf search cockpit
Last metadata expiration check: 0:01:46 ago on Tue 18 May 2021 19:18:15 NZST.
==== Name Exactly Matched: cockpit ====
cockpit.x86_64 : Web Console for Linux servers

==== Name & Summary Matched: cockpit ==
cockpit-bridge.x86_64 : Cockpit bridge server-side component
cockpit-composer.noarch : Composer GUI for use with Cockpit
[...]


有一個(gè)精確的匹配。上面列出的匹配的軟件包名為 ??cockpit.x86_64???,但名稱中的 ??.x86_64??? 部分僅表示它兼容該 CPU 架構(gòu)。默認(rèn)情況下,你的系統(tǒng)會安裝適配當(dāng)前 CPU 架構(gòu)的軟件包,因此你可以忽略該擴(kuò)展名。所以你確認(rèn)你要查找的軟件包確實(shí)簡稱為 ??cockpit??。

現(xiàn)在你可以放心地使用 ??dnf install?? 安裝它。 此步驟需要管理員權(quán)限:

$ sudo dnf install cockpit

一般來說,這就是典型的 ??dnf?? 工作流:搜索并安裝。

然而,有時(shí) ??dnf search??? 的結(jié)果并不清晰,或者你想要關(guān)于一個(gè)軟件包的更多信息,而不僅僅是它的通用名稱。有一些相關(guān)的 ??dnf?? 子命令,具體取決于你想要的信息。

軟件包的元數(shù)據(jù)

如果你覺得你的搜索已 接近 想要的結(jié)果,但還不確定,查看軟件包的元數(shù)據(jù)通常會有所幫助,例如項(xiàng)目的網(wǎng)址和描述。要獲取此信息,請使用顧名思義的 ??dnf info?? 命令:

$ dnf info terminator
Available Packages
Name : terminator
Version : 1.92
Release : 2.el8
Architecture : noarch
Size : 526 k
Source : terminator-1.92-2.el8.src.rpm
Repository : epel
Summary : Store and run multiple GNOME terminals in one window
URL : https://github.com/gnome-terminator
License : GPLv2
Description : Multiple GNOME terminals in one window. This is a project to produce
: an efficient way of filling a large area of screen space with
: terminals. This is done by splitting the window into a resizeable
: grid of terminals. As such, you can produce a very flexible
: arrangements of terminals for different tasks.


這個(gè)信息告訴你可用軟件包的版本、在你系統(tǒng)中注冊的哪一個(gè)存儲庫提供了它、該項(xiàng)目的網(wǎng)站以及詳細(xì)的功能描述。

哪個(gè)軟件包提供的這個(gè)文件?

軟件包名稱并不總是與你要查找的內(nèi)容相匹配。例如,假設(shè)你正在閱讀的文檔告訴你必須安裝名為 ??qmake-qt5?? 的東西:

$ dnf search qmake-qt5
No matches found.

??dnf??? 數(shù)據(jù)庫非常廣泛,因此你不要局限于搜索完全匹配的內(nèi)容。你可以使用 ??dnf provides?? 命令來了解你正在尋找的東西是否作為某個(gè)更大的軟件包的一部分而提供:

$ dnf provides qmake-qt5
qt5-qtbase-devel-5.12.5-8.el8.i686 : Development files for qt5-qtbase
Repo : appstream
Matched from:
Filename : /usr/bin/qmake-qt5

qt5-qtbase-devel-5.15.2-3.el8.x86_64 : Development files for qt5-qtbase
Repo : appstream
Matched from:
Filename : /usr/bin/qmake-qt5


可以確認(rèn)應(yīng)用程序 ??qmake-qt5??? 是名為 ??qt5-qtbase-devel??? 的軟件包的一部分。它還告訴你,該應(yīng)用程序會安裝到 ??/usr/bin??,因此你知道了安裝后它的確切位置。

軟件包中包含哪些文件?

有時(shí)我發(fā)現(xiàn)自己會從完全不同的角度來對待 ??dnf??。有時(shí),我已經(jīng)確認(rèn)我的系統(tǒng)上安裝了一個(gè)應(yīng)用程序;我只是不知道我是怎么得到它的。還有一些時(shí)候,我知道我安裝了一個(gè)特定的軟件包,但我不清楚這個(gè)軟件包到底在我的系統(tǒng)上安裝了什么。

如果你需要對包的有效負(fù)載payload進(jìn)行 “逆向工程reverse engineer”,可以使用 ??dnf repoquery??? 命令和 ??--list?? 選項(xiàng)。這將查看存儲庫中有關(guān)軟件包的元數(shù)據(jù),并列出該軟件包提供的所有文件:

$ dnf repoquery --list qt5-qtbase-devel
/usr/bin/fixqt4headers.pl
/usr/bin/moc-qt5
/usr/bin/qdbuscpp2xml-qt5
/usr/bin/qdbusxml2cpp-qt5
/usr/bin/qlalr
/usr/bin/qmake-qt5
/usr/bin/qvkgen
/usr/bin/rcc-qt5
[...]

這些列表可能很長,使用 ??less?? 或你喜歡的分頁命令配合管道操作會有所幫助。

移除應(yīng)用程序

如果你決定系統(tǒng)中不再需要某個(gè)應(yīng)用程序,可以使用 ??dnf remove?? 卸載它,該軟件包本身安裝的文件以及不再需要的任何依賴項(xiàng)都會被移除:

$ dnf remove bigapp

有時(shí),你發(fā)現(xiàn)隨著一個(gè)應(yīng)用程序一起安裝的依賴項(xiàng)對后來安裝的其他應(yīng)用程序也有用。如果兩個(gè)包需要相同的依賴項(xiàng),??dnf remove?不會 刪除依賴項(xiàng)。在安裝和卸載大量應(yīng)用程序之后,孤兒軟件包散落各處的現(xiàn)象并不少見。大約每年我都要執(zhí)行一次 ??dnf autoremove?? 來清除所有未使用的軟件包:

$ dnf autoremove

這不是必需的,但這是一個(gè)讓我的電腦感覺更好的大掃除步驟。

了解 dnf

你對包管理器的工作方式了解得越多,在必要時(shí)安裝和查詢應(yīng)用程序就越容易。即便你不是 ??dnf?? 的重度使用者,當(dāng)你發(fā)現(xiàn)自己與基于 RPM 的發(fā)行版交互時(shí),了解它也會很有用。

告別 ??yum??? 后,我最喜歡的包管理器之一是 ??dnf??? 命令。雖然我不喜歡它的所有子命令,但我發(fā)現(xiàn)它是目前最健壯的 包管理系統(tǒng)package management system 之一。 ??下載我們的 dnf 速查表?? 習(xí)慣該命令,不要害怕嘗試一些新技巧。一旦熟悉了它,你可能會發(fā)現(xiàn)很難使用其他任何東西替代它。


??dnf 速查表??


責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2022-05-07 11:08:50

Linuxapt 命令

2017-08-17 10:47:05

Linux包管理

2021-07-27 12:58:46

Linux包管理器安命令

2020-06-15 19:20:00

AppImageLinux軟件包管理

2022-08-04 14:54:50

APTDNFYUM

2015-09-14 16:12:23

命令DNFLinux

2021-02-05 07:48:06

Linux操作系統(tǒng)軟件

2021-02-07 09:03:58

Linux Zypper 管理器

2022-03-21 21:28:00

Homebrew包管理器Linux

2013-11-20 15:32:13

紅帽RedHatYUM包

2021-12-09 09:27:22

MacOSHomebrew包管理器

2021-02-28 13:26:15

Linux軟件包管理器軟件倉庫

2016-01-29 14:32:19

Linux軟件包管理

2016-12-27 10:34:57

Linux命令軟件包管理

2010-06-24 09:45:15

Linux RPMYUM

2023-04-17 07:36:28

Arch LinuxGUI

2021-11-29 14:26:53

FreeDOSLinux

2012-11-29 09:56:37

流量控制器過濾器Linux TC

2015-09-14 15:15:42

包管理RedHatLinux

2016-09-12 15:00:46

Linux包管理器新手
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號