linux常用命令 (3)——系統包管理

博客主頁:christine-rr-CSDN博客
????? ??
hi,大家好,我是christine-rr ! 今天來分享一下linux常用命令——系統包管理

在這里插入圖片描述

目錄

    • linux常用命令---系統包管理
      • (一)Debian 系發行版(Ubuntu、Debian、Linux Mint 等)
        • 1. dkpg (底層包管理工具)
        • 2. apt/apt-get (上層包管理工具)
          • apt
          • apt-get
          • 核心命令對比(apt vs apt-get)
      • (二) Red Hat 系發行版(CentOS、RHEL、Fedora 等)
        • 1. rpm(底層包管理工具)
        • 2. yum(Yellowdog Updater Modified)
        • 3. dnf (Dandified Yum)
      • (三)其他發行版專屬工具
        • 1. zypper (openSUSE / SUSE Linux Enterprise )
        • 2. pacman(Arch Linux / Manjaro 等其他基于 Arch 的發行版)
      • (四) 編程語言專屬包管理工具
        • 1. pip(Python 包管理工具)
        • 2. npm(Node.js 包管理工具)

linux常用命令—系統包管理

包管理工具是 Linux 系統中用于安裝、卸載、更新、查詢軟件包的核心工具。不同 Linux 發行版基于不同的包管理體系(如 Debian 系、Red Hat 系、Arch 系等),對應不同的工具。

(一)Debian 系發行版(Ubuntu、Debian、Linux Mint 等)

基于 .deb 格式的軟件包,核心工具為 dpkg,上層封裝工具為apt/apt-get

1. dkpg (底層包管理工具)

DPKG(Debian Packager)是Debian包管理系統,是Debian Linux家族的基礎包管理工具,用于安裝、刪除deb軟件包以及提供deb軟件包的信息。

dpkg本身是一個底層工具,如同rpm系統,直接操作 .deb 包,不自動解決依賴關系,是 apt 等工具的基礎,其上層工具(如apt)被用于從遠程獲取軟件包以及處理復雜的軟件包關系。

所有源自Debian的Linux發行版都使用dpkg作為包管理系統,例如Knoppix、Debian、Ubuntu、Linux Mint等。

選項說明

  • -i: 安裝本地的 .deb 軟件包
  • -r:刪除軟件包(保留配置文件)
  • -P : 刪除軟件包的同時刪除其配置文件(徹底刪除)
  • -l : 列出系統中已安裝的所有軟件包
  • -L: 查看某個已安裝軟件包的文件安裝路徑
  • -s:查看某個軟件包的詳細信息(版本、狀態等)
  • -S:查找某個文件屬于哪個軟件包
  • -c : 顯示軟件包內文件列表
  • -- unpack : 解開軟件包
  • --configure -- :配置軟件包
dpkg -i package.deb  # 安裝deb軟件包
dpkg -r package  # 刪除軟件包
dpkg -P package  # 刪除軟件包(包括配置文件)
dpkg -l  # 列出已安裝的軟件包
dpkg -l package  # 顯示該軟件包的版本
dpkg --unpack package.deb  # 解開deb軟件包
dpkg -c package.deb  # 列出deb軟件包的內容
dpkg --configure package  # 配置軟件包
2. apt/apt-get (上層包管理工具)

apt(advanced packaging tool)基于 dpkg 開發,自動解決依賴關系,并支持從遠程軟件源獲取包,是 Debian 系最常用的工具(aptapt-get 的簡化版,更友好)。

適用于Debian及其衍生版,如Ubuntu、Linux Mint。apt由幾個操作軟件包的命令行工具組成,包括apt-getapt-cacheapt-cdrom

為了解決命令過于分散的問題,引入了命令apt,它包括了命令apt-get使用最廣泛的功能選項,以及命令apt-cache和apt-config中常用到的功能。在使用apt命令時,用戶不必再由apt-get轉到apt-cache或apt-config,而且apt更加結構化,并為用戶提供了管理軟件包所需的必要選項。簡單來說,apt就是apt-get、apt-cache和apt-config中最常用命令選項的集合。

apt

apt 命令提供了查找、安裝、升級、刪除某一個、一組甚至全部軟件包的命令,而且命令簡潔而又好記。

apt 命令執行需要超級管理員權限(root)

apt [options] [command] [package …]

  • options:可選,選項包括 -h(幫助),-y(當安裝過程提示選擇全部為"yes"),-q(不顯示安裝的過程)等等。
  • command:要進行的操作。
  • package:安裝的包名。
apt install package  # 安裝包
apt remove package  # 刪除包
apt autoremove  # 檢查并清除無用的安裝包
apt update&upgrade package  # 更新所有的安裝包
apt-get
apt-get update  # 更新所有已安裝的軟件包
apt-get dist-upgrade  # 將系統升級到新版本
apt-get install package  # 安裝包
apt-get remove package  # 刪除包(保留配置文件)
apt-get --purge remove package  # 刪除包(同時刪除配置文件)
apt-get autoclean package  # 移除該軟件的舊版本軟件包(為了滿足其他軟件包的依賴而安裝,但現在不再需要的軟件包)
apt-get clean  # 移除下載到本地的已安裝的軟件包
sudo apt list --installed  # 列出已安裝的軟件包
核心命令對比(apt vs apt-get)
功能需求apt 命令apt-get 命令說明
更新軟件源索引apt updateapt-get update同步遠程源的包列表,確保獲取最新版本信息
升級已安裝包apt upgradeapt-get upgrade升級所有已安裝包(不刪除舊包,不安裝新依賴)
智能升級apt full-upgradeapt-get dist-upgrade升級時可刪除舊包、安裝新依賴(適合系統大版本升級)
安裝軟件包apt install <package-name>apt-get install <package-name>安裝指定包及依賴
卸載軟件包apt remove <package-name>apt-get remove <package-name>卸載包(保留配置)
徹底卸載apt purge <package-name>apt-get purge <package-name>卸載包并刪除配置
清理緩存apt cleanapt-get clean刪除所有下載的包緩存(/var/cache/apt/archives/)
清理無用包apt autoremoveapt-get autoremove刪除因安裝其他包而自動安裝的、現已無用的依賴
搜索軟件包apt search <keyword>apt-cache search <keyword>根據關鍵詞搜索遠程源中的包
查看包信息apt show <package-name>apt-cache show <package-name>查看包的詳細信息(版本、描述、依賴等)

(二) Red Hat 系發行版(CentOS、RHEL、Fedora 等)

基于 .rpm 格式的軟件包,早期用 yum,Fedora 22+ 及 CentOS 8+ 推薦用 dnf(yum 的升級版)。

1. rpm(底層包管理工具)

類似 dpkg,直接操作 .rpm 包,不自動解決依賴。

常用命令功能說明
rpm -ivh <package.rpm>安裝 .rpm 包(-i = 安裝,-v = 詳細輸出,-h = 進度條)
rpm -e <package-name>卸載軟件包
rpm -qa列出系統中所有已安裝的 rpm 包
rpm -ql <package-name>查看已安裝包的文件路徑
rpm -qi <package-name>查看已安裝包的詳細信息
rpm -qf <file-path>查找文件所屬的 rpm 包
rpm -Uvh <package.rpm>升級 rpm 包(若未安裝則自動安裝)
rpm -V <package-name>驗證軟件包的文件完整性(是否被篡改)

示例:安裝本地的 nginx.rpm
rpm -ivh nginx-1.24.0-1.el9.x86_64.rpm

2. yum(Yellowdog Updater Modified)

基于 rpm,自動解決依賴,支持遠程源,CentOS 7 及以下的默認工具。

常用命令功能說明
yum update更新軟件源并升級所有已安裝包
yum install <package-name>安裝指定包及依賴
yum remove <package-name>卸載包(保留配置)
yum erase <package-name>徹底卸載包(類似 purge)
yum search <keyword>搜索軟件包
yum info <package-name>查看包的詳細信息
yum list installed列出已安裝的包
yum clean all清理緩存和無用數據
yum groupinstall <group-name>安裝軟件組(如 “Development Tools”)

示例:安裝開發工具組
yum groupinstall "Development Tools"

3. dnf (Dandified Yum)

DNF 是 YUM 的重寫版本,速度更快、依賴解析更高效,主要用于 Fedora 和 CentOS 8 及以上版本。

命令與 yum 基本兼容,用法幾乎一致:

  • 安裝包:dnf install <package-name>
  • 升級:dnf update
  • 卸載:dnf remove <package-name>
  • 搜索:dnf search <keyword>

獨有優勢:支持并行下載、更好的版本控制,推薦優先使用。

(三)其他發行版專屬工具

1. zypper (openSUSE / SUSE Linux Enterprise )

基于 rpm 體系,openSUSE 系列的默認包管理工具,語法簡潔,支持自動解決依賴。

常用命令功能說明
zypper refresh更新軟件源索引
zypper update升級所有已安裝包
zypper install <package-name>安裝包
zypper remove <package-name>卸載包
zypper search <keyword>搜索包
zypper info <package-name>查看包信息
zypper dup系統版本升級(Distribution Upgrade)

示例:更新系統并安裝 Vim
zypper refresh && zypper install vim

2. pacman(Arch Linux / Manjaro 等其他基于 Arch 的發行版)

Arch 系的核心包管理工具,以 簡潔、高效、滾動更新 為特點,直接操作 Arch 官方倉庫的 .pkg.tar.zst 包。

常用命令功能說明
pacman -Syu同步源 + 升級系統(Arch 常用,-S = 安裝,-y = 更新源,-u = 升級)
pacman -S <package-name>安裝指定包
pacman -R <package-name>卸載包(保留依賴)
pacman -Rs <package-name>卸載包并刪除無用依賴
pacman -Rns <package-name>徹底卸載(刪除包、依賴及配置)
pacman -Q列出已安裝的包
pacman -Ql <package-name>查看已安裝包的文件路徑
pacman -Ss <keyword>搜索遠程倉庫中的包
pacman -Scc清理所有緩存

示例:安裝 Firefox 并升級系統
pacman -Syu firefox

(四) 編程語言專屬包管理工具

1. pip(Python 包管理工具)

用于管理 Python 的第三方庫(如 requests、numpy 等),支持從 PyPI(Python Package Index)下載包。

常用命令功能說明
pip install <package-name>安裝指定 Python 包
pip install <package-name>==x.y.z安裝指定版本的包
pip install --upgrade <package-name>升級已安裝的包
pip uninstall <package-name>卸載包
pip list列出當前環境已安裝的包
pip freeze導出已安裝包列表(常用于生成 requirements.txt)
pip install -r requirements.txt批量安裝 requirements.txt 中的包
pip search <keyword>搜索 PyPI 中的包(部分版本已移除,推薦直接訪問 PyPI 官網)

示例:導出依賴并批量安裝

pip freeze > requirements.txt			#導出
pip install -r requirements.txt		#安裝
2. npm(Node.js 包管理工具)

用于管理 Node.js 的第三方模塊(如 express、react 等),默認從 npm 官方倉庫下載。

核心命令

常用命令功能說明
npm install <package-name>本地安裝(當前項目目錄,僅當前項目可用)
npm install -g <package-name>全局安裝(系統級,所有項目可用,需管理員權限)
npm install <package-name>@x.y.z安裝指定版本的包
npm update <package-name>升級本地包
npm uninstall <package-name>卸載本地包
npm uninstall -g <package-name>卸載全局包
npm list查看當前項目已安裝的包(樹形結構)
npm init初始化 Node.js 項目(生成 package.json 文件)
npm run <script-name>運行 package.json 中定義的腳本(如 npm run dev

補充說明

  • package.json:記錄項目依賴、腳本、版本等信息,是 Node.js 項目的核心配置文件。
  • yarn/pnpm:npm 的替代品,速度更快、依賴管理更嚴謹,用法與 npm 類似(如 yarn add <package>)。

示例:全局安裝 Vue 腳手架并初始化項目

npm install -g @vue/cli			#安裝
vue create my-vue-project		#初始化

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/96592.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/96592.shtml
英文地址,請注明出處:http://en.pswp.cn/web/96592.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

YOLOv8 mac-intel芯片 部署指南

&#x1f680; 在 Jupyter Notebook 和 PyCharm 中使用 Conda 虛擬環境&#xff08;YOLOv8 部署指南&#xff0c;Python 3.9&#xff09; YOLOv8 是 Ultralytics 開源的最新目標檢測模型&#xff0c;輕量高效&#xff0c;支持分類、檢測、分割等多種任務。 在 Mac&#xff08;…

【高等數學】第十一章 曲線積分與曲面積分——第六節 高斯公式 通量與散度

上一節&#xff1a;【高等數學】第十一章 曲線積分與曲面積分——第五節 對坐標的曲面積分 總目錄&#xff1a;【高等數學】 目錄 文章目錄1. 高斯公式2. 沿任意閉曲面的曲面積分為零的條件3. 通量與散度1. 高斯公式 設空間區域ΩΩΩ是由分片光滑的閉曲面ΣΣΣ所圍成&#x…

IDEA試用過期,無法登錄,重置方法

IDEA過期&#xff0c;重置方法: IntelliJ IDEA 2024.2.0.2 (親測有效) 最新Idea重置辦法!&#xff1a; 方法一&#xff1a; 1、刪除C:\Users\{用戶名}\AppData\Local\JetBrains\IntelliJIdea2024.2 下所有文件(注意&#xff1a;是子目錄全部刪除) 2、刪除C:\Users\{用戶名}\App…

創建用戶自定義橋接網絡并連接容器

1.創建用戶自定義的 alpine-net 網絡[roothost1 ~]# docker network create --driver bridge alpine-net 9f6d634e6bd7327163a9d83023e435da6d61bc6cf04c9d96001d1b64eefe4a712.列出 Docker 主機上的網絡[roothost1 ~]# docker network ls NETWORK ID NAME DRIVER …

Vue3 + Vite + Element Plus web轉為 Electron 應用,解決無法登錄、隱藏自定義導航欄

如何在vue3 Vite Element Plus搭好的架構下轉為 electron應用呢&#xff1f; https://www.electronjs.org/zh/docs/latest/官方文檔 https://www.electronjs.org/zh/docs/latest/ 第一步&#xff1a;安裝 electron相關依賴 npm install electron electron-builder concurr…

qt QAreaLegendMarker詳解

1. 概述QAreaLegendMarker 是 Qt Charts 模塊中的一部分&#xff0c;用于在圖例&#xff08;Legend&#xff09;中表示 QAreaSeries 的標記。它負責顯示區域圖的圖例項&#xff0c;通常包含區域顏色樣例和對應的描述文字。圖例標記和對應的區域圖關聯&#xff0c;顯示區域的名稱…

linux 函數 kstrtoul

kstrtoul 函數概述 kstrtoul 是 Linux 內核中的一個函數&#xff0c;用于將字符串轉換為無符號長整型&#xff08;unsigned long&#xff09;。該函數定義在 <linux/kernel.h> 頭文件中&#xff0c;常用于內核模塊中解析用戶空間傳遞的字符串參數。 函數原型 int kstrtou…

LLM(三)

一、人類反饋的強化學習&#xff08;RLHF&#xff09;微調的目標是通過指令&#xff0c;包括路徑方法&#xff0c;進一步訓練你的模型&#xff0c;使他們更好地理解人類的提示&#xff0c;并生成更像人類的回應。RLHF&#xff1a;使用人類反饋微調型語言模型&#xff0c;使用強…

DPO vs PPO,偏好優化的兩條技術路徑

1. 背景在大模型對齊&#xff08;alignment&#xff09;里&#xff0c;常見的兩類方法是&#xff1a;PPO&#xff1a;強化學習經典算法&#xff0c;OpenAI 在 RLHF 里用它來“用獎勵模型更新策略”。DPO&#xff1a;2023 年提出的新方法&#xff08;參考論文《Direct Preferenc…

BLE6.0信道探測,如何重構物聯網設備的距離感知邏輯?

在物聯網&#xff08;IoT&#xff09;無線通信技術快速滲透的當下&#xff0c;實現人與物、物與物之間對物理距離的感知響應能力已成為提升設備智能高度與人們交互體驗的關鍵所在。當智能冰箱感知用戶靠近而主動亮屏顯示內部果蔬時、當門禁系統感知到授權人士靠近而主動開門時、…

【計算機 UTF-8 轉換為本地編碼的含義】

UTF-8 轉換為本地編碼的含義 詳細解釋一下"UTF-8轉換為本地編碼"的含義以及為什么在處理中文時這很重要。 基本概念 UTF-8 編碼 國際標準&#xff1a;UTF-8 是一種能夠表示世界上幾乎所有字符的 Unicode 編碼方式跨平臺兼容&#xff1a;無論在哪里&#xff0c;UTF-8 …

4.6 變體

1.變體簡介 2.為什么需要變體 3.變體是如何產生的 4.變體帶來的麻煩 5.multi_compile和shader_feature1.變體簡介 比如我們開了一家餐廳, 你有一本萬能的菜單(Shader源代碼), 上面包含了所有可能的菜式; 但是顧客每次來點餐時, 不可能將整本菜單都做一遍, 他們會根據今天有沒有…

猿輔導Android開發面試題及參考答案(下)

為什么開發中要使用線程池,而不是直接創建線程(如控制線程數量、復用線程、降低開銷)? 開發中優先使用線程池而非直接創建線程,核心原因是線程池能優化線程管理、降低資源消耗、提高系統穩定性,而直接創建線程存在難以解決的缺陷,具體如下: 控制線程數量,避免資源耗盡…

【網絡通信】IP 地址深度解析:從技術原理到企業級應用?

IP 地址深度解析&#xff1a;從技術原理到企業級應用? 文章目錄IP 地址深度解析&#xff1a;從技術原理到企業級應用?前言一、基礎認知&#xff1a;IP 地址的技術定位與核心特性?1.1 定義與網絡層角色1.2 核心屬性與表示法深化二、地址分類&#xff1a;從類別劃分到無類別路…

grafana實踐

一、如何找到grafana的插件目錄 whereis grafana grafana: /etc/grafana /usr/share/grafana插件安裝目錄、默認安裝目錄&#xff1a; 把vertamedia-clickhouse-datasource-3.4.4.zip解壓到下面目錄&#xff0c;然后重啟就可以了 /var/lib/grafana/plugins# 6. 設置權限 sudo …

uniapp 文件查找失敗:main.js

重裝HbuilderX vue.config.js 的 配置 有問題main.js 框架能自動識別 到&#xff0c;不用多余的配置

KEIL燒錄時提示“SWD/JTAG communication failure”的解決方法

最新在使用JTAG仿真器串口下載調試程序時&#xff0c;老是下載不成功&#xff0c;識別不到芯片&#xff0c;我嘗試重啟keil5或者重新插拔仿真器連接線、甚至重啟電腦也都不行&#xff0c;每次下載程序都提示如下信息&#xff1a;在確定硬件連接沒有問題之后&#xff0c;就開始分…

紅日靶場(三)——個人筆記

環境搭建 添加一張網卡&#xff08;僅主機模式&#xff09;&#xff0c;192.168.93.0/24 網段 開啟centos&#xff0c;第一次運行&#xff0c;重啟網絡服務 service network restart192.168.43.57/24&#xff08;外網ip&#xff09; 192.168.93.100/24&#xff08;內網ip&am…

車載網關框架 --- 車內網關IP轉CAN鏈路解析 done

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 做到欲望極簡,了解自己的真實欲望,不受外在潮流的影響,不盲從,不跟風。把自己的精力全部用在自己。一是去掉多余,凡事找規律,基礎是誠信;二是…

lvgl修改輸入設備驅動使其支持鼠標右鍵、雙擊、滑輪...

我在前幾章移植 lvgl 到linux上時講過注冊鼠標驅動部分&#xff0c;那時候使用的時默認提供的驅動&#xff0c;支持的鼠標功能很少&#xff0c;只有左鍵點擊&#xff0c;那時候我提過我們可以修改驅動使其支持&#xff0c;下面是具體的實現。看上面代碼&#xff0c;我們當時是直…