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

Linux 包管理器比較:dnf 和 apt

系統(tǒng) Linux
Linux 開創(chuàng)了一種通過命令行安裝、管理、移除應(yīng)用的包管理器的概念。apt 和 dnf 就是兩種較為常見的包管理器。apt 命令是用來管理 DEB 格式的包,dnf 命令是用來管理 RPM 格式的包。
  • 包管理器提供大致相同的功能:安裝、管理和移除應(yīng)用,但是它們還是有一些不一樣的地方。

在 Linux 系統(tǒng)上獲取一個應(yīng)用 有多種方式。例如,有新的 Flatpak 和容器方式,也有 DEB 和 RPM 這樣一直以來經(jīng)過考驗的方式。

[[413508]]

并沒有一種通用的可以用于所有的操作系統(tǒng)的應(yīng)用安裝程序。如今,因為有無數(shù)的開發(fā)者發(fā)布軟件,這導(dǎo)致了大部分的操作系統(tǒng)使用了應(yīng)用商店(包括第一方和第三方)、拖放式安裝,還有安裝向?qū)?。不同的開發(fā)者對于他們發(fā)布的代碼有不同的需求,這直接導(dǎo)致了他們所選擇的安裝方式的不同。

Linux 開創(chuàng)了一種通過命令行安裝、管理、移除應(yīng)用的包管理器的概念。apt 和 dnf 就是兩種較為常見的包管理器。apt 命令是用來管理 DEB 格式的包,dnf 命令是用來管理 RPM 格式的包。這兩種包管理器在理論上并不是完全互斥的,盡管在實際的實踐中,Linux 發(fā)行版通常只會使用到其中的一種。理論上,這兩種命令可以運行在同一個系統(tǒng)上,但是會造成安裝包的重疊,版本控制也會更加困難,命令也會是冗余的。然而,如果你是在一個混合的 Linux 環(huán)境下工作,比如你的工作站運行的是一個發(fā)行版,同時需要與運行另外一種發(fā)行版的服務(wù)器進(jìn)行交互,那么你最好同時掌握這兩種包管理器。

搜索應(yīng)用

當(dāng)你通過包管理器安裝一個應(yīng)用時,你需要先知道包的名稱。通常,應(yīng)用的名稱和包的名稱是一樣的。dnf 和 apt 驗證要安裝的包名的過程是完全相同的。

  1. $ sudo dnf search zsh 
  2. ====== Name Exactly Matched: zsh ====== 
  3. zsh.x86_64 : Powerful interactive shell 
  4. [...] 

使用 apt:

  1. $ sudo apt search zsh 
  2. Sorting... Done 
  3. Full Text Search... Done 
  4. csh/stable 20110502-4+deb10u1 amd64 
  5.   Shell with C-like syntax 
  6. ddgr/stable 1.6-1 all 
  7.   DuckDuckGo from the terminal 
  8. direnv/stable 2.18.2-2 amd64 
  9.   Utility to set directory specific environment variables 
  10. draai/stable 20180521-1 all 
  11.   Command-line music player for MPD 
  12. [...] 

如果想通過 apt 更快的獲取相關(guān)的搜索結(jié)果,你可以使用 正則表達(dá)式:

  1. apt search ^zsh 
  2. Sorting... Done 
  3. Full Text Search... Done 
  4. zsh/stable 5.7.1-1 amd64 
  5.   shell with lots of features 
  6. [...] 

查找應(yīng)用程序包

有一些命令是與其它命令捆綁在一起的,都在一個包中。在這種情況下,你可以通過包管理器去了解哪個包提供了你需要的命令。dnf 和 apt 命令在如何搜索這類元數(shù)據(jù)上是有區(qū)別的。

使用 dnf:

  1. $ sudo dnf provides pgrep 
  2. procps-ng-3.3.15-6.el8.x86_64 : System and process monitoring utilities 
  3. Repo        : baseos 
  4. Matched from
  5. Filename    : /usr/bin/pgrep 

apt 命令使用子命令 apt-file。要使用 apt-file,你必須先安裝它,然后提示它更新緩存:

  1. $ sudo apt install apt-file 
  2. Reading package lists... Done 
  3. Building dependency tree       
  4. Reading state information... Done 
  5. The following additional packages will be installed: 
  6.   libapt-pkg-perl libexporter-tiny-perl liblist-moreutils-perl libregexp-assemble-perl 
  7. The following NEW packages will be installed: 
  8.   apt-file libapt-pkg-perl libexporter-tiny-perl liblist-moreutils-perl libregexp-assemble-perl 
  9. 0 upgraded, 5 newly installed, 0 to remove and 14 not upgraded. 
  10. Need to get 297 kB of archives. 
  11. After this operation, 825 kB of additional disk space will be used. 
  12. Do you want to continue? [Y/n] y 
  13. $ sudo apt-file update 
  14. [...] 

你可以通過 apt-file 搜索命令。你可以使用此命令進(jìn)行廣泛的全局搜索,但假如你知道命令的執(zhí)行路徑,它會更準(zhǔn)確:

  1. $ sudo apt-file search /usr/bin/pgrep 
  2. pgreplay: /usr/bin/pgreplay               
  3. procps: /usr/bin/pgrep 

安裝應(yīng)用程序

使用apt 和 dnf 安裝應(yīng)用程序基本上是相同的:

  1. $ sudo apt install zsh 

使用 dnf,你可以使用同樣的方式來安裝一個包:

  1. $ sudo dnf install zsh 

許多基于 RPM 的發(fā)行版都具有組包安裝的特性,它會將有時表面相關(guān)的應(yīng)用程序收集到一個易于安裝的目標(biāo)中。例如,F(xiàn)edora 中的 Design Suite 組包就包含流行的創(chuàng)意應(yīng)用程序。那些想要某一個創(chuàng)意應(yīng)用程序的藝術(shù)家可能也想要類似的應(yīng)用程序,選擇安裝一整個組包一個簡單而快速的方法,可以合理地開始建立一個數(shù)字工作室。你可以通過 group list 來查看可用的組包(使用 -v 來查看不帶空格的組名):

  1. $ sudo dnf group list -v 
  2. [...] 
  3. Available Groups: 
  4.    Container Management (container-management) 
  5.    RPM Development Tools (rpm-development-tools) 
  6.    Design Suite (design-suite) 
  7.    Development Tools (development) 
  8. [...] 

使用 group install 子命令安裝 RPM 組包:

  1. $ sudo dnf group install design-suite 

你可以使用 @ 符號來減少輸入:

  1. $ sudo dnf install @design-suite 

更新應(yīng)用程序

使用包管理器的一個優(yōu)點是,它知道所有已經(jīng)安裝的應(yīng)用。這樣你不必去尋找應(yīng)用程序的更新版本。相反,你可以通過包管理器去獲取更新的版本。

dnf 和 apt 使用的子命令略有不同。因為 apt 保存了一個需要定期更新的緩存信息,它使用 upgrade 子命令來更新應(yīng)用程序:

  1. $ sudo apt upgrade 

相比之下,dnf 命令在你每次使用時都會更新元信息,所以 update 和 upgrade 子命令是可以互換的:

  1. $ sudo dnf upgrade 

這等同于:

  1. $ sudo dnf update 

移除應(yīng)用程序

如果你曾經(jīng)嘗試在任何一個平臺上手動刪除一個應(yīng)用程序,你就會知道,應(yīng)用程序刪除后,在硬盤上會殘留各種文件,比如首選項文件、數(shù)據(jù)或圖標(biāo)。所以包管理器的另一個優(yōu)點是,包管理器管理著包中安裝的每一個文件,可以很方便的刪除:

  1. $ sudo dnf remove zsh 

remove 子命令也適用于 apt:

  1. $ sudo apt remove zsh 

使用 apt 命令刪除一個包并不會刪除已修改的用戶配置文件,以防你意外刪除了包。如果你想通過 apt 命令刪除一個應(yīng)用及其配置文件,請在你之前刪除過的應(yīng)用程序上使用 purge 子命令:

  1. $ sudo apt purge zsh 

apt 和 dnf 都不會刪除家目錄中的數(shù)據(jù)和配置文件(即使使用 purge 子命令)。如果想要從家目錄中刪除數(shù)據(jù),你必須手動操作(通常你可以在 ~/.config 和 ~/.local 文件中找到)。

了解包管理

無論你選擇的發(fā)行版支持的是 apt 還是 dnf,這些命令的用途大致相同。它們可以幫助你安裝、更新和移除包。這兩種包管理器是目前最通用的包管理器。它們的語法元素在很大程度上是相同的,所以在兩者之間切換非常容易。

apt 和 dnf 還有一些高級功能,例如倉庫管理,但這些功能并不像你使用 search 和 install 那樣頻繁。

無論你更經(jīng)常使用哪種包管理器,你都可以下載我們的 apt 備忘單 和 dnf 備忘單,以便你在最需要的時候可以查詢使用語法。

責(zé)任編輯:未麗燕 來源: Linux中國
相關(guān)推薦

2022-08-04 14:54:50

APTDNFYUM

2017-08-17 10:47:05

Linux包管理

2022-05-04 11:10:58

Linuxdnf 命令

2022-05-07 11:08:50

Linuxapt 命令

2021-12-09 09:27:22

MacOSHomebrew包管理器

2023-04-17 07:36:28

Arch LinuxGUI

2016-09-12 15:00:46

Linux包管理器新手

2022-03-21 21:28:00

Homebrew包管理器Linux

2013-11-20 15:32:13

紅帽RedHatYUM包

2020-03-09 11:43:35

RustCargo編程語言

2020-12-03 12:06:54

HarmonyOS

2022-02-28 10:22:08

前端管理工具

2020-06-28 13:56:01

UbuntuAptSynaptic

2022-10-11 16:09:27

系統(tǒng)Linux管理器

2022-02-21 09:58:31

包管理器npmyarn

2009-07-07 09:00:39

2021-02-28 13:26:15

Linux軟件包管理器軟件倉庫

2020-11-11 08:00:00

Linux系統(tǒng)修復(fù)

2024-11-12 08:03:27

JavaScript管理器安全

2010-10-08 09:26:17

.NET微軟
點贊
收藏

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