Linux 包管理

目前,大多数类 Unix 操作系统都提供提供了一种中心化的软件包管理机制,可以用来在操作系统上安装、删除、升级、配置和管理软件包。软件包管理器可以是像“软件中心”,在 Linux 操作系统中,最常见的两种包分别是 deb 和 rpm。本指南旨在快速地介绍如何使用包管理工具来安装软件包。

ICE-EVB 开发板使用的是 debian 环境,采用 DEB 的包管理机制。

apt 包工具

在 Debian 系统中,采用deb(debian) 形式的软件包来进行管理的。安装软件可以使用如下命令,,其中 xxxx.deb 为要安装的软件包的名字:

sudo dpkg -i xxxx.deb

命令中的 dpkg(Debian Packager) 是 Debian 专门开发的包管理工具,它可以用来安装、更新和移除软件, 安装时它需要使用 deb 类型的软件包。

安装软件包

apt-get install PackageName             # 普通安装
apt-get install PackageName=VersionName # 安装指定包的指定版本
apt-get --reinstall install PackageName # 重新安装

apt-get build-dep PackageName           # 安装源码包所需要的编译环境
apt-get -f install                      # 修复依赖关系

apt-get source PackageName              # 下载软件包的源码

卸载软件包

apt-get remove PackageName              # 删除软件包, 保留配置文件

apt-get --purge remove PackageName      # 删除软件包, 同时删除配置文件
apt-get purge PackageName               # 删除软件包, 同时删除配置文件

apt-get autoremove PackageName          # 删除软件包, 同时删除为满足依赖
                                        # 而自动安装且不再使用的软件包

apt-get --purge autoremove PackageName  # 删除软件包, 删除配置文件, 
                                        # 删除不再使用的依赖包

apt-get clean && apt-get autoclean      # 清除已下载的软件包和旧软件包

更新软件包

apt-get update                          # 更新安装源(Source)
apt-get upgrade                         # 更新已安装的软件包
apt-get dist-upgrade                    # 更新已安装的软件包(识别并处理依赖关系的改变)

查询软件包

dpkg -l                                 # 列出已安装的所有软件包

apt-cache search PackageName            # 搜索软件包
apt-cache show PackageName              # 获取软件包的相关信息, 如说明、大小、版本等

apt-cache depends PackageName           # 查看该软件包需要哪些依赖包
apt-cache rdepends PackageName          # 查看该软件包被哪些包依赖

apt-get check                           # 检查是否有损坏的依赖

apt-get --help

执行命令: apt-get --help,输出:

apt 1.0.1ubuntu2,用于 amd64 构架,编译于 Dec  8 2016 16:23:38
用法: apt-get [选项] 命令
    apt-get [选项] install|remove 软件包1 [软件包2 ...]
    apt-get [选项] source 软件包1 [软件包2 ...]

apt-get 是一个用于下载和安装软件包的简易命令行界面。
最常用命令是 update 和 install。

命令:
   update - 取回更新的软件包列表信息
   upgrade - 进行一次升级
   install - 安装新的软件包(注:软件包名称是 libc6 而非 libc6.deb)
   remove - 卸载软件包
   autoremove - 卸载所有自动安装且不再使用的软件包
   purge - 卸载并清除软件包的配置
   source - 下载源码包文件
   build-dep - 为源码包配置所需的编译依赖关系
   dist-upgrade - 发布版升级,见 apt-get(8)
   dselect-upgrade - 根据 dselect 的选择来进行升级
   clean - 删除所有已下载的包文件
   autoclean - 删除已下载的旧包文件
   check - 核对以确认系统的依赖关系的完整性
   changelog - 下载指定软件包,并显示其changelog
   download - 下载指定的二进制包到当前目录

选项:
  -h  本帮助文档。
  -q  让输出可作为日志 - 不显示进度
  -qq 除了错误外,什么都不输出
  -d  仅仅下载 - 【不】安装或解开包文件
  -s  不作实际操作。只是依次模拟执行命令
  -y  对所有询问都回答是(Yes),同时不作任何提示
  -f  当出现破损的依赖关系时,程序将尝试修正系统
  -m  当有包文件无法找到时,程序仍尝试继续执行
  -u  显示已升级的软件包列表
  -b  在下载完源码包后,编译生成相应的软件包
  -V  显示详尽的版本号
  -c=? 读取指定配置文件
  -o=? 设置任意指定的配置选项,例如 -o dir::cache=/tmp
请查阅 apt-get(8)、sources.list(5) 和 apt.conf(5)的参考手册
以获取更多信息和选项。
                       本 APT 具有超级牛力

软件源

使用 apt-get install 安装软件时,可注意到它是从官方源地址下载的,但默认官方的软件仓库都设置在国外, 这种情况下经常出现安装更新缓慢甚至下载超时等异常。实际上,国内有许多第三方软件仓库镜像源,可以从这些国内仓库安装软件工具,加快下载速度。支持 RISC-V 的 debian 系统的国内镜像源有:

软件源修改

在 Deiban 系统中,软件源的配置是记录在文件/etc/apt/sources.list中的,我们可以通过 cat 命令输出该文件的内容,查看自己电脑上的源配置:

# 查找软件源
cat /etc/apt/sources.list

deb http://mirrors.aliyun.com/debian-ports sid main
deb http://mirrors.aliyun.com/debian-ports unreleased main
deb http://mirrors.aliyun.com/thead/debian-riscv64 sid main

在 /etc/apt/sources.list 文件中,每一行都代表了一个软件源,每行的软件源描述又可以分为四个部分,见下表:

软件包格式 镜像源地址 版本代号 软件包类型
deb/deb-src http://mirrors.aliyun.com/debian-ports sid main

可以通过浏览 http://mirrors.aliyun.com/debian-ports/dists 可以查看到对应 版本代号:

Index of /debian-ports/dists/
../
experimental/                          11-Jan-2021 14:07             -
sid/                                   11-Jan-2021 14:06             -
unreleased/                            11-Jan-2021 14:07             -
unstable/                              11-Jan-2021 14:06             -

results matching ""

    No results matching ""