我有一台运行 Debian 11 的开发机器,它目前是我们设备主机的标准环境。我使用 VNC(TigerVNC 服务器)从我的工作计算机远程访问它。问题是 Debian 11 附带的 TigerVNC 有一个非常烦人的错误,会干扰我的工作。
该错误早已修复,但是没有官方的反向移植,并且据我所知,Debian 11 的反向移植已经停止。
因此,解决问题的唯一方法是手动反向移植 TigerVNC。
我尝试遵循Faheem Mitha 的反向移植指南,因为它似乎是最适合这种情况的方法,需要特定于 Debian 的配置和构建。我设法进入第 4 步:
debuild -uc -us
dpkg-buildpackage -us -uc -ui
dpkg-buildpackage: info: source package tigervnc
dpkg-buildpackage: info: source version 1.12.0+dfsg-8~bpo11+1
dpkg-buildpackage: info: source distribution bullseye-backports
dpkg-buildpackage: info: source changed by
dpkg-source --before-build .
dpkg-buildpackage: info: host architecture amd64
dpkg-source: info: using options from tigervnc-1.12.0+dfsg/debian/source/options: --single-debian-patch --create-empty-orig
dpkg-checkbuilddeps: error: Unmet build dependencies: libxft-dev libxcursor-dev libxrandr-dev libxdamage-dev libwrap0-dev xorg-server-source (>= 2:21) xserver-xorg-dev appstream quilt bison flex x11proto-dev (>= 2021.5) libxcvt-dev libxfont-dev (>= 1:2.0.1) libxkbfile-dev (>= 1:0.99.1) libpciaccess-dev (>= 0.12.901) libgcrypt-dev libudev-dev (>= 151-3) libselinux1-dev (>= 2.0.80) libaudit-dev libdrm-dev (>= 2.4.107-5~) mesa-common-dev libunwind-dev libxmuu-dev (>= 1:0.99.1) libxrender-dev (>= 1:0.9.0) libxi-dev (>= 2:1.8) libxpm-dev (>= 1:3.5.3) libxaw7-dev (>= 1:0.99.1) libxmu-dev (>= 1:0.99.1) libxtst-dev (>= 1:0.99.1) libxres-dev (>= 1:0.99.1) libxfixes-dev (>= 1:3.0.0) libxv-dev libxinerama-dev libxshmfence-dev (>= 1.1) libepoxy-dev libegl-dev (>= 1.3.2) libgbm-dev (>= 10.2) libbsd-dev libdbus-1-dev (>= 1.0) libsystemd-dev
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting
dpkg-buildpackage: warning: (Use -d flag to override.)
debuild: fatal error at line 1182:
dpkg-buildpackage -us -uc -ui failed
sudo apt-get build-dep tigervnc-standalone-server=1.12.0+dfsg-8
Reading package lists... Done
Picking 'tigervnc' as source package instead of 'tigervnc-standalone-server'
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
builddeps:tigervnc : Depends: xorg-server-source (>= 2:21) but 2:1.20.11-1+deb11u14 is to be installed
Depends: x11proto-dev (>= 2021.5) but 2020.1-1 is to be installed
Depends: libxcvt-dev but it is not installable
Depends: libdrm-dev (>= 2.4.107-5~) but 2.4.104-1 is to be installed
Depends: libxi-dev (>= 2:1.8) but 2:1.7.10-1 is to be installed
E: Unable to correct problems, you have held broken packages.
但是,我不明白指南中应该如何处理未满足的依赖项。我应该降低 debian/control 中所需的版本吗?特别是,我该如何处理标记为可卸载的 libxcvt-dev?
抱歉,让您陷入反向移植的泥潭 — 在类似情况下,这通常是最好的方法,但对于 TigerVNC 来说,它却毫无用处。将当前的 TigerVNC 12 软件包反向移植到 Debian 11 会相当复杂,特别是因为它与特定版本的 X.Org 软件包绑定在一起。
鉴于您关心的错误的修复很简单:
添加该补丁后,重建 Debian 11 TigerVNC 包变得更加容易。
要做到这一点:
下载TigerVNC的Debian 11源码包:
下载补丁:
将其添加到应用于软件包的补丁列表中:
应用它:
添加变更日志条目:
构建包: