docs: update docs

Log:
This commit is contained in:
xiangzelong
2023-02-17 11:48:24 +08:00
parent b7f717175f
commit 881c57fccd
6 changed files with 203 additions and 703 deletions

View File

@@ -19,7 +19,7 @@
## 2.1.2. 基本的注意事项
::: warning
不要从任何的混合套件中安装软件包。它可能会打破软件包的一致性,这需要你要深厚的系统管理知识,例如 ABI 编译器、库版本和解释器特性等等。
不要从任何的混合中安装软件包。它可能会打破软件包的一致性,这需要你要深厚的系统管理知识,例如 ABI 编译器、库版本和解释器特性等等。
比如不要混用deepin v20和 v23的源也不能混用debian和deepin源如果因为混源导致任何问题请自行承担社区将不会为此花费精力。
:::
@@ -43,7 +43,7 @@ deepin 系统默认只会提供软件的 stable 版本,除非你加入了测
上述对 deepin 软件包管理系统做的行为所导致的不兼容影响可能会使你的系统无法使用。
负责有关键任务的服务器的严谨的 Debian 系统系统管理员,应该使用额外的预防措施。
负责有关键任务的服务器的严谨的 deepin 系统系统管理员,应该使用额外的预防措施。
## 2.1.3. 持续升级的生活
@@ -61,9 +61,10 @@ deepin 系统默认只会提供软件的 stable 版本,除非你加入了测
## 2.1.4.deepin源
deepin源的指定在`/etc/apt/sources.list`文件下例如现在的v23 baige系统
deepin源的指定在`/etc/apt/sources.list`文件下例如现在的v23 beige系统
```Plain Text
```Text
https://community-packages.deepin.com/beige/ beige main commercial community
```

View File

@@ -0,0 +1,110 @@
# 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`
尽管 `aptitude` 是作者主要使用的一个非常好的可互动工具,但不建议使用其进行跨版本升级。
apt-get 和 apt-cache 是最基础 的基于 APT 的软件包管理工具。
- apt-get 和 apt-cache 只提供命令行用户界面。
- apt-get 是进行跨版本的主系统升级等操作的最合适工具。
- apt-get 提供了一个强大的软件包依赖解析器。
- apt-get 对硬件资源的要求不高。它消耗更少的内存并且运行速度更快。
- apt-cache 提供了一个 标准的正则表达式来搜索软件包名称和描述。
- apt-get 和 apt-cache 可以使用 /etc/apt/preferences 来管理软件包的多个版本,但这非常繁琐。
apt 命令是一个用于软件包管理的高级命令行界面。它基本上是 apt-get、apt-cache 和类似命令的一个封装,被设计为针对终端用户交互的界面,它默认启用了某些适合交互式使用的选项。
- apt 工具在用户使用 apt install 安装软件包时提供了一个友好的进度条。
- 在成功安装下载的软件包后apt 将默认删除缓存的 .deb 软件包。
建议用户使用新的 apt(8) 命令用于 交互式的使用场景,而在 shell 脚本中使用 apt-get(8) 和apt-cache(8) 命令。
aptitude 命令是最通用的基于 APT 的软件包管理工具。
- aptitude 提供了一个全屏的交互式文本用户界面。
- aptitude 同样也提供了一个命令用户界面。
- aptitude 是用于日常软件包管理(例如检查已安装的软件包和搜索可用的软件包)的最合适工具。
- aptitude 对硬件资源的要求更高。它消耗更多的内存并且运行速度更慢。
- aptitude 提供一个增强的正则表达式来搜索所有的软件包元数据。
- aptitude 可以管理软件包的多个版本,并且不使用 /etc/apt/preferences这会十分直观。
## 2.2.2. 命令行中的基础软件包管理操作
下面是使用 `apt`(8), `aptitude`(8) 和 `apt-get`(8) / `apt-cache`(8) 的命令行基本软件包管理操作。
|apt 语法|aptitude 语法|apt-get / apt-cache 语法|说明|
|-|-|-|-|
|apt update|aptitude update|apt-get update|更新软件包档案库元数据|
|apt install foo|aptitude install foo|apt-get install foo|安装 “foo” 软件包的候选版本以及它的依赖|
|apt upgrade|aptitude safe-upgrade|apt-get upgrade|安装已安装的软件包的候选版本并且不移除任何其它的软件包|
|apt full-upgrade|aptitude full-upgrade|apt-get dist-upgrade|安装已安装的软件包的候选版本,并且需要的话会移除其它的软件包|
|apt remove foo|aptitude remove foo|apt-get remove foo|移除 “foo” 软件包,但留下配置文件|
|apt autoremove|N/A|apt-get autoremove|移除不再需要的自动安装的软件包|
|apt purge foo|aptitude purge foo|apt-get purge foo|清除 “foo” 软件包的配置文件|
|apt clean|aptitude clean|apt-get clean|完全清除本地仓库的软件包检索文件|
|apt autoclean|aptitude autoclean|apt-get autoclean|清除本地仓库中过时软件包的软件包检索文件|
|apt show foo|aptitude show foo|apt-cache show foo|显示 “foo” 软件包的详细信息|
|apt search 正则表达式|aptitude search regex|apt-cache search regex|搜索匹配 regex 的软件包|
|N/A|aptitude why regex|N/A|解释匹配 regex 的软件包必须被安装的原因|
|N/A|aptitude why-not regex|N/A|解释匹配 regex 的软件包不必安装的原因|
|N/A|aptitude search '~i!~M'|apt-mark showmanual|列出手动安装的软件包|
不建议使用apt autoremove,因为这会损害到某些打包不规范的包。
`apt` / `apt-get``aptitude` 能够混用,没有大问题。
`aptitude why regex`” 可以通过 “`aptitude -v why regex`” 列出更多的信息。类似的信息可以通过"`apt rdepends package`" 或 “`apt-cache rdepends package`” 获取。
`aptitude` 命令在命令行模式下启动后遇到了一些问题(例如软件包冲突),你可以在之后的提示中按下 “`e`” 键切换到全屏的交互模式。
你可以在 “`aptitude`” 后面使用的命令选项。
|命令选项|说明|
|-|-|
|-s|模拟命令的结果|
|-d|仅下载,不进行安装/更新|
|-D|在自动安装和删除前,显示简要的说明|
更多内容参见 `aptitude`(8) 和位于 “`/usr/share/doc/aptitude/README`” 的 “aptitude 用户手册”。
## 2.2.3. aptitude 的交互式使用
此处不会详细解释其使用方式详见deepin wiki 以及 debian对其介绍
aptitude按键绑定
|快捷键|键绑定功能|
|-|-|
|F10 或 Ctrl-t|菜单|
|?|显示按键帮助(更加完整的清单)|
|F10 → 帮助 → 用户手册|显示用户手册|
|u|更新软件包档案库信息|
|+|标记该软件包以便升级或安装|
|-|标记该软件包以便移除(保留配置文件)|
|_|标记该软件包以便清除(移除配置文件)|
|=|将软件包设为保持状态|
|U|标记所有可升级包(动作如同 full-upgrade|
|g|开始 下载 并 安装 所选择包|
|q|退出该界面并保存变更|
|x|退出该界面并清除变更|
|Enter|查看软件包的信息|
|C|查看软件包的变更记录|
|l|变更软件包的显示限制|
|/|搜寻匹配的第一个软件包|
|\|重复上一个搜索|

View File

@@ -0,0 +1,86 @@
# 为deepin添加来自debian或者ubuntu的软件包
目前deepin v23需要自行维护软件源如果你想要添加来自debian或者ubuntu的软件包可以参考下面的方法。
::: warning
不要从任何的混合源中安装软件包。它可能会打破软件包的一致性,这需要你要深厚的系统管理知识,例如 ABI 编译器、库版本和解释器特性等等。
:::
## 从debian添加软件包
### 1. 寻找合适的软件包
这里以neofetch为例子首先在debian的软件包列表中搜索neofetch找到对应的软件包这里是`neofetch`
1. 在此网站中搜索软件包[debian packages search](https://packages.debian.org/index)
2. 选择合适的软件包deepin v23 是从debian11开始转向上游维护的所以可以选择debian11以及以上的软件包但是不建议选择unstable的软件包。同时需要注意需要选择正确的架构这里是amd64。
3. 下载软件包对应的源码包在web页面右侧下载源码包栏目内选择对应的源码包这里是`neofetch_7.1.0-1.dsc`鼠标右键复制链接地址打开终端选择一个合适的目录使用wget命令下载源码包
![image-20230217101546660](./image-20230217101546660.png)
```shell
wget https://deb.debian.org/debian/pool/main/n/neofetch/neofetch_7.1.0-1.dsc
```
同栏目的其他文件同理,这里是`neofetch_7.1.0.orig.tar.xz``neofetch_7.1.0-1.debian.tar.xz`
```bash
wget https://deb.debian.org/debian/pool/main/n/neofetch/neofetch_7.1.0.orig.tar.xz
wget https://deb.debian.org/debian/pool/main/n/neofetch/neofetch_7.1.0-1.debian.tar.xz
```
### 2. 解压源码包
```shell
dpkg-source -x neofetch_7.1.0-1.dsc
```
你可以获得一个`neofetch-7.1.0`的目录,进入目录,可以看到`debian`目录这个目录就是debian的源码包。
### 3. 检查依赖
```shell
dpkg-checkbuilddeps
```
shell会提示你缺少哪些依赖这里是`dh-autoreconf`使用apt安装即可。
```shell
sudo apt install dh-autoreconf
```
部分依赖源内有,但是需要检查一下版本是否满足要求。如果不满足,则需要对依赖包进行打包。(重复上述步骤)
### 4. 打包
```shell
dpkg-buildpackage -b -uc -us
```
这里会在上级目录生成一个`neofetch_7.1.0-1_amd64.deb`的软件包,这个软件包就可以安装了。
### 5. 安装
```shell
sudo dpkg -i neofetch_7.1.0-1_amd64.deb // [!code error]
```
上述操作是错误的,还记得我们之前的提示吗,不要使用`dpkg -i`安装软件包,这里我们使用`apt install`安装。
```shell
sudo apt install ./neofetch_7.1.0-1_amd64.deb
```
apt会自动解决依赖关系安装完成后可以使用`neofetch`命令查看效果。
## 从ubuntu添加软件包
和debian类似ubuntu也有一个软件包搜索网站
[packages.ubuntu.com](https://packages.ubuntu.com/)
在这里搜索软件包剩下的步骤和debian类似。
## 从其他源添加软件包
如果你想要添加来自其他源的软件包,可以参考上述步骤,但是需要注意的是,其他源的软件包可能会有一些不兼容的问题,需要自行解决。
## 为deepin 贡献来自其他发行版的软件包
如果你想要为deepin贡献来自其他发行版的软件包可以参考上述步骤进行打包安装验证确定没有问题后可以提交到deepin-community仓库deepin社区会进行审核审核通过后会合并到deepin仓库中。
具体要求在[deepin-wiki](https://wiki.deepin.org/zh/01_deepin%E9%85%8D%E5%A5%97%E7%94%9F%E6%80%81/01_deepin%E5%85%A5%E9%97%A8/02_%E5%BC%80%E5%8F%91%E7%9B%B8%E5%85%B3/02_%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%8D%97/deepin-community%E5%8D%8F%E4%BD%9C%E6%B5%81%E7%A8%8B)

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB