Skip to content

在 Linux 中管理程序:安装、更新和移除

在 Linux 中,软件以 软件包 (packages) 的形式分发,并存储在官方和第三方 仓库 (repositories) 中。软件包的安装、更新和移除由专门的工具——包管理器 (package managers) 进行管理。

管理器的选择取决于发行版:

发行版 包管理器 软件包格式
Debian, Ubuntu (及其衍生版) apt / apt-get, apt-cache .deb
RHEL, CentOS 7 及更早版本, BitrixOS yum .rpm
RHEL 8+, CentOS Stream, Rocky Linux, AlmaLinux dnf (yum 的继任者) .rpm

备注

在现代 Ubuntu/Debian 中,建议使用 apt——这是一个简化且便捷的界面,结合了 apt-getapt-cache 的功能。
在较新的 RPM 系统中,dnf 命令与 yum 类似,但速度更快且更可靠。

备注

大多数命令需要超级用户权限——请使用 sudo

  1. 更新软件包列表

    在安装或更新之前,**务必**刷新本地元数据缓存:

    系统 命令
    Debian / Ubuntu sudo apt update
    CentOS 7 / BitrixOS sudo yum check-update
    RHEL 8+ / CentOS Stream sudo dnf check-update (或简单地使用 sudo dnf upgrade --refresh)

    备注

    apt updateapt upgrade
    update 仅更新 列表
    upgrade 更新 已安装的软件包

  2. 搜索软件包

    如果不知道确切名称,可以通过关键词搜索:

    系统 命令
    Debian / Ubuntu apt search keyword
    CentOS / RHEL (yum/dnf) yum search keyword
    dnf search keyword

    示例:

    apt search nginx
    
  3. 查看软件包信息

    在安装前查找版本、描述、依赖关系和大小:

    系统 命令
    Debian / Ubuntu apt show package_name
    CentOS / RHEL yum info package_name
    dnf info package_name

    示例:

    apt show curl
    
  4. 安装软件包

    基本安装:

    Debian/Ubuntu

    sudo apt install package_name
    
    CentOS 7 / BitrixOS

    sudo yum install package_name
    

    RHEL 8+, CentOS Stream

    sudo dnf install package_name
    

    安装多个软件包:

    sudo apt install nginx git htop
    

    安装特定版本:

    Debian/Ubuntu

    sudo apt install nginx=1.18.0-6ubuntu14.4
    

    yum/dnf (使用连字符指定)

    sudo yum install nginx-1.16.1
    sudo dnf install nginx-1.20.1
    
  5. 更新软件包

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

    系统 命令
    Debian / Ubuntu sudo apt upgrade
    或_ sudo apt full-upgrade _——用于处理涉及软件包移除/替换的依赖关系
    CentOS 7 / BitrixOS sudo yum update
    RHEL 8+ / CentOS Stream sudo dnf upgrade
  6. 移除软件包

    移除软件包但保留配置文件:

    Debian/Ubuntu

    sudo apt remove package_name
    
    yum/dnf

    sudo yum remove package_name
    sudo dnf remove package_name
    

    完全移除(包括配置文件):

    sudo apt purge package_name
    

    自动清理依赖关系

    移除那些 仅作为依赖关系 安装但不再需要的软件包:

    sudo apt autoremove
    # (对于 yum/dnf,此类软件包会在移除/更新时自动移除)
    

    此外:清除已下载软件包的缓存

    sudo apt clean        # 从缓存中移除所有 .deb 文件
    sudo apt autoclean    # 仅移除过时的 .deb 文件
    

信息

有用的替代方案

任务 命令
检查软件包是否已安装 dpkg -l | grep package_name (Debian)
rpm -q package_name (RPM)
查看软件包包含哪些文件 dpkg -L package_name
rpm -ql package_name
查找拥有某个文件的软件包 dpkg -S /path/to/file
rpm -qf /path/to/file
question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×