![无法在 Debian 上安装 PPA 包](https://linux22.com/image/223530/%E6%97%A0%E6%B3%95%E5%9C%A8%20Debian%20%E4%B8%8A%E5%AE%89%E8%A3%85%20PPA%20%E5%8C%85.png)
我尝试安装斯勒使用官方 Debian CreatePackageFromPPA指导但尚未成功。
确认Debian上没有提供 搜索
安装 Debian SDK
$ sudo apt install devscripts build-essential
- 找到更改文件的链接,然后下载
$ dget --extract --allow-unauthenticated https://launchpad.net/~sile-typesetter/+archive/ubuntu/sile/+files/sile_0.14.10-1ppa1~ubuntu22.10_source.changes
dget: retrieving https://launchpad.net/~sile-typesetter/+archive/ubuntu/sile/+files/sile_0.14.10-1ppa1~ubuntu22.10_source.changes
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
100 1594 100 1594 0 0 625 0 0:00:02 0:00:02 --:--:-- 2033
dget: retrieving https://launchpad.net/~sile-typesetter/+archive/ubuntu/sile/+files/sile_0.14.10-1ppa1~ubuntu22.10.dsc
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
100 2169 100 2169 0 0 759 0 0:00:02 0:00:02 --:--:-- 4252
dget: retrieving https://launchpad.net/~sile-typesetter/+archive/ubuntu/sile/+files/sile_0.14.10.orig.tar.xz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
100 2776k 100 2776k 0 0 706k 0 0:00:03 0:00:03 --:--:-- 1096k
dget: retrieving https://launchpad.net/~sile-typesetter/+archive/ubuntu/sile/+files/sile_0.14.10-1ppa1~ubuntu22.10.debian.tar.xz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
100 5892 100 5892 0 0 2312 0 0:00:02 0:00:02 --:--:-- 4849
dget: retrieving https://launchpad.net/~sile-typesetter/+archive/ubuntu/sile/+files/sile_0.14.10-1ppa1~ubuntu22.10_source.buildinfo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
curl: (22) The requested URL returned error: 404 Not Found
dget: curl sile_0.14.10-1ppa1~ubuntu22.10_source.buildinfo https://launchpad.net/~sile-typesetter/+archive/ubuntu/sile/+files/sile_0.14.10-1ppa1~ubuntu22.10_source.buildinfo failed
dpkg-source: info: extracting sile in sile-0.14.10
dpkg-source: info: unpacking sile_0.14.10.orig.tar.xz
dpkg-source: info: unpacking sile_0.14.10-1ppa1~ubuntu22.10.debian.tar.xz
- 建造
$ cd sile-0.14.10/
sudo mk-build-deps --install --remove
dpkg-buildpackage: info: source package sile-build-deps
dpkg-buildpackage: info: source version 0.14.10-1ppa1~ubuntu22.10
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Equivs Dummy Package Generator <root@pc>
dpkg-buildpackage: info: host architecture amd64
dpkg-source --before-build .
debian/rules clean
dh clean
dh_clean
debian/rules binary
dh binary
dh_update_autotools_config
dh_autoreconf
create-stamp debian/debhelper-build-stamp
dh_prep
dh_install
dh_installdocs
dh_installchangelogs
dh_perl
dh_link
dh_strip_nondeterminism
dh_compress
dh_fixperms
dh_missing
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dpkg-deb: building package 'sile-build-deps' in '../sile-build-deps_0.14.10-1ppa1~ubuntu22.10_all.deb'.
dpkg-genbuildinfo --build=binary
dpkg-genchanges --build=binary >../sile-build-deps_0.14.10-1ppa1~ubuntu22.10_amd64.changes
dpkg-genchanges: info: binary-only upload (no source code included)
dpkg-source --after-build .
dpkg-buildpackage: info: binary-only upload (no source included)
The package has been created.
Attention, the package has been created in the current directory,
not in ".." as indicated by the message above!
Selecting previously unselected package sile-build-deps.
Preparing to unpack sile-build-deps_0.14.10-1ppa1~ubuntu22.10_all.deb ...
Unpacking sile-build-deps (0.14.10-1ppa1~ubuntu22.10) ...
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Correcting dependencies...Starting pkgProblemResolver with broken count: 1
Starting 2 pkgProblemResolver with broken count: 1
Investigating (0) sile-build-deps:amd64 < 0.14.10-1ppa1~ubuntu22.10 @iU mK Nb Ib >
Broken sile-build-deps:amd64 Depends on lua-cassowary:amd64 < none @un H >
Removing sile-build-deps:amd64 because I can't find lua-cassowary:amd64
Done
Done
Starting pkgProblemResolver with broken count: 0
Starting 2 pkgProblemResolver with broken count: 0
Done
The following packages will be REMOVED:
sile-build-deps
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 9,216 B disk space will be freed.
Do you want to continue? [Y/n] y
mk-build-deps: Unable to install sile-build-deps at /usr/bin/mk-build-deps line 457.
mk-build-deps: Unable to install all build-dep packages
- 安装
$ dpkg-buildpackage --build=binary --no-sign
dpkg-buildpackage: info: source package sile
dpkg-buildpackage: info: source version 0.14.10-1ppa1~ubuntu22.10
dpkg-buildpackage: info: source distribution kinetic
dpkg-buildpackage: info: source changed by Caleb Maclennan <[email protected]>
dpkg-buildpackage: info: host architecture amd64
dpkg-source --before-build .
dpkg-checkbuilddeps: error: Unmet build dependencies: lua-cassowary lua-cldr lua-cliargs lua-compat53 lua-cosmo lua-epnf lua-fluent lua-linenoise lua-loadkit lua-penlight (>= 1.6.0) lua-repl lua-utf8 lua-vstruct lua-zlib-dev
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting
dpkg-buildpackage: warning: (Use -d flag to override.)
从上面可以看出安装失败。与示例中的 pogo 不同,Sile 在其存储库中还有一堆其他包,它们与依赖项的名称相匹配,因此它们可能是先决条件。然而,该指南没有涵盖这种情况,所以我陷入困境。我是否需要使用此方法手动安装每个缺少的依赖项?如果有更好的解决方案需要更少的手动工作,我完全愿意接受。
答案1
你失踪了建造不属于 Debian 的依赖项。仅当所有依赖项都已在 Debian 中时(mk-build-deps
运行时它们由虚拟包拉取),您遵循的过程才有效。
在这种情况下,依赖项仅存在,ppa
因此您有两个选择:
逐一构建它们(可能有正确的顺序来满足内部依赖关系)
将其添加
ppa
到您的sources.list中,然后直接安装二进制文件或运行相同的过程,然后将从.txt文件中提取缺少的构建依赖项(以二进制形式)ppa
。
对于第二个选项,您可以执行以下操作:
$ sudo add-apt-repository ppa:sile-typesetter/sile
这将在/etc/apt/sources.list.d
命名中添加一个文件sile-typesetter...
如果您只想要二进制文件,请继续安装sile
:
$ sudo apt-get install sile
如果您想从源代码构建,请取消注释deb-src
该文件中的行,运行apt-get update
,然后您就可以执行之前的操作,因为 mk-build-deps 应该能够找到构建依赖项包(来自 ppa)。