Я пытаюсь установить и использовать исправленную версию liboverlay-scrollbar
, которая соответствует моим личным предпочтениям. Я успешно загрузил lp:ayatana-scrollbar
и ./autogen.sh; make; sudo make install
ed it.
Вот проблема. Если взглянуть на ldd /usr/bin/*
, то не похоже, что какие-либо приложения на самом деле используют liboverlay-scrollbar*.so
. И даже когда я использую что-то вроде:
export LD_LIBRARY_PATH="/usr/local/lib/:/usr/lib/"
export LIBOVERLAY_SCROLLBAR=1
gedit
Приложение, использующее полосы прокрутки, которое я вызываю, кажется, беспечно игнорирует мои библиотеки /usr/local/lib
и использует установленные на прокрутке аятаны. Мои библиотеки GTK + являются стандартной Ubuntu, поэтому я полагаю, что мне не нужно исправлять и перекомпилировать графический инструментарий.
Может ли кто-нибудь опубликовать пошаговый процесс установки оверлейных полос прокрутки из источника?
Вы можете проверить простое руководство на 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
[ 117] Измените символическую ссылку
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
Я не совсем уверен, так как я не очень хорошо владею C, но похоже, что исправленный GTK, который Ubuntu использует для загрузки полос прокрутки, жестко задан для просмотра только в /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.