0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在Linux下如何安裝和卸載軟件——dnf工具

阿銘linux ? 來源:阿銘linux ? 作者:阿銘linux ? 2022-11-08 11:26 ? 次閱讀

在正式介紹dnf之前,阿銘先給你看一個東西:

# ls -l /usr/bin/dnf
lrwxrwxrwx 1 root root 5 510 21:28 /usr/bin/dnf -> dnf-3
# ls -l /usr/bin/yum
lrwxrwxrwx1rootroot551021:28/usr/bin/yum->dnf-3

通過以上操作,你會發(fā)現(xiàn)在Rocky8里面,使用yum或者dnf,都是一樣的,本質上都是dnf工具,所以在前面章節(jié)中阿銘使用yum命令就是在使用dnf命令。

10.2 dnf工具

Dnf工具最大的優(yōu)勢在于可以聯(lián)網(wǎng)去下載所需要的RPM包,然后自動安裝。如果要安裝的RPM包有依賴關系,dnf工具會幫我們依次安裝所有相關的RPM包。下面阿銘介紹一下常用的dnf命令。

10.2.1列出所有可用的RPM

使用yum list 命令,可以列出所有的RPM包資源,如下所示:

#dnflist|head-20
上次元數(shù)據(jù)過期檢查:134 前,執(zhí)行于 2022年11月07日 星期一 21時26分29秒。
已安裝的軟件包
NetworkManager.x86_64                                             1:1.32.10-4.el8                                            @anaconda
NetworkManager-config-server.noarch                               1:1.32.10-4.el8                                            @anaconda
NetworkManager-libnm.x86_64                                       1:1.32.10-4.el8                                            @anaconda
NetworkManager-team.x86_64                                        1:1.32.10-4.el8                                            @anaconda
NetworkManager-tui.x86_64                                         1:1.32.10-4.el8                                            @anaconda
OpenIPMI-libs.x86_64                                              2.0.31-3.el8                                               @baseos
acl.x86_64                                                        2.2.53-1.el8.1                                             @anaconda
adcli.x86_64                                                      0.8.2-12.el8                                               @anaconda
alsa-sof-firmware.noarch                                          1.8-1.el8                                                  @anaconda
annobin.x86_64                                                    10.29-3.el8                                                @appstream
apr.x86_64                                                        1.6.3-12.el8                                               @appstream
apr-devel.x86_64                                                  1.6.3-12.el8                                               @appstream
apr-util.x86_64                                                   1.6.1-6.el8.1                                              @appstream
apr-util-bdb.x86_64                                               1.6.1-6.el8.1                                              @appstream
apr-util-devel.x86_64                                             1.6.1-6.el8.1                                              @appstream
apr-util-openssl.x86_64                                           1.6.1-6.el8.1                                              @appstream
at.x86_64                                                         3.1.20-11.el8                                              @anaconda
attr.x86_642.4.48-3.el8@anaconda

限于篇幅,阿銘只列舉了18個RPM包的信息。如上例所示,最左側是RPM包名,中間是版本信息,最右側是安裝信息。如果已安裝,最右側就顯示@appstream或者@ anaconda,它們前面都會有一個@符號,這很好區(qū)分。如果未安裝,則顯示appStream、anaconda。如果你仔細看看,就會發(fā)現(xiàn)dnf list 命令會先列出已安裝的包(installed package),然后再列出可安裝的包(available package)。

10.2.2搜索RPM

搜索RPM包的命令為dnf search [相關關鍵詞],示例命令如下:

# dnf search vim
上次元數(shù)據(jù)過期檢查:106 前,執(zhí)行于 2022年11月07日 星期一 21時26分29秒。
======================================================================================================== 名稱 和 概況 匹配:vim =========================================================================================================
awesome-vim-colorschemes.noarch : Collection of color schemes for Neo/vim, merged for quick use
beakerlib-vim-syntax.noarch : Files for syntax highlighting BeakerLib tests in VIM editor
boxes-vim.noarch : Vim plugin for boxes
fluxbox-vim-syntax.noarch : Fluxbox syntax scripts for vim
geany-plugins-vimode.x86_64 : Vim-mode plugin for Geany
neovim.x86_64 : Vim-fork focused on extensibility and agility
notmuch-vim.x86_64 : A Vim plugin for notmuch
python-neovim-doc.noarch : Documentation for python-neovim
python3-neovim.noarch : Python client to Neovim
vim-X11.x86_64 : The VIM version of the vi editor for the X Window System - GVim
vim-airline.noarch : Lean & mean status/tabline for vim that's light as air
vim-ansible.noarch : Vim plugin for syntax highlighting ansible's common filetypes
vim-common.x86_64 : The common files needed by any version of the VIM editor
vim-devicons.noarch : Adds file type icons to Vim plugins
vim-editorconfig.noarch : EditorConfig Vim Plugin
vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements
vim-filesystem.noarch : VIM filesystem layout
vim-fugitive-gitlab.noarch : GitLab support for vim-fugitive plugin
vim-go.x86_64 : Go development plugin for Vim
vim-gv.noarch : Git commit browser in Vim
vim-jellybeans.noarch : A colorful, dark color scheme for Vim
vim-minimal.x86_64 : A minimal version of the VIM editor
vim-powerline.noarch : Powerline VIM plugin
============================================================================================================ 名稱 匹配:vim =============================================================================================================
vim-fugitive.noarch : A Git wrapper so awesome, it should be illegal
vim-gitgutter.noarch : Shows a git diff in the gutter and stages/undoes hunks and partial hunks
vim-halibut.noarch : Syntax file for the halibut manual tool
vim-nerdtree-git-plugin.noarch : Plugin of NERDTree showing git status
vim-pathogen.noarch : Manage your runtimepath
============================================================================================================ 概況 匹配:vim =============================================================================================================
kakoune.x86_64 : Code editor heavily inspired by Vim
ranger.noarch:Avim-likefilemanager

除了這樣搜索方法外,阿銘還常用grep來過濾,從而找到相應的RPM包,如下所示:

# dnf list|grep vim
vim-common.x86_64                                      2:8.0.1763-16.el8_5.13                                     @appstream
vim-enhanced.x86_64                                    2:8.0.1763-16.el8_5.13                                     @appstream
vim-filesystem.noarch                                  2:8.0.1763-16.el8_5.13                                     @appstream
vim-minimal.x86_64                                     2:8.0.1763-16.el8                                          @anaconda
vim-X11.x86_64                                         2:8.0.1763-19.el8_6.4                                      appstream
vim-common.x86_64                                      2:8.0.1763-19.el8_6.4                                      appstream
vim-enhanced.x86_64                                    2:8.0.1763-19.el8_6.4                                      appstream
vim-filesystem.noarch                                  2:8.0.1763-19.el8_6.4                                      appstream
vim-minimal.x86_64                                     2:8.0.1763-19.el8_6.4                                      baseos

10.2.3安裝RPM

安裝RPM包的命令為dnfinstall [-y] [RPM包名],如果不加-y選項,則會以與用戶交互的方式安裝。示例命令如下:

上次元數(shù)據(jù)過期檢查:122 前,執(zhí)行于 2022年11月07日 星期一 21時26分29秒。
依賴關系解決。
=========================================================================================================================================================================================================================================
 軟件包                                                 架構                                                   版本                                                         倉庫                                                    大小
=========================================================================================================================================================================================================================================
安裝:
 psmisc                                                 x86_64                                                 23.1-5.el8                                                   baseos                                                 150 k


事務概要
=========================================================================================================================================================================================================================================
安裝  1 軟件包


總下載:150 k
安裝大?。?83 k
確定嗎?[y/N]:y
下載軟件包:
psmisc-23.1-5.el8.x86_64.rpm                                                                                                                                                                             196 kB/s | 150 kB     00:00
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
總計                                                                                                                                                                                                     195 kB/s | 150 kB     00:00
運行事務檢查
事務檢查成功。
運行事務測試
事務測試成功。
運行事務
  準備中  :                                                                                                                                                                                                                          1/1
  安裝    : psmisc-23.1-5.el8.x86_64                                                                                                                                                                                                 1/1
  運行腳本: psmisc-23.1-5.el8.x86_64                                                                                                                                                                                                 1/1
  驗證    : psmisc-23.1-5.el8.x86_64                                                                                                                                                                                                 1/1


已安裝:
  psmisc-23.1-5.el8.x86_64


完畢!

在這個過程中,它首先會把需要安裝的RPM包列出來,如果有依賴關系,也會把所有依賴的包列出來。然后詢問用戶是否需要安裝,輸入y則安裝,輸入n則不安裝。但阿銘覺得這樣太麻煩,所以會直接加上-y選項,這樣就省略了詢問用戶是否安裝的那一步。

10.2.4卸載RPM

卸載RPM包的命令為dnf remove [-y] [RPM包名],示例命令如下:

# dnf remove  psmisc
依賴關系解決。
==========================================================================================================================================================
 軟件包                             架構                               版本                                     倉庫                                 大小
==========================================================================================================================================================
移除:
 psmisc                             x86_64                             23.1-5.el8                               @baseos                             483 k


事務概要
==========================================================================================================================================================
移除  1 軟件包


將會釋放空間:483 k
確定嗎?[y/N]:y
運行事務檢查
事務檢查成功。
運行事務測試
事務測試成功。
運行事務
  準備中  :                                                                                                                                           1/1
  刪除    : psmisc-23.1-5.el8.x86_64                                                                                                                  1/1
  運行腳本: psmisc-23.1-5.el8.x86_64                                                                                                                  1/1
  驗證    : psmisc-23.1-5.el8.x86_64                                                                                                                  1/1


已移除:
  psmisc-23.1-5.el8.x86_64


完畢!

卸載和安裝一樣,也可以直接加上-y選項,從而省略與用戶交互的那一步。這里阿銘需要提醒一下,卸載某個RPM包時它會連帶依賴的包一起卸載,所以一定要看清楚,不要連其他重要的RPM包也一起卸載了,以免影響正常的業(yè)務。建議使用dnf remove命令卸載包時,還是不要加-y選項了。

10.2.5升級RPM

升級RPM包的命令為dnfupdate [-y] [RPM包],示例命令如下:

# dnf update bash
上次元數(shù)據(jù)過期檢查:152 前,執(zhí)行于 2022年11月07日 星期一 21時26分29秒。
依賴關系解決。
==========================================================================================================================================================
 軟件包                           架構                               版本                                        倉庫                                大小
==========================================================================================================================================================
升級:
 bash                             x86_64                             4.4.20-4.el8_6                              baseos                             1.5 M


事務概要
==========================================================================================================================================================
升級  1 軟件包


總下載:1.5 M
確定嗎?[y/N]:y
下載軟件包:
bash-4.4.20-4.el8_6.x86_64.rpm                                                                                            3.2 MB/s | 1.5 MB     00:00
----------------------------------------------------------------------------------------------------------------------------------------------------------
總計                                                                                                                      3.1 MB/s | 1.5 MB     00:00
運行事務檢查
事務檢查成功。
運行事務測試
事務測試成功。
運行事務
  準備中  :                                                                                                                                           1/1
  升級    : bash-4.4.20-4.el8_6.x86_64                                                                                                                1/2
  運行腳本: bash-4.4.20-4.el8_6.x86_64                                                                                                                1/2
  清理    : bash-4.4.20-2.el8.x86_64                                                                                                                  2/2
  運行腳本: bash-4.4.20-2.el8.x86_64                                                                                                                  2/2
  驗證    : bash-4.4.20-4.el8_6.x86_64                                                                                                                1/2
  驗證    : bash-4.4.20-2.el8.x86_64                                                                                                                  2/2


已升級:
  bash-4.4.20-4.el8_6.x86_64


完畢!

前面介紹了如何使用dnf工具搜索、安裝、卸載以及升級RPM包,如果你掌握了這些技能,基本上就可以解決日常工作中遇到的與RPM包相關的問題了。當然,dnf工具還有好多其他好用的命令,阿銘不再一一舉出,如果你感興趣,可以使用man命令查閱幫助信息。除此之外,阿銘還會教你一些關于dnf工具的小應用。

10.2.6搜索某個命令是由哪個RPM包安裝的

阿銘經(jīng)常遇到在系統(tǒng)里想要執(zhí)行某個命令時發(fā)現(xiàn)命令不存在,這是因為系統(tǒng)里還沒有安裝過對應的包。此時就可以使用如下命令來搜一下:

# dnf provides vmstat
上次元數(shù)據(jù)過期檢查:144 前,執(zhí)行于 2022年11月07日 星期一 21時26分29秒。
procps-ng-3.3.15-6.el8.i686 : System and process monitoring utilities
倉庫        :baseos
匹配來源:
文件名    :/usr/bin/vmstat


procps-ng-3.3.15-6.el8.x86_64 : System and process monitoring utilities
倉庫        :@System
匹配來源:
文件名    :/usr/bin/vmstat


procps-ng-3.3.15-6.el8.x86_64 : System and process monitoring utilities
倉庫        :baseos
匹配來源:
文件名    :/usr/bin/vmstat

上例中,阿銘想搜一下vmstat這個命令是由哪個RPM包來安裝的,使用了dnf provides就可以查看到vmstat命令是由procps-ng這個包安裝來的。

10.2.7更改dnf倉庫為國內鏡像站

上面章節(jié)里提到,dnf是通過從網(wǎng)絡獲取rpm包的,那么它是去哪里下載的RPM包呢?大家可以通過查看配置文件/etc/yum.repos.d/Rocky-BaseOS.repo獲得地址:

#cat /etc/yum.repos.d/Rocky-BaseOS.repo
# Rocky-BaseOS.repo
#
# The mirrorlist system uses the connecting IP address of the client and the
# update status of each mirror to pick current mirrors that are geographically
# close to the client.  You should use this for Rocky updates unless you are
# manually picking other mirrors.
#
# If the mirrorlist does not work for you, you can try the commented out
# baseurl line instead.


[baseos]
name=Rocky Linux $releasever - BaseOS
mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever
#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial

這里的mirrors.rockylinux.org為下載rpm的地址,該站點在國外,相對來說訪問比較慢,我們可以將其更改為國內的鏡像站點,比如阿里云的,具體方法如下。

(1) 將下載地址改為上海交大的鏡像地址

sed-e's|^mirrorlist=|#mirrorlist=|g'
-e's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.sjtug.sjtu.edu.cn/rocky|g'
-i.bak/etc/yum.repos.d/Rocky-*.repo

(2) 刷新repos生成緩存,如下所示:

# dnf clean all
# dnf makecache

然后就可以使用dnf命令安裝你所需要的軟件包了,比如我們可以安裝一個tftpRPM包,如下所示:

# dnf install –y tftp

10.2.8下載RPM

有時我們需要下載RPM包但不安裝,而僅僅是復制給其他機器使用。其實,通過dnf安裝rpm包時,它需要先下載這個RPM包,然后再去安裝,所以使用yum工具完全可以做到只下載而不安裝。

使用dnf download命令就可以直接下載rpm包了,它會將rpm包下載到當前目錄下,當然如果不指定任何選項,它只下載指定的rpm包,并不會下載依賴的包,要想連同依賴的包一起下載,還需要指定--resolve選項,命令如下:

# mkdir /tmp/rmps
#cd/tmp/rmps
# dnf download --resolve  vim-enhanced
上次元數(shù)據(jù)過期檢查:228 前,執(zhí)行于 2022年11月07日 星期一 21時26分29秒。
[SKIPPED] vim-enhanced-8.0.1763-19.el8_6.4.x86_64.rpm: Already downloaded
(2/4): vim-filesystem-8.0.1763-19.el8_6.4.noarch.rpm                                                                      186 kB/s |  49 kB     00:00
(3/4): gpm-libs-1.20.7-17.el8.x86_64.rpm                                                                                   91 kB/s |  38 kB     00:00
(4/4): vim-common-8.0.1763-19.el8_6.4.x86_64.rpm                                                                          4.1 MB/s | 6.3 MB     00:01

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11207

    瀏覽量

    208717
  • RPM
    RPM
    +關注

    關注

    0

    文章

    44

    瀏覽量

    17688
  • dnf
    dnf
    +關注

    關注

    0

    文章

    4

    瀏覽量

    2622
收藏 人收藏

    評論

    相關推薦

    【藍橋杯單片機】第二章 開發(fā)環(huán)境與工具安裝

    本章介紹單片機設計與開發(fā)項目的開發(fā)環(huán)境與工具。以下是所需要安裝軟件以及附加的強力卸載軟件:下面跟著教程來進行開發(fā)環(huán)境的配置與
    的頭像 發(fā)表于 10-30 08:00 ?207次閱讀
    【藍橋杯單片機】第二章 開發(fā)環(huán)境與<b class='flag-5'>工具</b>的<b class='flag-5'>安裝</b>

    手機頻繁卸載安裝軟件到底會不會影響手機性能

    我們想要知道頻繁的安裝APP會不會對手機造成傷害,就首先需要了解,頻繁的安裝卸載主要是對那個硬件進行操作。
    的頭像 發(fā)表于 10-24 17:22 ?2.2w次閱讀

    linux驅動程序如何加載進內核

    ,需要了解Linux內核的基本概念和API。以下是一些關鍵概念: 1.1 內核模塊:Linux內核模塊是一種動態(tài)加載和卸載的代碼,可以不重新啟動系統(tǒng)的情況
    的頭像 發(fā)表于 08-30 15:02 ?347次閱讀

    ubuntu 24.04嘗試使用riscv64-linux-musleabi_for_x86_64-pc-linux-gnu工具鏈編譯cv1800大核出現(xiàn)報錯的原因?

    ubuntu 24.04嘗試使用riscv64-linux-musleabi_for_x86_64-pc-linux-gnu工具鏈編譯cv1800大核,結果出現(xiàn)如下報錯: /ho
    發(fā)表于 07-16 08:20

    如何使用linuxgdb來調試python程序

    如何使用linuxgdb來調試python程序? Linux,可以使用GDB(GNU調試器)來調試Python程序。GDB是一個強大的
    的頭像 發(fā)表于 01-31 10:41 ?2371次閱讀

    PSoC5.4卸載程序所在cypress文件后,重新安裝時會跳轉到卸載界面,最后安裝失敗的原因?

    卸載程序所在cypress文件后,重新安裝時會跳轉到卸載界面,最后安裝失敗。請問是什么原因?需要怎么解決嗎?
    發(fā)表于 01-26 07:16

    arm開發(fā)板如何安裝linux系統(tǒng)

    安裝Linux系統(tǒng)到ARM開發(fā)板是一個復雜的過程,涉及到多個步驟和不同的工具。下面是一個詳實且細致的教程,包含了從準備工作到最終啟動Linux系統(tǒng)的所有步驟。 準備工作
    的頭像 發(fā)表于 01-24 14:19 ?2738次閱讀

    Linux常見的十幾款CPU監(jiān)控工具

    今天浩道跟大家分享運維工作中,Linux常見的十幾款CPU監(jiān)控工具,你可能只會用到其中某些,但是個人覺得作為一個資深運維,你要知道有這些工具可以監(jiān)控CPU。
    的頭像 發(fā)表于 01-22 09:19 ?2399次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>下</b>常見的十幾款CPU監(jiān)控<b class='flag-5'>工具</b>

    全志V853 NPU開發(fā)之工具安裝

    V853支持最高1T NPU算力,進行NPU相關開發(fā)前,需要先配置NPU開發(fā)環(huán)境。 Linux系統(tǒng)準備NPU開發(fā)環(huán)境依賴于Linux系統(tǒng),需要先準備 Linux 開發(fā)環(huán)境。 經(jīng)測試N
    發(fā)表于 01-08 09:50

    如何利用Linux工具來自動生成實用的狀態(tài)機框架?

    (Finite State Machine),是一種應用非常廣泛的軟件設計模式(Design Pattern)。本文介紹如何構建基于狀態(tài)機的軟件系統(tǒng),以及如何利用Linux
    的頭像 發(fā)表于 11-25 14:15 ?1271次閱讀
    如何利用<b class='flag-5'>Linux</b><b class='flag-5'>下</b>的<b class='flag-5'>工具</b>來自動生成實用的狀態(tài)機框架?

    怎么安裝linux虛擬機

    計算機領域,虛擬機是一種軟件程序,它允許主操作系統(tǒng)上運行多個虛擬操作系統(tǒng)。Linux虛擬機開發(fā)、測試和學習等環(huán)境中得到廣泛應用。本文將
    的頭像 發(fā)表于 11-23 10:50 ?1028次閱讀

    linux備份還原工具有哪些?

    Linux備份還原工具是用于Linux系統(tǒng)上進行數(shù)據(jù)備份和還原操作的軟件工具。它們提供了一種
    的頭像 發(fā)表于 11-23 10:06 ?1415次閱讀

    linux docker安裝部署

    了解如何在Linux安裝和部署Docker。 一、安裝Docker 開始之前,請確保您的Linux系統(tǒng)滿足以下要求: 64位版本的
    的頭像 發(fā)表于 11-23 09:27 ?1022次閱讀

    linux安裝網(wǎng)卡驅動教程

    Linux系統(tǒng)中安裝網(wǎng)卡驅動是一個比較基礎的操作,下面我將為你詳細講解如何安裝網(wǎng)卡驅動。 第一步,檢查網(wǎng)卡型號和驅動支持情況:首先,你需要確定你的網(wǎng)卡型號,并查看該網(wǎng)卡型號
    的頭像 發(fā)表于 11-17 11:11 ?3823次閱讀

    Windows編譯工具CMake的安裝和最簡使用

    (Autosar工程已經(jīng)很復雜,一般使用CMake來構建工程)。本文將介紹Windows編譯工具CMake的安裝和最簡使用。
    的頭像 發(fā)表于 11-14 10:18 ?7223次閱讀
    Windows<b class='flag-5'>下</b>編譯<b class='flag-5'>工具</b>CMake的<b class='flag-5'>安裝</b>和最簡使用