Skip to main content

Linux/Ubuntu 软件包管理和配置

Ubuntu 包管理器

一个包管理器是用于自动化安装、更新和删除 Linux 系统上软件包过程的命令行或图形工具。软件包是包括可执行文件、库、配置文件和文档在内的文件集合,它们被打包在一起以便于分发和安装。包管理器跟踪这些包,使在 Linux 系统上管理软件变得更加容易。

Linux 中的包管理器功能:

  • 安装: 包管理器有助于从仓库或本地文件安装软件包。它们自动处理依赖关系,确保所有必需的组件都被安装。
  • 依赖解析: Linux 软件通常依赖其他包。包管理器检测这些依赖关系,并自动获取和安装它们。
  • 升级: 包管理器允许用户将已安装的软件更新到最新版本。这有助于保持系统的安全性和最新性。
  • 移除: 使用包管理器卸载软件非常直接。它们确保所有相关文件和依赖项被移除,防止冲突。
  • 查询: 用户可以查询包管理器以获取有关已安装包、可用更新和包详细信息的信息。

我们使用的 Ubuntu 系统使用APT(Advanced Package Tool) 和 dpkg作为其主要的包管理器。

APT (Advanced Package Tool)

APT(Advanced Package Tool)是一个强大且广泛使用的 Linux 世界中的包管理器。它是基于 Debian 的发行版(包括 Debian 本身、Ubuntu 和 Linux Mint)的默认包管理器。APT 简化了软件管理,确保用户可以轻松安装、更新和删除包,同时处理依赖关系。让我们更详细地探讨 APT,包括其命令和实际示例。

APT 的关键特性:

  • 依赖解析: APT 以其强大的依赖解析能力而闻名。它会自动检测并安装所需软件所需的任何必要库或包。这确保了软件能够正确运行,无需手动干预。
  • 仓库管理: APT 连接到在线仓库,那里托管着软件包。用户可以配置使用哪些仓库,从而可以从官方来源和受信任的第三方仓库安装软件。
  • 包管理: 它允许用户管理系统上的包,包括安装、升级、降级和删除。此外,APT 可以锁定包到特定版本,确保系统稳定性。
  • 缓存管理: APT 维护一个包信息的本地缓存。这个缓存有助于更快地搜索和更新包。用户可以使用apt-get update命令更新这个缓存。

APT 中的基本命令:

请在阅读以下命令时,将<package-name>替换为您想要操作的实际包名称,并在 Terminal 中运行这些命令。

更新包列表:

sudo apt-get update

升级包:

sudo apt-get upgrade

搜索包:

apt-cache search <package-name>
# 课堂练习: 搜索软件包 btop , 看看它是做什么用的?
apt-cache search btop

安装包:

sudo apt-get install <package-name>
# 课堂练习: 安装 btop 软件包
sudo apt-get install btop
# 安装完成后, 在 Terminal 中输入 btop , 启动该程序
btop

Todo: 学生补全程序启动测试截图。

移除包:

sudo apt-get remove <package-name>
# 课堂练习: 移除 btop 软件包
sudo apt-get remove btop
# 移除完成后, 在 Terminal 中输入 btop , 测试该程序是否被成功移除
btop

Todo: 学生补全程序启动测试截图。

DPKG (Debian Package)

DPKG(Debian 包管理器)是基于 Debian 的 Linux 发行版(包括 Debian 本身、Ubuntu 及其衍生版本)的基本包管理工具。DPKG 是一个低级别的包管理器,虽然它直接与单个包文件交互,但通常与 APT 等高级包管理器结合使用,以获得更友好的用户体验。在本节中,我们将探讨 DPKG,其命令,并提供其用法的示例。

DPKG 的关键特性:

  • 低级别包管理: DPKG 直接处理安装、移除和管理单个包文件(带有.deb 扩展名)。它不像 APT 等高级包管理器那样自动解析或管理依赖关系。
  • 包安装: DPKG 负责在基于 Debian 的系统上安装软件包。用户可以从本地.deb 文件安装包,或者如果包已经存在于系统上,则通过指定包名称来安装。
  • 包移除: DPKG 可以从系统中移除已安装的包,确保根据用户偏好保留或清除配置文件。
  • 包查询: 用户可以查询已安装包的状态和信息,这对于诊断问题或验证包详情很有用。

DPKG 中的基本命令:

首先,在浏览器中输入如下网址,下载deb格式的软件包,文件保存在 ~/Downloads/ 文件夹。

http://192.168.78.12:5000/dufs/guest/
# 用户名: guest
# 密码: thankU
## 备注: 如果你的是树莓派: 下载带有 arm64 的软件
## 备注: 如果你的是PC电脑: 下载带有 amd64 的软件
## 自行调研: amd64 和 arm64 的 deb 软件包有何不同?

从.deb 文件安装包:

sudo dpkg -i package.deb
# 课堂练习: 用 dpkg 命令安装刚刚下载的 vscode 软件
dpkg -i ~/Downloads/code_1.106.2-1763572294_arm64.deb

Todo: 学生补全程序启动测试截图。

查询包信息:

dpkg -l | grep <package-name>
# 课堂练习: 查询 vscode 软件包的信息
dpkg -l | grep -i code
# 注意: 这里使用了管道符 `|` 和 `grep` 命令来过滤查询结果.

Todo: 学生补全查询结果截图。vscode 软件包名称通常以 code 开头。

移除包:

sudo dpkg -r <package-name>
# 课堂练习: 移除 vscode 软件包
sudo dpkg -r code
# 移除完成后, 使用 dpkg -l | grep -i code 命令, 测试该程序是否被成功移除

拓展:ROS2 一键安装脚本

注意:

  1. 以下脚本安装的是 PC 上的 amd64 版,非树莓派的 arm64 版。
  2. 如果 Ubuntu 系统以前安装过 ros2 , 需要将其删除: sudo apt-get remove ros2-*

你有两种使用该脚本的方法:

  1. 复制粘贴法: 直接将下面的脚本内容复制,然后粘贴到 Terminal 中运行即可。该方法适合初学者快速上手。
  2. 脚本文件法: 将下面的脚本内容保存为一个 install_ros2_kilted.sh 文件,然后在 Terminal 中运行该脚本文件。(提示:可以使用刚才安装的 vscode 作为文本编辑器)

脚本文件法

chmod +x install_ros2_kilted.sh
./install_ros2_kilted.sh

#!/usr/bin/zsh


# [Installation — ROS 2 Documentation: Jazzy documentation](https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html)

## First ensure that the Ubuntu Universe repository is enabled.
sudo apt install software-properties-common
sudo add-apt-repository universe

## "Installing the ros2-apt-source package will configure ROS 2 repositories for your system"
sudo apt update && sudo apt install curl -y
export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}')
curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb"
sudo dpkg -i /tmp/ros2-apt-source.deb

## Or else
# cd ~/1KeyLinux/03_install_ROS2/
# sudo dpkg -i ./ros2-apt-source_1.1.0.noble_all.deb
# cd -

## Install development tools (optional)
sudo apt update && sudo apt install ros-dev-tools

## Install ROS2
sudo apt install ros-kilted-desktop


## Bellow! Pay attention!
## Bellow! Pay attention!

## Set up your environment by sourcing the following file.
### also add the following line in `.zshrc`
# source /opt/ros/kilted/setup.bash # only for bash
# source /opt/ros/kilted/setup.zsh # only for zsh. We use zsh all through our course

## Above! Pay attention!
## Above! Pay attention!

课后作业:

  1. 高二学生:自行调研什么是 Linux 脚本,并介绍上述 ROS2 一键安装脚本 中的至少 5 行代码的作用。

  2. 高一学生:

  • 跟着学长学会按照 实验室环境 6S 现场管理规范
  • 在家中的电脑尝试从 U 盘启动 Ubuntu 系统,(如果没有条件或实在不会,可暂时跳过此步骤. 来学校请教学长)
  • 并用本节的 ROS2 一键安装脚本 安装 ROS2 软件包。(有难度。)