Debian教程

Debian高级软件包管理

Debian作为一款非常受欢迎的开源操作系统,其高级软件包管理功能为用户提供了丰富的软件安装、更新和卸载等操作。本文将详细介绍Debian高级软件包管理的相关内容,包括命令行中的高级软件包管理操作、验证安装的软件包文件、预防软件包故障以及搜索软件包元数据等方面。

一、命令行操作

下面列出了一些其它的软件包管理操作,这些操作对于 aptitude 过于高级或缺失所需的功能。

高级软件包管理操作:

命令 操作
COLUMNS=120 dpkg -l package_name_pattern 列出已安装软件包的列表用于错误报告
dpkg -L package_name 显示一个已安装软件包的内容
dpkg -L package_name | egrep '/usr/share/man/man.*/.+' 列出一个已安装软件包的 man 手册页
dpkg -S file_name_pattern 列出匹配文件名的已安装软件包
apt-file search file_name_pattern 列出档案库中匹配文件名的软件包
apt-file list package_name_pattern 列出档案库中匹配的软件包的内容
dpkg-reconfigure package_name 重新配置软件包
dpkg-reconfigure -plow package_name 通过最详细的方式来重新配置软件包
configure-debian 以全屏菜单的形式重新配置软件包
dpkg --audit 部分安装软件包的审计系统
dpkg --configure -a 配置所有部分安装的软件包
apt-cache policy binary_package_name 显示一个二进制软件包的可用版本、优先级和档案库信息
apt-cache madison package_name 显示一个软件包的可用版本和档案库信息
apt-cache showsrc binary_package_name 显示一个二进制软件包的源代码软件包信息
apt-get build-dep package_name 安装构建软件包所需要的软件包
aptitude build-dep package_name 安装构建软件包所需要的软件包
apt-get source package_name (从标准档案库)下载源代码
dget dsc 文件的 URL (从其它档案库)下载源代码软件包
dpkg-source -x package_name_version-debian.revision.dsc 从源代码软件包集合(“*.orig.tar.gz” 和 “*.debian.tar.gz"/"*.diff.gz”)中构建代码树
debuild binary 从本地的源代码树中构建软件包
make-kpkg kernel_image 从内核源代码树中构建一个内核软件包
make-kpkg --initrd kernel_image 从启用了 initramfs 的内核代码树中构建一个内核软件包
dpkg -i package_name_version-debian.revision_arch.deb 安装一个本地的软件包到系统中
apt install /path/to/package_filename.deb 安装本地软件包到系统中,同时尝试自动解决依赖
debi package_name_version-debian.revision_arch.dsc 安装本地软件包到系统中
dpkg --get-selections '*' >selection.txt 保存 dpkg 级别的软件包选择状态信息
dpkg --set-selections <selection.txt 使用 dpkg 设置软件包选择状态
echo package_name hold | dpkg --set-selections 使用 dpkg 将一个软件包的包选择状态设置为 hold(相当于 "aptitude hold 包名")

注意:

对于一个支持多架构的软件包,你可能需要为一些命令指定架构名称。例如,使用 “dpkg -L libglib2.0-0:amd64” 来列出 amd64 架构的 libglib2.0-0 软件包的内容;

系统管理员应该小心使用低级的软件包工具(例如 “dpkg -i …” 和 “debi …”),它们不会自动处理所需的软件包依赖。 dpkg 的命令行选项 “--force-all” 和类似的选项只适用于高手。没有完全理解它们的效果却使用它们会破坏你的整个系统。

请注意以下几点:

  • 所有的系统配置和安装命令都需要以 root 运行;
  • 不同于使用正则表达式的 aptitude ,其它的软件包管理命令使用类似于 shell glob 的通配符;
  • apt-file(1) 由 apt-file 软件包提供,并且需要先运行 “apt-file update”;
  • configure-debian(8) 由 configure-debian 软件包提供,它运行 dpkg-reconfigure(8) 作为后端;
  • dpkg-reconfigure(8) 使用 debconf(1) 作为后端来运行软件包脚本;
  • "apt-get build-dep" 、"apt-get source" 和 "apt-cache showsrc" 命令需要 源列表中存在 "deb-src" 条目;
  • dget(1) 、debuild(1) 和 debi(1) 需要 devscripts 软件包;
  • make-kpkg 命令需要 kernel-package 软件包。

二、验证软件包文件

已经安装 debsums 软件包的,能使用 debsums(1) 命令通过 "/var/lib/dpkg/info/*.md5sums" 文件中的 MD5sum 值,验证已安装的文件。

因为 MD5sum 数据库可能被侵入者篡改,debsums(1) 作为安全工具使用有限。这种工具用于校验管理者造成的本地修改或媒体错误造成的损坏是很不错的。

三、预防软件包故障

许多用户更想使用 Debian 系统的 testing (或 unstable)版本,因为它有新的功能和软件包。但这会使得系统更容易遇到严重的软件包问题。

  • 安装软件包 apt-list bugs 可以避免系统遭遇严重 bugs,在通过 APT 系统升级时,它会自动检查 Debian BTS 里的严重 bug。
  • 安装 apt-listchanges 软件包,在使用 APT 系统升级时它会在 “NEWS.Debian” 中提供重要新闻。

四、搜索软件包元数据

尽管近来浏览 Debian 网站 https://packages.debian.org/ 是搜索软件包元数据更加简单的方法,但我们依旧来看看更传统的方法。

  • grep-dctrl(1) 、grep-status(1) 和 grep-available(1) 命令被用来搜索具有 Debian 软件包控制文件格式的任何文件。
  • “dpkg -S file_name_pattern” 能够被用来搜索包含该文件的软件包名称,其匹配的名称是由 dpkg 安装的。但它会忽略维护者的脚本创建的文件。

如果需要对 dpkg 元数据进行更复杂的搜索,你需要在 “/var/lib/dpkg/info/” 目录下运行 “grep -e regex_pattern *” 命令。这会使你在软件包脚本和安装查询文本中搜索提及的单词。

广告合作
QQ群号:707632017

温馨提示:

1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com。(#改为@)

2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

目录