Linux速成入门教程——从零基础开始快速入门,一文了解软件包管理与系统更新

软件包管理和系统更新是 Linux 系统管理中最基本也是最重要的部分之一。通过包管理系统,用户可以轻松地安装、升级、删除软件包,确保系统运行在最佳状态。本篇文章将详细介绍常见的 Linux 包管理系统,包括如何使用 aptyum 等工具进行软件包的管理,以及如何编译和安装源代码包。

3.1 包管理系统概述

什么是包管理系统?

包管理系统是 Linux 操作系统中用于管理软件包的一种工具。它的主要功能包括安装、更新、删除、查询软件包等。包管理系统的出现大大简化了软件的管理工作,用户不再需要手动下载、编译、配置软件,而是可以通过简单的命令来完成这些操作。

在 Linux 世界中,软件通常被打包成 .deb.rpm 或其他格式,这些软件包包含了程序的二进制文件、配置文件、文档等。包管理系统不仅能处理软件包的安装和卸载,还可以自动解决依赖关系,确保安装的软件包能够正常工作。

常见包管理系统简介

不同的 Linux 发行版使用不同的包管理系统。以下是一些常见的包管理系统:

  1. APT (Advanced Package Tool)

    • APT 是 Debian 系及其衍生版本(如 Ubuntu、Mint)中使用的包管理系统。它使用 .deb 包文件,并通过简单的命令完成软件包的安装、升级和删除。APT 具有良好的依赖管理功能,并支持多种软件源。
  2. YUM (Yellowdog Updater, Modified)

    • YUM 是 Red Hat 系统(如 CentOS、Fedora)中广泛使用的包管理系统。它使用 .rpm 包文件,并能处理复杂的依赖关系。YUM 提供了一个方便的命令行接口,用户可以通过简单的命令来管理软件包。
  3. DNF (Dandified YUM)

    • DNF 是 YUM 的下一代版本,主要用于 Fedora 和部分新的 CentOS 版本。与 YUM 相比,DNF 在处理速度和依赖解决方面有所改进,同时还引入了插件架构,使得包管理更加灵活。
  4. Pacman

    • Pacman 是 Arch Linux 的包管理工具,以其简单和高效著称。它既能管理二进制包,也能处理从源码编译的软件包。Pacman 使用 .pkg.tar.xz 包格式,并支持从 AUR(Arch User Repository)中安装用户自定义的软件包。
包管理系统的配置与源管理

包管理系统的强大功能离不开软件源的支持。软件源(也称为仓库)是存放软件包的服务器,包管理系统通过连接这些源来获取和安装软件包。

  • APT 的源管理: 在 Debian 系统中,APT 的源配置文件位于 /etc/apt/sources.list/etc/apt/sources.list.d/ 目录下。用户可以通过编辑这些文件来添加、移除或修改软件源。例如:

    deb http://archive.ubuntu.com/ubuntu/ focal main restricted 
    deb-src http://archive.ubuntu.com/ubuntu/ focal main restricted

    通过上述配置,APT 将从 Ubuntu 官方源下载和安装软件包。

  • YUM 的源管理: YUM 的源配置文件通常位于 /etc/yum.repos.d/ 目录中,每个仓库都有一个独立的 .repo 文件。用户可以通过编辑这些 .repo 文件来管理 YUM 的软件源。例如:

    [base] name=CentOS-$releasever - Base baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 enabled=1

    以上配置将指定 YUM 从 CentOS 官方源安装软件包。

3.2 使用 APT 进行包管理(以 Debian 系为例)

APT 是 Debian 系列发行版的主要包管理工具,支持 .deb 格式的软件包。通过 APT,用户可以轻松管理系统中的软件。

基本命令
  • 更新软件包列表

    在安装或更新软件包之前,建议先更新本地的包列表。这个操作会从软件源获取最新的软件包信息,以确保安装的软件是最新的。

    sudo apt-get update
  • 安装软件包

    安装软件包是最常用的操作之一,APT 会自动处理软件包之间的依赖关系,并提示用户进行确认。

    sudo apt-get install package_name

    例如,安装 curl 命令:

    sudo apt-get install curl

  • 移除软件包

    如果不再需要某个软件包,可以使用以下命令将其移除:

    sudo apt-get remove package_name

    要彻底移除软件包,包括其配置文件,可以使用:

    sudo apt-get purge package_name
如何添加与移除软件源
  • 添加新软件源

    假设需要添加一个第三方 PPA(Personal Package Archive),可以使用以下命令:

    sudo add-apt-repository ppa:repository_name/ppa sudo apt-get update

    这样,新添加的软件源中的软件包将被 APT 识别和使用。

  • 移除软件源

    如果不再需要某个软件源,可以通过编辑 /etc/apt/sources.list/etc/apt/sources.list.d/ 中的相应文件,将对应的源条目删除,或直接使用以下命令:

    sudo add-apt-repository --remove ppa:repository_name/ppa sudo apt-get update
升级与降级软件包的详细步骤
  • 升级软件包

    系统更新时,APT 会尝试升级所有可用的软件包:

    sudo apt-get upgrade

    此命令仅升级当前安装的包,而不会删除旧包或安装新包。要全面升级,包括解决包依赖冲突并安装新依赖项,可以使用:

    sudo apt-get dist-upgrade
  • 降级软件包

    某些情况下,用户可能需要降级软件包。例如,在新版本存在兼容性问题时,可以降级回旧版本:

    sudo apt-get install package_name=version

    其中 version 是指定的旧版本号。

使用 dpkg 命令管理 .deb 包文件

APT 是基于 dpkg 的工具,而 dpkg 是最底层的包管理工具,直接操作 .deb 文件。常见操作包括:

  • 安装 .deb 包文件

    如果手动下载了 .deb 文件,可以使用以下命令进行安装:

    sudo dpkg -i package_name.deb
  • 卸载软件包

    使用 dpkg 卸载软件包:

    sudo dpkg -r package_name
  • 查询已安装的软件包

    用户可以查询系统中安装的 .deb 包:

    dpkg -l | grep package_name
  • 修复依赖关系

    如果因手动安装或卸载导致依赖关系出错,可以使用以下命令修复:

    sudo apt-get install -f

3.3 使用 YUM 进行包管理(以 Red Hat 系为例)

YUM 是 Red Hat 系列发行版的主要包管理工具,支持 .rpm 格式的软件包。与 APT 类似,YUM 可以自动处理依赖关系。

基本命令
  • 安装软件包

    使用 YUM 安装软件包的基本命令如下:

    sudo yum install package_name

    例如,安装 httpd(Apache HTTP 服务器):

    sudo yum install httpd
  • 更新软件包

    更新系统中所有已安装的软件包:

    sudo yum update
  • 移除软件包

    移除不再需要的软件包:

    sudo yum remove package_name
如何添加与管理 YUM 仓库
  • 添加新仓库

    新增 YUM 仓库可以通过创建新的 .repo 文件来实现。例如,添加 EPEL 仓库:

    sudo yum install epel-release

    或手动添加 .repo 文件:

    sudo vi /etc/yum.repos.d/epel.repo

    添加以下内容:

    [epel] name=Extra Packages for Enterprise Linux 7 - $basearch baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch enabled=1 gpgcheck=1 gpgkey=https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
  • 管理仓库

    列出所有已配置的仓库:

    yum repolist

    禁用某个仓库:

    sudo yum-config-manager --disable repository_name

    启用某个仓库:

    sudo yum-config-manager --enable repository_name
升级系统与软件包的策略

YUM 的升级策略类似于 APT,但在处理内核升级时需要更加小心。通常建议通过以下命令升级系统:

sudo yum update

要仅升级内核,而不影响其他包,可以指定内核包名:

sudo yum update kernel
使用 rpm 命令管理 .rpm 包文件

YUM 基于 rpm 工具,而 rpm 是直接操作 .rpm 包的底层工具。常见操作包括:

  • 安装 .rpm 包文件

    手动安装 .rpm 包:

    sudo rpm -i package_name.rpm
  • 升级软件包

    使用 rpm 升级已安装的软件包:

    sudo rpm -U package_name.rpm
  • 卸载软件包

    使用 rpm 卸载软件包:

    sudo rpm -e package_name
  • 查询软件包信息

    列出已安装的软件包:

    rpm -qa | grep package_name

3.4 编译与安装源代码包

虽然大多数情况下,用户可以通过包管理系统安装所需的软件,但在某些情况下,可能需要从源码编译安装软件。

什么是源码包与二进制包?
  • 二进制包: 二进制包是预编译好的软件包,直接可以被系统安装和执行。APT、YUM 安装的软件包通常是二进制包。这类包的优点是安装快捷、方便,缺点是定制化程度较低。

  • 源码包: 源码包包含了软件的源代码,用户需要手动编译这些代码生成可执行文件后,才能使用。源码包的优点是用户可以根据需求自定义编译选项,缺点是编译过程复杂且耗时。

从源码编译安装软件的步骤
  1. 下载源码包: 用户可以从软件官方网站或开源项目的代码仓库下载源码包。通常,源码包以 .tar.gz.tar.bz2 格式提供。

    wget http://example.com/software-version.tar.gz
  2. 解压源码包

    下载完成后,解压源码包:

    tar -xzvf software-version.tar.gz
  3. 配置编译选项

    解压后,进入源码目录,通常需要运行 ./configure 脚本以生成 Makefile 文件。该脚本允许用户配置编译选项,如安装路径、功能启用/禁用等:

    cd software-version ./configure --prefix=/usr/local
  4. 编译源码

    配置完成后,使用 make 命令编译源码:

    make

    此步骤将根据 Makefile 文件中的指令生成二进制文件。

  5. 安装软件

    编译完成后,使用 make install 将编译好的软件安装到系统中:

    sudo make install
使用 make 与 gcc 工具进行编译
  • makemake 是用于自动化编译流程的工具,通过读取 Makefile 文件中的指令,自动化完成编译、链接、安装等任务。

  • gccgcc 是 GNU 编译器集合的核心组件,主要用于编译 C 和 C++ 语言的代码。用户可以使用 gcc 直接编译单个源文件:

    gcc -o output_file source_file.c
如何管理手动编译的软件包

手动编译安装的软件包并不受包管理系统的管理,这可能导致未来系统更新或管理的复杂性。为了简化管理,建议用户:

  • 使用 checkinstallcheckinstall 是一种工具,能够在编译安装软件时生成对应的包管理器(如 .deb.rpm)文件,从而将手动编译的软件包纳入包管理系统的管理。

    sudo checkinstall
  • 记录安装路径: 在安装软件时,确保记录软件安装路径(例如 /usr/local),以便日后卸载或更新。

  • 使用 stow 工具stow 是一个符号链接管理工具,可以帮助管理手动安装的软件包。通过使用 stow,用户可以轻松卸载或升级特定的软件包。

    sudo stow -d /usr/local/stow -t /usr/local software-version
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

焚琴煮鹤的熊熊野火

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值