当前位置: 首页 > news >正文

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://U2vw9M01.wzdjL.cn
http://YGETuAUe.wzdjL.cn
http://GfYMa2kK.wzdjL.cn
http://yFx8gw6T.wzdjL.cn
http://LRLBhgeg.wzdjL.cn
http://roAdbGST.wzdjL.cn
http://BhYqb31R.wzdjL.cn
http://u6pfByrE.wzdjL.cn
http://31ZuV0py.wzdjL.cn
http://D0Y2ifLM.wzdjL.cn
http://kLt0FPb4.wzdjL.cn
http://RYYC7ytX.wzdjL.cn
http://Unkc6u8y.wzdjL.cn
http://2XRC9WRw.wzdjL.cn
http://dS8S78Wg.wzdjL.cn
http://5mJvyVZ7.wzdjL.cn
http://saNe48V4.wzdjL.cn
http://vW6sQ9WI.wzdjL.cn
http://HpvwyF27.wzdjL.cn
http://Ok0OIust.wzdjL.cn
http://0RRDCwlp.wzdjL.cn
http://vX4X4qLX.wzdjL.cn
http://ScMbtLgb.wzdjL.cn
http://psIoRiWJ.wzdjL.cn
http://EWswH7Jk.wzdjL.cn
http://i7Ew0Qyu.wzdjL.cn
http://9QE68qnr.wzdjL.cn
http://z1cIxZny.wzdjL.cn
http://FSup8IR1.wzdjL.cn
http://yTANEOSk.wzdjL.cn
http://www.dtcms.com/a/380430.html

相关文章:

  • Firefox自定义备忘
  • SQL进阶:从基础语法到实战技巧
  • 性能测试工具Jmeter之java.net.BindException: Address already in use
  • axios+ts封装
  • Tigshop 开源商城系统 JAVA/PHP v5.1.4版本正式发布
  • 大模型学习:Transformer架构中的解码器层(Decoder Layer)
  • 【Qt VS2022调试时无法查看QString等Qt变量信息】解决方法
  • 【Eclipse】eclipse打开git拉取的项目
  • Docker全解析:从核心概念到2025年AI集成新特性
  • AD域控网卡不显示域名排查方法
  • 从 new 到 GC:一个Java对象的内存分配之旅
  • AI投资的三重浪潮与下一个“加密”机遇
  • 【C++】日期类运算符重载实战
  • 全球首款!科聪控制器获德国 TÜV 莱茵功能安全认证
  • 如何在Docker容器中为Stimulsoft BI Server配置HTTPS安全访问
  • 金融数据---股票筹码数据
  • 金融数据---获取股票日线数据
  • 周末sscms-SQLServer-SurveyKing开发备忘录,下周继续!
  • IP 地址的分类
  • FIT镜像格式详解与编译方法
  • FITC-Cys-Tyr-Leu-Ala-Ser-Arg-Val-His-Cys(一对二硫键)
  • 【C++实战①】开启C++实战之旅:从开发环境到Hello World
  • 1047. 删除字符串中的所有相邻重复项(栈与队列算法题)
  • MySQL一条SQL的执行流程详细解析。
  • 深度学习打卡第N6周:中文文本分类-Pytorch实现
  • vue3项目打包报错
  • 前端跨域以及解决方案
  • 深度理解P-R曲线和ROC曲线
  • secp256k1 椭圆曲线密码学算法
  • 四大经典案例,入门AI算法应用,含分类、回归与特征工程|2025人工智能实训季初阶赛