![如何从源代码编译和使用 liboverlay-scrollbar?](https://linux22.com/image/1094576/%E5%A6%82%E4%BD%95%E4%BB%8E%E6%BA%90%E4%BB%A3%E7%A0%81%E7%BC%96%E8%AF%91%E5%92%8C%E4%BD%BF%E7%94%A8%20liboverlay-scrollbar%EF%BC%9F.png)
我正在尝试安装并使用liboverlay-scrollbar
符合我个人偏好的修补版本。我已成功下载lp:ayatana-scrollbar
和./autogen.sh; make; sudo make install
编辑它。
问题就在这里。看一下ldd /usr/bin/*
,看起来似乎没有任何应用程序使用 liboverlay-scrollbar*.so
.甚至当我使用类似的东西时:
export LD_LIBRARY_PATH="/usr/local/lib/:/usr/lib/"
export LIBOVERLAY_SCROLLBAR=1
gedit
我调用的使用滚动条的应用程序似乎会无视我的/usr/local/lib
库并使用系统安装的 ayatana 滚动条。我的 GTK+ 库是 Ubuntu 的原版,因此我认为我不需要修补和重新编译图形工具包。
有人可以发布从源代码安装覆盖滚动条的逐步过程吗?
答案1
我并不完全确定,因为我对 C 语言不是很精通,但似乎 Ubuntu 用于加载滚动条的修补 GTK 已被硬编码为/usr/lib/
仅查看。
+ gchar *flag = (gchar*) g_getenv ("LIBOVERLAY_SCROLLBAR");
+
+ /* check if LIBOVERLAY_SCROLLBAR is set to 0 or an empty value
+ and disable the feature in this case */
+ if (flag != NULL && (*flag == '\0' || *flag == '0'))
+ return;
+
+ /* default extension library to use for this release */
+ gchar *path = "/usr/lib/liboverlay-scrollbar-0.2.so.0";
+
+ module = g_module_open (path, G_MODULE_BIND_LOCAL);
+ if (module == NULL)
+ return;
如果我是你,我会将我的补丁应用到 liboverlay-scrollbar 的源包中。
使用 bzr 获取源代码:bzr branch lp:ubuntu/overlay-scrollbar
修补源代码,编辑debian/changelog
(您可以只+myversion1
向现有版本字符串添加一个,或者添加一个全新的更改日志条目。关键是要确保您在存档中拥有更高的版本号)。然后运行bzr builddeb
以构建 Debian 软件包。
答案2
您可以查看一个简单的教程http://developer.ubuntu.com/packaging/html/fixing-a-bug.html
这是一个简单的教程:
获取 Ubuntu 的覆盖滚动条
bzr branch ubuntu:overlay-scrollbar overlay-scrollbar.dev cd overlay-scrollbar.dev
- 做一些修改
编译并安装
./autogen.sh make sudo make install
修改符号链接
sudo ln -f -s /usr/lib/liboverlay-scrollbar-0.2.so.0 /usr/local/lib/liboverlay-scrollbar-0.2.so.0
(可选)记录修复并构建包
dch -i bzr builddeb