博客主頁: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 系最常用的工具(apt
是 apt-get
的簡化版,更友好)。
適用于Debian及其衍生版,如Ubuntu、Linux Mint。apt由幾個操作軟件包的命令行工具組成,包括apt-get、apt-cache和apt-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 update | apt-get update | 同步遠程源的包列表,確保獲取最新版本信息 |
升級已安裝包 | apt upgrade | apt-get upgrade | 升級所有已安裝包(不刪除舊包,不安裝新依賴) |
智能升級 | apt full-upgrade | apt-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 clean | apt-get clean | 刪除所有下載的包緩存(/var/cache/apt/archives/) |
清理無用包 | apt autoremove | apt-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 #初始化