成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux 包管理器比較:dnf 和 apt

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

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

[[413508]]

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

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

搜索應用

當你通過包管理器安裝一個應用時,你需要先知道包的名稱。通常,應用的名稱和包的名稱是一樣的。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 更快的獲取相關的搜索結果,你可以使用 正則表達式:

  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. [...] 

查找應用程序包

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

使用 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 搜索命令。你可以使用此命令進行廣泛的全局搜索,但假如你知道命令的執行路徑,它會更準確:

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

安裝應用程序

使用apt 和 dnf 安裝應用程序基本上是相同的:

  1. $ sudo apt install zsh 

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

  1. $ sudo dnf install zsh 

許多基于 RPM 的發行版都具有組包安裝的特性,它會將有時表面相關的應用程序收集到一個易于安裝的目標中。例如,Fedora 中的 Design Suite 組包就包含流行的創意應用程序。那些想要某一個創意應用程序的藝術家可能也想要類似的應用程序,選擇安裝一整個組包一個簡單而快速的方法,可以合理地開始建立一個數字工作室。你可以通過 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 

更新應用程序

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

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

  1. $ sudo apt upgrade 

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

  1. $ sudo dnf upgrade 

這等同于:

  1. $ sudo dnf update 

移除應用程序

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

  1. $ sudo dnf remove zsh 

remove 子命令也適用于 apt:

  1. $ sudo apt remove zsh 

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

  1. $ sudo apt purge zsh 

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

了解包管理

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

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

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

責任編輯:未麗燕 來源: Linux中國
相關推薦

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

2020-03-09 11:43:35

RustCargo編程語言

2020-12-03 12:06:54

HarmonyOS

2013-11-20 15:32:13

紅帽RedHatYUM包

2022-02-28 10:22:08

前端管理工具

2020-06-28 13:56:01

UbuntuAptSynaptic

2022-10-11 16:09:27

系統Linux管理器

2022-02-21 09:58:31

包管理器npmyarn

2020-11-11 08:00:00

Linux系統修復

2009-07-07 09:00:39

2021-02-28 13:26:15

Linux軟件包管理器軟件倉庫

2024-11-12 08:03:27

JavaScript管理器安全

2010-10-08 09:26:17

.NET微軟
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国产综合久久国产大片 | 黑人精品 | 欧美一区二区三区在线观看 | 精品中文字幕久久 | 欧美一级全黄 | 国产精品久久久久久久7777 | 精品国产一区二区三区成人影院 | 亚洲午夜精品视频 | 欧美日韩专区 | 欧美精品第一区 | 欧美精品一区二区三区视频 | 狠狠躁18三区二区一区 | 欧美特级黄色 | 成人综合久久 | 久久国产精品72免费观看 | 在线观看av免费 | 精品久久久久香蕉网 | 亚洲一区在线日韩在线深爱 | 久久在线看 | 韩国精品在线观看 | 国产一区久久久 | 成人欧美一区二区三区黑人孕妇 | 日韩电影一区二区三区 | 免费在线一区二区三区 | 亚洲第一区久久 | 亚洲美女一区 | 国产精品99久久久久久人 | 亚洲一区二区在线视频 | 国产一区二区在线播放 | 欧美一区二区三区 | zzzwww在线看片免费 | 自拍偷拍3p | 成年免费在线观看 | 久久久久久久国产精品视频 | 一级电影免费看 | 中文字幕av网址 | 欧美国产一区二区三区 | 国产一区二区三区 | 日韩电影免费在线观看中文字幕 | 手机三级电影 | 国产精品毛片一区二区三区 |