如何给 Debian 软件包打补丁?

如何给 Debian 软件包打补丁?

我有 Debian 稳定版,但我发现了一些奇怪的错误已经修复了

该修复已合并到稳定分支中,该版本是 gnome-settings-daemon 3.32.1 但我有 gnome-settings-daemon 3.30.2-3 那么,如何在不破坏系统的情况下使用该补丁?我必须从哪里安装?向后移植?

我用 apt 检查版本,但我在这里没有看到任何有用的东西:

/home/user-> apt-cache policy gnome-settings-daemon
gnome-settings-daemon:
  Installed: 3.30.2-3
  Candidate: 3.30.2-3
  Version table:
 *** 3.30.2-3 500
        500 http://deb.debian.org/debian buster/main amd64 Packages
        100 /var/lib/dpkg/status

提前致谢!

答案1

backports.debian.org似乎不包括gnome-settings-daemon的软件包buster

testing分支当前的版本为 3.38.1-2,这比您需要的要新得多。

推荐的方法是自己向后移植补丁。

你必须:

  • 安装构建所需的任何开发包gnome-settings-daemon
sudo apt-get build-dep gnome-settings-daemon
  • 得到源代码对于 gnome 设置守护进程
apt-get source gnome-settings-daemon
cd gnome-settings-daemon-3.30.2/
curl 'https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/commit/cea632bf682760e80654df19cfef6206efca868a.diff' | patch -p1
  • 将补丁的添加记录到包更改日志中(从技术上讲,如果您只为自己使用该包,则可以忽略此内容,但如果您计划成为包维护者,则最好养成此习惯)
dpkg-source --commit  # this will ask you to write a changelog entry
  • 构建二进制包:
dpkg-buildpackage -rfakeroot
  • 最后安装生成的二进制包:
cd ..
sudo dpkg -i gnome-settings-daemon_3.30.2-3_amd64.deb gnome-settings-daemon-common_3.30.2-3_all.deb
  • 如果您希望在不注销的情况下使更改生效,则需要终止任何现有gsd-media-keys进程,以便 gnome-settings-daemon 将使用新的二进制文件重新启动它:
killall gsd-media-keys

答案2

根据gnome-settings-daemon 的 Debian 软件包页面stable, (buster)的最新版本是3.30.2-3(您已经安装了)。

但是,对于testing(bullseye) 和unstable(sid),版本3.38.1-2是可用的。因此,您可以仅安装这些较新版本中缺少的软件包,如下所述:如何在运行“稳定”Debian 的计算机上安装“不稳定”Debian 中的一些软件包?

向后移植和从源代码编译是进一步的选项(也在上面链接的答案中进行了描述)。

相关内容