AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 787435
Accepted
Andrey Pro
Andrey Pro
Asked: 2024-11-30 22:11:57 +0800 CST2024-11-30 22:11:57 +0800 CST 2024-11-30 22:11:57 +0800 CST

如何在 Debian 11 上将 TigerVNC 升级到 1.12?

  • 772

我有一台运行 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?

debian
  • 1 1 个回答
  • 31 Views

1 个回答

  • Voted
  1. Best Answer
    Stephen Kitt
    2024-12-02T21:19:38+08:002024-12-02T21:19:38+08:00

    抱歉,让您陷入反向移植的泥潭 — 在类似情况下,这通常是最好的方法,但对于 TigerVNC 来说,它却毫无用处。将当前的 TigerVNC 12 软件包反向移植到 Debian 11 会相当复杂,特别是因为它与特定版本的 X.Org 软件包绑定在一起。

    鉴于您关心的错误的修复很简单:

    diff --git a/common/rfb/VNCServerST.cxx b/common/rfb/VNCServerST.cxx
    index fe0608572f..ae51a61b11 100644
    --- a/common/rfb/VNCServerST.cxx
    +++ b/common/rfb/VNCServerST.cxx
    @@ -169,7 +169,7 @@ void VNCServerST::removeSocket(network::Socket* sock) {
           if (pointerClient == *ci)
             pointerClient = NULL;
           if (clipboardClient == *ci)
    -        clipboardClient = NULL;
    +        handleClipboardAnnounce(*ci, false);
           clipboardRequestors.remove(*ci);
     
           // - Delete the per-Socket resources
    

    添加该补丁后,重建 Debian 11 TigerVNC 包变得更加容易。

    要做到这一点:

    • 下载TigerVNC的Debian 11源码包:

      apt source tigervnc/oldstable
      
    • 下载补丁:

      cd tigervnc-1.11.0+dfsg
      curl https://github.com/TigerVNC/tigervnc/commit/49122f6dccd836f0a4618247895fd4c5b8db7af0.patch > debian/patches/desktop-clipboard.patch
      
    • 将其添加到应用于软件包的补丁列表中:

      echo desktop-clipboard.patch >> debian/patches/series
      
    • 应用它:

      quilt push
      
    • 添加变更日志条目:

      dch --nmu "Apply upstream fix for clipboard handling."
      dch -r ignored
      
    • 构建包:

      debuild -us -uc
      
    • 2

相关问题

  • GRUB 配置以识别同一 Linux 发行版的不同桌面环境(安装)

  • astyle 不会更改源文件格式

  • 接收有关全新 Debian 的电子邮件

  • Debian Stretch:libgs_plugin_systemd-updates.so 中的 gnome-software 段错误

  • 如何在拼音输入法中输入ü?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve