guide.deepin.org/docs/deepin进阶教程/2.deepin软件包管理/2.3.为deepin添加来自debian或ubuntu的软件包.md
xzl 9d8e013626
docs:update docs (#19)
* docs: update docs

Log:

* docs: update docs

Log:
2023-03-02 15:20:40 +08:00

92 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 为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`鼠标右键复制链接地址打开终端选择一个合适的目录使用dget命令下载源码包
![image-20230217101546660](./image-20230217101546660.png)
```shell
dget 来自devscripts工具包可以同步下载orig等压缩包终端进行安装 apt install devscripts
dget 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`。
### 2. 解压源码包
```shell
dpkg-source -x neofetch_7.1.0-1.dsc
```
你可以获得一个`neofetch-7.1.0`的目录,进入目录,可以看到`debian`目录这个目录就是debian的源码包。
:::tip
注意检查源码中是否包含发行版的判断比如debian/rules、CMakeList 等构建时的判断检查等
:::
### 3. 检查依赖
```shell
进入源码目录执行dpkg-checkbuilddeps
```
shell会提示你缺少哪些依赖这里是`dh-autoreconf`使用apt安装即可。
```shell
sudo apt install dh-autoreconf
```
部分依赖源内有,但是需要检查一下版本是否满足要求。如果不满足,则需要对依赖包进行打包。(重复上述步骤)
### 4. 打包
建议使用pbuild/sbuild进行打包验证详情参考[sbuild](https://wiki.ubuntu.com/SimpleSbuild) [pbuilder](https://wiki.ubuntu.com/PbuilderHowto)这些打包工具可以更方便帮助打包且不污染宿主机环境但是请注意这里我们默认您有一些基础的知识如仓库的添加编写基础的脚本。打包完成后您会得到对应的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仓库中。
::: tip
建议软件包来源为Debian或者自己打包的软件包这样可以保证软件包的一致性。
:::
具体要求在[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)