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

《Linux基础知识-3》

Linux基础知识-3

7. Linux 包管理

包管理是 Linux 系统管理中的关键组成部分,涉及软件包的安装、更新、卸载以及软件源的配置与管理。通过有效的包管理,系统管理员可以确保系统软件的最新、安全和高效运行。以下将详细介绍 Linux 中常见的包管理工具及其使用方法,包括 Debian/Ubuntu 系列的 apt,CentOS/RHEL 系列的 yumdnf,Arch Linux 的 pacman,以及 RPM 和 DEB 包的基础管理。此外,还将探讨软件包的安装、更新与卸载,以及包管理配置与镜像源的设置。

7.1 包管理工具概述

Linux 发行版通常配备特定的包管理工具,用于管理软件包的安装、更新和卸载。不同的发行版可能使用不同的包管理系统,以下将介绍几种主要的包管理工具。

7.1.1 apt - Debian/Ubuntu 系列

apt(Advanced Package Tool)是 Debian 及其衍生发行版(如 Ubuntu)使用的包管理工具。它简化了软件包的安装、更新和管理过程,支持从远程仓库自动下载和解决依赖关系。

基本概念与功能
  • 软件包:预编译的二进制文件,包含特定应用程序及其依赖。
  • 仓库:集中存储软件包的服务器,apt 从中获取软件包信息和文件。
  • 依赖关系:软件包之间的相互依赖,apt 自动处理依赖关系,确保软件正常运行。
常用命令与操作
  • 更新软件包列表

    sudo apt update
    

    说明:从配置的仓库中获取最新的软件包信息。

  • 升级已安装的软件包

    sudo apt upgrade
    

    说明:升级所有已安装的软件包到最新版本。

  • 安装软件包

    sudo apt install 软件包名称
    

    示例:安装 vim 编辑器

    sudo apt install vim
    
  • 卸载软件包

    sudo apt remove 软件包名称
    

    示例:卸载 vim 编辑器

    sudo apt remove vim
    

    移除软件包及其配置文件

    sudo apt purge 软件包名称
    
  • 搜索软件包

    apt search 关键词
    

    示例:搜索包含 python 的软件包

    apt search python
    
  • 查看软件包详情

    apt show 软件包名称
    

    示例:查看 vim 软件包详情

    apt show vim
    
7.1.2 yum - CentOS/RHEL 系列

yum(Yellowdog Updater, Modified)是 CentOS 和 RHEL(Red Hat Enterprise Linux)使用的包管理工具,基于 RPM(Red Hat Package Manager)系统。yum 简化了软件包的安装、更新和管理,并自动解决依赖关系。

基本概念与功能
  • RPM 包:预编译的二进制文件,包含特定应用程序及其依赖。
  • 仓库:集中存储 RPM 包的服务器,yum 从中获取软件包信息和文件。
  • 插件:扩展 yum 功能的模块,如 yum-plugin-fastestmirror 用于选择最快的镜像源。
常用命令与操作
  • 更新软件包列表和升级系统

    sudo yum update
    

    说明:更新所有已安装的软件包到最新版本。

  • 安装软件包

    sudo yum install 软件包名称
    

    示例:安装 wget 工具

    sudo yum install wget
    
  • 卸载软件包

    sudo yum remove 软件包名称
    

    示例:卸载 wget 工具

    sudo yum remove wget
    
  • 搜索软件包

    yum search 关键词
    

    示例:搜索包含 docker 的软件包

    yum search docker
    
  • 查看软件包详情

    yum info 软件包名称
    

    示例:查看 wget 软件包详情

    yum info wget
    
7.1.3 dnf - CentOS 8+ 系列

dnf(Dandified YUM)是 CentOS 8 及以上版本和 Fedora 使用的下一代包管理工具,旨在替代 yumdnf 提供了更好的性能、依赖管理和可扩展性。

基本概念与功能
  • RPM 包:与 yum 相同,dnf 也是基于 RPM 系统。
  • 插件支持dnf 支持更强大的插件机制,扩展其功能。
  • 性能优化:改进了元数据处理和依赖解决算法,提高了速度和效率。
常用命令与操作
  • 更新软件包列表和升级系统

    sudo dnf upgrade
    

    说明:升级所有已安装的软件包到最新版本。

  • 安装软件包

    sudo dnf install 软件包名称
    

    示例:安装 htop 工具

    sudo dnf install htop
    
  • 卸载软件包

    sudo dnf remove 软件包名称
    

    示例:卸载 htop 工具

    sudo dnf remove htop
    
  • 搜索软件包

    dnf search 关键词
    

    示例:搜索包含 nodejs 的软件包

    dnf search nodejs
    
  • 查看软件包详情

    dnf info 软件包名称
    

    示例:查看 htop 软件包详情

    dnf info htop
    
  • 清理缓存

    sudo dnf clean all
    
7.1.4 pacman - Arch Linux

pacman(package manager)是 Arch Linux 使用的包管理工具,设计简洁高效,支持二进制包的快速安装、更新和管理。pacman 以简单的命令行接口和高度自动化的依赖管理而著称。

基本概念与功能
  • 软件包:包含二进制文件、配置文件及安装脚本,格式为 .pkg.tar.zst
  • 仓库:集中存储软件包的服务器,pacman 从中获取软件包信息和文件。
  • AUR(Arch User Repository):社区维护的软件包仓库,用户可以通过辅助工具(如 yay)从 AUR 安装软件。
常用命令与操作
  • 更新软件包数据库和系统

    sudo pacman -Syu
    

    说明:同步软件包数据库并升级所有已安装的软件包。

  • 安装软件包

    sudo pacman -S 软件包名称
    

    示例:安装 vim 编辑器

    sudo pacman -S vim
    
  • 卸载软件包

    sudo pacman -R 软件包名称
    

    示例:卸载 vim 编辑器

    sudo pacman -R vim
    

    移除软件包及其未被其他包依赖的依赖

    sudo pacman -Rs 软件包名称
    
  • 搜索软件包

    pacman -Ss 关键词
    

    示例:搜索包含 python 的软件包

    pacman -Ss python
    
  • 查看软件包详情

    pacman -Qi 软件包名称
    

    示例:查看 vim 软件包详情

    pacman -Qi vim
    
  • 清理缓存

    sudo pacman -Sc
    
7.1.5 rpm.deb 包管理

除了使用高级包管理工具,Linux 还支持直接使用包管理器来处理 RPM 和 DEB 格式的软件包。这些工具提供了更底层的包管理功能,适用于高级用户和特定场景。

7.1.5.1 RPM 包管理基础

RPM(Red Hat Package Manager)是一个广泛使用的包管理系统,主要用于 Red Hat 系列的发行版(如 CentOS、RHEL、Fedora)。

安装 RPM 包(rpm -ivh
  • 命令语法

    sudo rpm -ivh 软件包名称.rpm
    
  • 示例:安装 nginx RPM 包

    sudo rpm -ivh nginx-1.18.0-1.el8.x86_64.rpm
    
卸载 RPM 包(rpm -e
  • 命令语法

    sudo rpm -e 软件包名称
    
  • 示例:卸载 nginx

    sudo rpm -e nginx
    
查询 RPM 包信息(rpm -qi
  • 命令语法

    rpm -qi 软件包名称
    
  • 示例:查看 nginx 包信息

    rpm -qi nginx
    
7.1.5.2 DEB 包管理基础

DEB(Debian Package)是 Debian 及其衍生发行版(如 Ubuntu)使用的包管理格式,主要通过 dpkg 工具进行管理。

安装 DEB 包(dpkg -i
  • 命令语法

    sudo dpkg -i 软件包名称.deb
    
  • 示例:安装 google-chrome DEB 包

    sudo dpkg -i google-chrome-stable_current_amd64.deb
    
  • 解决依赖问题

    安装过程中如果遇到依赖问题,可以使用以下命令修复:

    sudo apt-get install -f
    
卸载 DEB 包(dpkg -r
  • 命令语法

    sudo dpkg -r 软件包名称
    
  • 示例:卸载 google-chrome

    sudo dpkg -r google-chrome-stable
    
查询 DEB 包信息(dpkg -l
  • 命令语法

    dpkg -l | grep 软件包名称
    
  • 示例:查看 google-chrome 包信息

    dpkg -l | grep google-chrome
    

7.2 安装、更新与卸载软件包

包管理工具不仅用于安装和卸载软件包,还负责系统的整体更新和维护。以下将介绍如何使用不同的包管理工具执行这些操作。

7.2.1 使用 apt-get, yum, dnf, pacman 等工具

不同的 Linux 发行版使用不同的包管理工具,以下以 aptyumdnfpacman 为例,介绍安装、更新与卸载软件包的方法。

安装软件包
  • Debian/Ubuntu (apt)

    sudo apt install 软件包名称
    

    示例:安装 curl

    sudo apt install curl
    
  • CentOS/RHEL (yum)

    sudo yum install 软件包名称
    

    示例:安装 curl

    sudo yum install curl
    
  • CentOS 8+ 系列 (dnf)

    sudo dnf install 软件包名称
    

    示例:安装 curl

    sudo dnf install curl
    
  • Arch Linux (pacman)

    sudo pacman -S 软件包名称
    

    示例:安装 curl

    sudo pacman -S curl
    
更新软件包
  • Debian/Ubuntu (apt)

    sudo apt update && sudo apt upgrade
    

    说明apt update 更新软件包列表,apt upgrade 升级已安装的软件包。

  • CentOS/RHEL (yum)

    sudo yum update
    
  • CentOS 8+ 系列 (dnf)

    sudo dnf upgrade
    
  • Arch Linux (pacman)

    sudo pacman -Syu
    

    说明-Syu 同步软件包数据库并升级所有已安装的软件包。

卸载软件包
  • Debian/Ubuntu (apt)

    sudo apt remove 软件包名称
    

    示例:卸载 curl

    sudo apt remove curl
    

    移除软件包及其配置文件

    sudo apt purge 软件包名称
    
  • CentOS/RHEL (yum)

    sudo yum remove 软件包名称
    

    示例:卸载 curl

    sudo yum remove curl
    
  • CentOS 8+ 系列 (dnf)

    sudo dnf remove 软件包名称
    

    示例:卸载 curl

    sudo dnf remove curl
    
  • Arch Linux (pacman)

    sudo pacman -R 软件包名称
    

    示例:卸载 curl

    sudo pacman -R curl
    

    移除软件包及其未被其他包依赖的依赖

    sudo pacman -Rs curl
    
7.2.2 查找软件包

在安装软件包之前,通常需要先查找软件包的名称或描述。不同的包管理工具提供了不同的搜索命令。

  • Debian/Ubuntu 使用 apt-cache search

    apt-cache search 关键词
    

    示例:搜索包含 python 的软件包

    apt-cache search python
    

    输出示例:

    python3 - interactive high-level object-oriented language (default version)
    python3-pip - Python package installer
    python3-venv - Python 3 module for creating virtual environments
    
  • CentOS/RHEL 使用 yum search

    yum search 关键词
    

    示例:搜索包含 python 的软件包

    yum search python
    

    输出示例:

    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile* base: mirror.centos.org* extras: mirror.centos.org* updates: mirror.centos.org
    ===================================== Name Matched: python ======================================
    python.x86_64 : An interpreted, interactive, object-oriented programming language
    python3.x86_64 : An interpreted, interactive, object-oriented programming language
    
  • Arch Linux 使用 pacman -Ss

    pacman -Ss 关键词
    

    示例:搜索包含 python 的软件包

    pacman -Ss python
    

    输出示例:

    community/python 3.10.2-1Interpreted, interactive, object-oriented programming language
    community/python-pip 21.2.4-1Python package installer
    

应用场景:

  • 快速查找所需软件:通过关键词搜索,快速找到需要的软件包及其详细信息。
  • 了解软件包依赖:查看软件包的依赖关系,确保系统满足安装要求。
  • 发现替代软件:在某些软件包不可用时,寻找功能相似的替代品。

7.3 包管理配置与镜像源

配置包管理工具的镜像源可以显著提升软件包的下载速度和稳定性,尤其是在地理位置较远的情况下。以下将介绍如何配置和管理软件源,以及使用自定义镜像源和第三方软件源。

7.3.1 配置和管理软件源

软件源(Repository)是存储和分发软件包的服务器。正确配置软件源可以确保包管理工具能够访问最新的软件包和更新。

编辑软件源列表文件

不同的 Linux 发行版使用不同的文件来配置软件源。

  • Debian/Ubuntu 使用 /etc/apt/sources.list/etc/apt/sources.list.d/

    编辑主软件源列表

    sudo nano /etc/apt/sources.list
    

    示例内容:

    deb http://archive.ubuntu.com/ubuntu/ focal main restricted
    deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted
    deb http://archive.ubuntu.com/ubuntu/ focal universe
    deb http://archive.ubuntu.com/ubuntu/ focal-updates universe
    deb http://archive.ubuntu.com/ubuntu/ focal multiverse
    deb http://archive.ubuntu.com/ubuntu/ focal-updates multiverse
    deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
    deb http://security.ubuntu.com/ubuntu focal-security main restricted
    deb http://security.ubuntu.com/ubuntu focal-security universe
    deb http://security.ubuntu.com/ubuntu focal-security multiverse
    
  • CentOS/RHEL 使用 /etc/y

http://www.dtcms.com/a/330160.html

相关文章:

  • C语言:指针(4)
  • QT(事件)
  • 网络安全合规6--服务器安全检测和防御技术
  • MyBatis针对MySQL模糊查询中特殊字符(%和_)的处理方案
  • BGE:智源研究院的通用嵌入模型家族——从文本到多模态的语义检索革命
  • 模型驱动的自动驾驶AI系统全生命周期安全保障
  • C++入门自学Day10-- Vector类的自实现
  • Nginx学习与安装
  • Docker(springcloud笔记第三期)
  • docker 将本地python环境(有系统依赖)进行打包移到另一个服务器进行部署
  • 飞算AI:企业智能化转型的新引擎——零代码重塑生产力
  • sql查询优化方式常见情况总结
  • TLSv1.2协议与TCP/UDP协议传输数据内容差异
  • 【Redis】Sentinel (哨兵)
  • 深度学习实战114-基于大模型的深度研究(DeepResearch)架构:从自主信息探索到洞察生成的革命
  • games101 第三讲 Transformation(变换)
  • RK3568项目(十五)--linux驱动开发之进阶驱动
  • Linux应用层开发--进程处理
  • 【完整源码+数据集+部署教程】医学报告图像分割系统源码和数据集:改进yolo11-HGNetV2
  • @Linux进程管理工具 - PM2全面指南
  • 理财 - 基金
  • 【React】use-immer vs 原生 Hook:谁更胜一筹?
  • PromptPilot — AI 自动化任务的下一个环节
  • 云蝠智能 Voice Agent 多模型接入技术架构与实践
  • 微信小程序实现导航至目的地
  • 腾讯位置商业授权微信小程序关键词输入提示
  • python自学笔记7 可视化初步
  • 并发编程(八股)
  • epoll模型解析
  • 数据科学与计算:从基础到实践的全面探索