[Share Experiences] 在 deepin 上安装 makedeb
Tofloor
poster avatar
SamLukeYes
deepin
2022-04-23 04:27
Author

在 Arch Linux 上,打包是一件很简单的事情。只要按照现成的模板写好一个 PKGBUILD 文件,再 makepkg -si 就可以一键下载源文件、构建并安装软件包。想要修改软件包也很容易,只要修改 PKGBUILD 并重新构建即可。而 Debian 系的打包……反正我到现在还没搞清楚怎么规范地修改一个 deb 包tail

有没有办法像 Arch 一样,仅凭一个 PKGBUILD 文件来构建 deb 包呢?还真有人实现了这样的一个工具。Arch Linux 的打包程序叫 makepkg,相应的根据 PKGBUILD 来生成 deb 包的工具就叫做 makedeb。

要安装 makedeb,推荐的方式是从官方的 apt 仓库安装。首先导入公钥:

wget -qO - 'https://proget.hunterwittenborn.com/debian-feeds/makedeb.pub' | gpg --dearmor | sudo tee /usr/share/keyrings/makedeb-archive-keyring.gpg &> /dev/null

然后添加软件仓库:

echo 'deb [signed-by=/usr/share/keyrings/makedeb-archive-keyring.gpg arch=all] https://proget.hunterwittenborn.com/ makedeb main' | sudo tee /etc/apt/sources.list.d/makedeb.list
sudo apt update

接下来就是安装 makedeb 了:

sudo apt install makedeb

如果你的 deepin 版本是 23 nightly,按照上述命令安装后应该就可以正常使用了。但如果是 deepin 20,由于 apt 版本太低,不支持 apt satisfy 命令,无法使用最新版的 makedeb,可用的最高版本是 9.0.3,需改用下列命令安装:

sudo apt install 'makedeb=9.0.3-1'
sudo apt-mark hold makedeb

接下来就可以开始打包了。PKGBUILD 的格式规范可以参考 man PKGBUILD。正如 Arch Linux 的 AUR 一样,makedeb 也有用于收录各种 PKGBUILD 的 MPR,可以通过 MPR helper 来比较方便地安装来自 MPR 的软件包。但是请注意,MPR 上的软件包是没有质量把关的,原则上需要用户自行审查 PKGBUILD。

Reply Favorite View the author
All Replies
deepin-superuser
deepin
2022-04-23 05:18
#1

markkissing_heart

Reply View the author
andktan
deepin
2022-04-23 05:42
#2

好东西要顶🔝

Reply View the author
depend
deepin
2022-04-24 17:31
#3

这可真是好东西啊

Reply View the author
deepin-chinaren
deepin
2022-08-20 00:37
#4

echo'deb [signed-by=/usr/share/keyrings/makedeb-archive-keyring.gpg arch=all] https://proget.hunterwittenborn.com/ makedeb main' | sudo tee /etc/apt/sources.list.d/makedeb.list

是不是不对呀,不应有前面的echo'

Reply View the author
deepin-chinaren
deepin
2022-08-20 00:38
#5
It has been deleted!
SamLukeYes
deepin
2022-08-20 00:51
#6
deepin-chinaren

echo'deb [signed-by=/usr/share/keyrings/makedeb-archive-keyring.gpg arch=all] https://proget.hunterwittenborn.com/ makedeb main' | sudo tee /etc/apt/sources.list.d/makedeb.list

是不是不对呀,不应有前面的echo'

该不会是把整个命令给写到文件里去了吧scream

如果手动编辑文件的话,只要单引号中的内容即可。

Reply View the author
depend
deepin
2023-08-09 23:00
#7
SamLukeYes

该不会是把整个命令给写到文件里去了吧scream

如果手动编辑文件的话,只要单引号中的内容即可。

我想问一下我在使用deepinv20和debian testing都遇到了同样的问题,makedeb能够安装,但是mist装不了,就是rustup这个找不到,导致PKGBUILD无法编译

image.png

Reply View the author