无法在 Debian 上安装 PPA 包

无法在 Debian 上安装 PPA 包

我尝试安装斯勒使用官方 Debian CreatePackageFromPPA指导但尚未成功。

  1. 确认Debian上没有提供 搜索

  2. 安装 Debian SDK

$ sudo apt install devscripts build-essential
  1. 找到更改文件的链接,然后下载
$ 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
  1. 建造
$ 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
  1. 安装
$ 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)。

相关内容