refactor: 重构文档目录
移除了所有数字标号 Log:
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# 2.1.Debian软件包管理前提
|
||||
# Debian软件包管理前提
|
||||
|
||||
## 2.1.1. 软件包配置
|
||||
## 软件包配置
|
||||
|
||||
下面是 Debian 系统软件包配置的一些要点。
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
- 高深的配置可以由系统管理员手动启用。这可能会对用于系统配置的通用流行帮助程序造成干
|
||||
|
||||
## 2.1.2. 基本的注意事项
|
||||
## 基本的注意事项
|
||||
|
||||
::: warning
|
||||
不要从任何的混合源中安装软件包。它可能会打破软件包的一致性,这需要你要深厚的系统管理知识,例如 ABI 编译器、库版本和解释器特性等等。
|
||||
@@ -45,7 +45,7 @@ deepin 系统默认只会提供软件的 stable 版本,除非你加入了测
|
||||
|
||||
负责有关键任务的服务器的严谨的 deepin 系统系统管理员,应该使用额外的预防措施。
|
||||
|
||||
## 2.1.3. 持续升级的生活
|
||||
## 持续升级的生活
|
||||
|
||||
::: tip
|
||||
如果你不了解软件包更新机制,建议只使用deepin自带的系统更新。
|
||||
@@ -59,7 +59,7 @@ deepin 系统默认只会提供软件的 stable 版本,除非你加入了测
|
||||
|
||||
建议你这么做的同时,准备好一个live CD的启动盘,以便于在deepin无法正常工作的时候挽救你的系统。
|
||||
|
||||
## 2.1.4.deepin源
|
||||
##deepin源
|
||||
|
||||
deepin源的指定在`/etc/apt/sources.list`文件下,例如,现在的v23 beige系统
|
||||
|
||||
@@ -82,7 +82,7 @@ https://community-packages.deepin.com/beige/ beige main commercial community
|
||||
|
||||
如果只是用 aptitude(它不访问源代码相关的元数据),“deb-src”那行可以安全地删掉(或者在文件开头添加 “#” 来将它注释掉)。这可以加速档案库元数据的更新。URL 可以是“<http://>” 、“<ftp://>” 、 “file://” ……
|
||||
|
||||
## 2.1.5.软件包依赖关系
|
||||
##软件包依赖关系
|
||||
|
||||
Debian 系统通过其控制文件字段中的版本化二进制依赖声明机制来提供一致的二进制软件包集合。下面有一些它们的简单定义。
|
||||
|
||||
@@ -124,7 +124,7 @@ Debian 系统通过其控制文件字段中的版本化二进制依赖声明机
|
||||
|
||||
包含源代码依赖关系的官方定义位于 [the Policy Manual: Chapter 7 - Declaring relationships between packages](https://www.debian.org/doc/debian-policy/ch-relationships)。
|
||||
|
||||
## 2.4.5.APT包管理的事件流
|
||||
##APT包管理的事件流
|
||||
|
||||
这是 APT 提供的软件包管理的简单事件流摘要。
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# 2.2.基础软件包管理操作
|
||||
# 基础软件包管理操作
|
||||
|
||||
在 deepin 系统中有许多基于 APT 的软件包管理工具可以在 Debian 系统上进行基于仓库的软件包管理操作。在这里,我们将介绍 3 种基本的软件包管理工具:apt,apt-get / apt-cache 和 aptitude以及一个包文件查询工具:apt-file 。
|
||||
|
||||
对于涉及软件包安装或更新软件包元数据的软件包管理操作,你必须有 root 权限。
|
||||
|
||||
## 2.2.1. `apt` vs. `apt-get` / `apt-cache` vs. `aptitude`
|
||||
## `apt` vs. `apt-get` / `apt-cache` vs. `aptitude`
|
||||
|
||||
尽管 `aptitude` 是作者主要使用的一个非常好的可互动工具,但不建议使用其进行跨版本升级。
|
||||
|
||||
@@ -44,7 +44,7 @@ aptitude 命令是最通用的基于 APT 的软件包管理工具。
|
||||
|
||||
- aptitude 可以管理软件包的多个版本,并且不使用 /etc/apt/preferences,这会十分直观。
|
||||
|
||||
## 2.2.2. 命令行中的基础软件包管理操作
|
||||
## 命令行中的基础软件包管理操作
|
||||
|
||||
下面是使用 `apt`(8), `aptitude`(8) 和 `apt-get`(8) / `apt-cache`(8) 的命令行基本软件包管理操作。
|
||||
|
||||
@@ -83,7 +83,7 @@ aptitude 命令是最通用的基于 APT 的软件包管理工具。
|
||||
|
||||
更多内容参见 `aptitude`(8) 和位于 “`/usr/share/doc/aptitude/README`” 的 “aptitude 用户手册”。
|
||||
|
||||
## 2.2.3. aptitude 的交互式使用
|
||||
## aptitude 的交互式使用
|
||||
|
||||
此处不会详细解释其使用方式,详见deepin wiki 以及 Debian对其介绍
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 2.4.高级软件包管理操作
|
||||
# 高级软件包管理操作
|
||||
|
||||
## 2.4.1. 命令行中的高级软件包管理操作
|
||||
## 命令行中的高级软件包管理操作
|
||||
|
||||
下面列出一些高级的软件包管理操作,这些操作需要你对软件包管理有一定的了解。
|
||||
约定:尖括号内容为你需要替换的内容。
|
||||
@@ -58,14 +58,14 @@ dpkg 的命令行选项 “--force-all” 和类似的选项(参见 dpkg(1))
|
||||
make-kpkg 命令需要 kernel-package 软件包(参见 第 9.10 节 “内核”)。
|
||||
通用打包参见 第 12.9 节 “制作 Debian 包”.
|
||||
|
||||
## 2.4.2. 验证安装的软件包文件
|
||||
## 验证安装的软件包文件
|
||||
|
||||
已经安装 debsums 软件包的,能使用 debsums(1) 命令通过 "`/var/lib/dpkg/info/*.md5sums`" 文件中的 MD5sum 值,验证已安装的文件。参见第 10.3.5 节 “MD5 校验和”来获得 MD5sum 是怎样工作的信息。
|
||||
::: warning 注意
|
||||
因为 MD5sum 数据库可能被侵入者篡改,debsums(1) 作为安全工具使用有限。这种工具用于校验管理者造成的本地修改或媒体错误造成的损坏是很不错的
|
||||
:::
|
||||
|
||||
## 2.4.3. 预防软件包故障与故障处理
|
||||
## 预防软件包故障与故障处理
|
||||
|
||||
如果你已经加入deepin内测计划,那么我们可能会向你推送不稳定的软件包,这些软件包可能会导致系统崩溃或者其他问题。如果你不想接收这些软件包,可以在控制中心退出内测计划。
|
||||
你需要关注内测SIG群,以便及时了解内测软件包的情况。
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# 2.5.Debian软件包内部管理
|
||||
# Debian软件包内部管理
|
||||
|
||||
deepin 采用了 Debian 的软件包管理机制,所以在 deepin 中,软件包的管理和 Debian 中的软件包管理是一样的。本节将介绍 Debian 中的软件包内部管理机制。
|
||||
|
||||
## 2.5.1. 档案库元数据
|
||||
## 档案库元数据
|
||||
|
||||
每个发行版的元数据文件都保存在 deepin 镜像站的 “dist/codename” 下面,例如 “[https://community-packages.deepin.com/beige/](https://community-packages.deepin.com/beige/)”。档案库的结构可以通过网络浏览器来浏览。其中有 6 种关键的元数据。
|
||||
|
||||
@@ -17,7 +17,7 @@ deepin 采用了 Debian 的软件包管理机制,所以在 deepin 中,软件
|
||||
|
||||
为了减少网络流量,在最近的档案库中,这些元数据存储为压缩了的差分文件。
|
||||
|
||||
## 2.5.2. 顶层“Release”文件及真实性
|
||||
## 顶层“Release”文件及真实性
|
||||
|
||||
::: tip
|
||||
顶层“Release”文件用于签署 secure APT 系统下的归档文件。
|
||||
@@ -61,7 +61,7 @@ MD5Sum:
|
||||
|
||||
因加密签名验证比计算 MD5sum 值消耗更多的 CPU,使用 MD5sum 值来验证每一个软件包,使用加密签名来验证顶层的 "Release" 文件,这种方式提供[较好安全性的同时,也有比较好的性能](http://www.infodrom.org/~joey/Writing/Linux-Journal/secure-apt/) (参见 第 10.3 节 “数据安全基础”).
|
||||
|
||||
## 2.5.3. 档案库层的“Release”文件
|
||||
## 档案库层的“Release”文件
|
||||
|
||||
::: tip
|
||||
档案库层的“Release”文件将用作 apt_preferences(5) 的规则。
|
||||
@@ -91,7 +91,7 @@ Architecture: amd64
|
||||
|
||||
请注意,普通的档案库没有 "NotAutomatic: yes", 默认的 Pin-Priority 值是 500, 而对于有 "NotAutomatic: yes"的特殊档案库, 默认的 Pin-Priority 值是 1 (参见 apt_preferences(5) 和 第 2.7.3 节 “调整候选版本”).
|
||||
|
||||
## 2.5.4. 获取用于软件包的元数据
|
||||
## 获取用于软件包的元数据
|
||||
|
||||
当使用 APT 工具时,如 aptitude, apt-get, synaptic, apt-file, auto-apt,我们需要更新包含 Debian 档案库信息元数据的本地拷贝。这些本地拷贝的文件名称,和在 "/etc/apt/sources.list" 文件里面的 distribution, area, architecture 相应名称一致。 (参见 第 2.1.4 节 “Debian 档案库基础”).
|
||||
|
||||
@@ -109,21 +109,21 @@ Architecture: amd64
|
||||
|
||||
"Contents-architecture"元数据的本地拷贝,能够被"apt-file update"更新,它的位置和其它 4 个不同。参见 apt-file(1). (auto-apt 的 "Contents-architecture.gz"文件的本地拷贝默认也使用不同的位置。)
|
||||
|
||||
## 2.5.5. APT 的软件包状态
|
||||
## APT 的软件包状态
|
||||
|
||||
除了远程获取元数据,lenny 之后的 APT 工具还会将它在本地产生的安装状态信息保存在 “/var/lib/apt/extended_states” 中,APT 会使用它们来追踪自动安装的所有软件包。
|
||||
|
||||
## 2.5.6. aptitude 的软件包状态
|
||||
## aptitude 的软件包状态
|
||||
|
||||
除了远程获取元数据,aptitude 命令还会将它在本地产生的安装状态信息保存在 “/var/lib/aptitude/pkgstates” 中,这些信息只能被 aptitude 使用。
|
||||
|
||||
## 2.5.7. 获取的软件包的本地副本
|
||||
## 获取的软件包的本地副本
|
||||
|
||||
所有通过 APT 机制远程获取的软件包都被保存在 “/var/cache/apt/archives” 中,直到它们被清除。
|
||||
|
||||
aptitude 的这个缓存文件清理策略,能够在"Options" → "Preferences"下设置,也可以通过它的菜单,"Actions"下的"Clean package cache" 或 "Clean obsolete files" 来执行强制清理。
|
||||
|
||||
## 2.5.8. deepin 软件包文件名称
|
||||
## deepin 软件包文件名称
|
||||
|
||||
deepin 软件包名称和Debian 软件包名称类似,但是有一些不同。
|
||||
|
||||
@@ -149,7 +149,7 @@ deepin.revision 的格式为:
|
||||
3. 若需要集成native软件包到deepin,则应改为quilt格式 遵循条例2
|
||||
4. CI自动构建版本号 `x.y.z-${ver1}deepin${ver2}+u001+rb1`,001为距离上一次修改changelog的commit次数,rb1为rebuild次数,依次累加
|
||||
|
||||
## 2.5.9. dpkg 命令
|
||||
## dpkg 命令
|
||||
|
||||
dpkg(1) 是 Debian 软件包管理中最底层的工具。它非常强大,必须小心使用。
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# 2.6.从损坏的系统中恢复
|
||||
# 从损坏的系统中恢复
|
||||
|
||||
当运行 测试版 或 不稳定版 系统,系统管理员会遇到从错误的软件包管理进行恢复的情形
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
下面的一些方法具有很高的风险,可能会导致系统无法启动,或者导致数据丢失。请谨慎操作。
|
||||
:::
|
||||
|
||||
## 2.6.1. 缺少依赖导致的安装失败
|
||||
## 缺少依赖导致的安装失败
|
||||
|
||||
如果你通过"sudo dpkg -i ..."强制安装一个软件包到系统,而不安装它所依赖的所有软件包,这个软件包将作为“部分安装”而失败。
|
||||
|
||||
@@ -21,19 +21,19 @@ dpkg --configure -a
|
||||
最好参照[2.3节](2.3.为deepin添加来自debian或ubuntu的软件包.md)的内容进行解决。
|
||||
:::
|
||||
|
||||
## 2.6.2. 软件包数据缓存错误
|
||||
## 软件包数据缓存错误
|
||||
|
||||
软件包数据缓存错误,能够造成奇怪的错误,比如 APT 的 "GPG error: ... invalid: BADSIG ..."。
|
||||
|
||||
你应该通过 "`sudo rm -rf /var/lib/apt/*`" 删除所有缓存的数据,然后重新尝试。(如果使用了`apt-cacher-ng`,你还应运行"`sudo rm -rf /var/cache/apt-cacher-ng/*`"。)
|
||||
|
||||
## 2.6.3. 不兼容旧的用户配置
|
||||
## 不兼容旧的用户配置
|
||||
|
||||
如果一个桌面 GUI 程序在重要的上游版本升级后变得不稳定,你应该怀疑这是旧的本地配置文件(由它创建的)所导致的。如果它在新建的用户账号下运行稳定,那么这个假设就得到了证实。(这是一个打包的 bug 并且打包者通常会避免它。)
|
||||
|
||||
为了恢复稳定,你应该移除相应的本地配置文件并重新启动 GUI 程序。你可能需要阅读旧的配置文件内容以便之后恢复配置信息。(别将它们删得太快了。)
|
||||
|
||||
## 2.6.4. 具有相同文件的不同软件包
|
||||
## 具有相同文件的不同软件包
|
||||
|
||||
文档级的软件包管理系统,比如说 aptitude(8) 或 apt-get(1), 使用软件包依赖,当出现相同文件时,不会尝试去安装软件包。(参见 第 2.1.6 节 “软件包依赖关系”).
|
||||
|
||||
@@ -48,7 +48,7 @@ dpkg --configure -a
|
||||
sudo dpkg -P <old-package>
|
||||
```
|
||||
|
||||
## 2.6.5. 修复损坏的软件包脚本
|
||||
## 修复损坏的软件包脚本
|
||||
|
||||
当软件包脚本中的一个命令由于某些原因返回错误,脚本也将由于错误而退出,软件包管理系统忽略它们的行为,并导致部分安装的软件包。当一个软件包在它的删除脚本中有错误时,该软件包将会成为不可能删除的软件包,处理这些问题,都会变得相当棘手。
|
||||
|
||||
@@ -64,7 +64,7 @@ sudo dpkg -P <old-package>
|
||||
- 在行首添加 “#” 可以禁用出错的行
|
||||
- 在出错行的行尾添加 “|| true” 可以强制返回成功
|
||||
|
||||
## 2.6.6. 使用 dpkg 命令进行救援
|
||||
## 使用 dpkg 命令进行救援
|
||||
|
||||
因为 dpkg 是非常底层的软件包工具,它可以在很糟糕的情况下进行工作,例如无法启动系统且没有网络连接。让我们假定 foo 软件包损坏了,并且需要更换。
|
||||
|
||||
@@ -108,7 +108,7 @@ sudo dpkg --root /target -i /path/to/foo_old_version_arch.deb
|
||||
如果你无视之前的提醒,义无反顾的使用混源方式安装软件包,导致系统损坏,建议直接备份数据,在保留home目录的情况下,重新安装系统。
|
||||
:::
|
||||
|
||||
## 2.6.7. 恢复软件包选择数据
|
||||
## 恢复软件包选择数据
|
||||
|
||||
如果 “`/var/lib/dpkg/status`” 因为某种原因出现错误,Debian 系统会丢失软件包选择数据并受到严重影响。寻找位于 “`/var/lib/dpkg/status-old`” 或 “`/var/backups/dpkg.status.*`” 中旧的 “`/var/lib/dpkg/status”`" 文件。
|
||||
|
||||
@@ -135,6 +135,6 @@ sort ls1.txt | uniq | less
|
||||
|
||||
然后你就可以根据软件包名称来进行安装了。(可能会有一些非软件包名称,例如 “texmf”。)
|
||||
|
||||
## 2.6.8deepin软件包损坏以及修复方式
|
||||
## deepin软件包损坏以及修复方式
|
||||
|
||||
如果和桌面环境相关的软件包损坏,可以尝试安装deepin-desktop-base进行修复
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 2.7. 软件包管理技巧
|
||||
# 软件包管理技巧
|
||||
|
||||
## 2.7.1. 如何挑选合适的deepin 软件包
|
||||
## 如何挑选合适的deepin 软件包
|
||||
|
||||
你可以根据 aptitude 这个包管理工具中的软件包描述或者是任务面板下的列表信息,来查找你所需要的软件包。
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
更新日志:维护者经常的更新(可以在deepin-community仓库中查看)
|
||||
|
||||
## 2.7.2. 混合源档案库中的软件包
|
||||
## 混合源档案库中的软件包
|
||||
|
||||
::: warning 小心
|
||||
从混合源档案库中安装软件包是不被 deepin 官方发行版所支持的,除了一些特殊情况,比如某个软件的安装方式指定需要你添加软件源
|
||||
@@ -56,7 +56,7 @@ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
|
||||
为避免短期出现坏的软件包,从非官方支持的档案库安装二进制软件包通常是一个坏注意。即使你在使用 apt-pinning 情况下,也是这样的。(参见 第 2.7.3 节 “调整候选版本”).你应当考虑使用 chroot 或类似技术(参见 第 9.11 节 “虚拟化系统”)来运行不同档案库的程序。
|
||||
:::
|
||||
|
||||
## 2.7.3. 调整候选版本
|
||||
## 调整候选版本
|
||||
|
||||
::: danger 警告
|
||||
⚠️新手用 apt-pinning 命令会造成比较大的问题。你必须避免使用这个命令除非确实需要它。
|
||||
@@ -125,14 +125,14 @@ NotAutomatic 和 ButAutomaticUpgrades 的档案是由档案库服务器上档案
|
||||
- 档案库 (在 "/etc/apt/preferences" 文件作为"Package: *"定义) 的 Pin-Priority 值,列在所有档案库路径的左边,
|
||||
例如,"100 <http://deb.debian.org/debian/> bullseye-backports/main Packages".
|
||||
|
||||
## 2.7.4. 更新和向后移植
|
||||
## 更新和向后移植
|
||||
|
||||
::: warning 注意
|
||||
deepin 不建议使用换源的方式进行大版本的更新,因为这样会导致系统的不稳定,建议使用 deepin 官方提供的升级工具进行升级。
|
||||
或者按照后续补充文档教程进行更新
|
||||
:::
|
||||
|
||||
## 2.7.5. 阻止推荐的软件包的安装
|
||||
## 阻止推荐的软件包的安装
|
||||
|
||||
::: danger 警告
|
||||
⚠️新手用 apt-pinning 命令会造成比较大的问题。你必须避免使用这个命令除非确实需要它。
|
||||
@@ -150,7 +150,7 @@ Pin: version *
|
||||
Pin-Priority: -1
|
||||
```
|
||||
|
||||
## 2.7.6. 使用testing档案库
|
||||
## 使用testing档案库
|
||||
|
||||
deepin使用testing档案库的方法如下:
|
||||
控制中心申请加入内测。然后更新你的软件包即可
|
||||
@@ -159,7 +159,7 @@ deepin使用testing档案库的方法如下:
|
||||
内测更新后,不支持降级到稳定版本,如果你想要降级到稳定版本,可以使用备份还原的方式,或者退出内测后等待稳定版本发布。
|
||||
:::
|
||||
|
||||
## 2.7.7. 自动下载和升级软件包
|
||||
## 自动下载和升级软件包
|
||||
|
||||
::: danger 警告
|
||||
⚠️新手用 apt-pinning 命令会造成比较大的问题。你必须避免使用这个命令除非确实需要它。
|
||||
@@ -183,7 +183,7 @@ APT::Periodic::Download-Upgradeable-Packages "1";
|
||||
APT::Periodic::Unattended-Upgrade "0";
|
||||
```
|
||||
|
||||
## 2.7.8. 限制 APT 的下载带宽
|
||||
## 限制 APT 的下载带宽
|
||||
|
||||
如果你想限制 APT 的下载带宽到 800Kib/sec(=100KiB/sec),你应该像下面那样设置 APT 的配置参数。
|
||||
|
||||
@@ -191,7 +191,7 @@ APT::Periodic::Unattended-Upgrade "0";
|
||||
APT::Acquire::http::Dl-Limit "800";
|
||||
```
|
||||
|
||||
## 2.7.9. 上传软件包的是谁?
|
||||
## 上传软件包的是谁?
|
||||
|
||||
尽管 “/var/lib/dpkg/available” 和 “/usr/share/doc/package_name/changelog” 中列出的维护者姓名提供了关于“软件包运作的幕后者是谁”这一问题的一些信息,
|
||||
但软件包的实际上传者依旧不明。devscripts 软件包中的 who-uploads(1) 可以识别 deepin 源软件包的实际上传者。
|
||||
|
||||
Reference in New Issue
Block a user