Как скомпилировать и использовать liboverlay-scrollbar из источника?

Если вы хотите, чтобы все версии Python были доступны как команды, запустите compgen -c python. Например:

$ compgen -c python
python2.7
python3.4m
python3.4
python3m
python
python3
python2

Если вы хотите получить версию каждого из приведенных выше, вот небольшой однострочный текст, который я написал:

$ for p in $(compgen -c python); do printf "%-16s" $p; $p --version; done
python2.7      Python 2.7.6
python3.4m     Python 3.4.3
python3.4      Python 3.4.3
python3m       Python 3.4.3
python         Python 2.7.6
python3        Python 3.4.3
python2        Python 2.7.6

Обновление: я просто добавил некоторые пакетов и заметил, что программы python*-config не поддерживают флаг --version. Например:

$ python3-config --version
Usage: /usr/bin/python3-config --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--abiflags|--configdir
5
задан 20 January 2012 в 05:33

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
1
ответ дан 25 May 2018 в 15:03
  • 1
    Обратите внимание, что шаги 3-4 могут быть пропущены, так как bzr builddeb создаст правильный пакет, который должен быть установлен – Vadim Rutkovsky 27 January 2012 в 01:13

Я не совсем уверен, так как я не очень свободно владею 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.

5
ответ дан 25 May 2018 в 15:03
  • 1
    Отлично, спасибо! Я с радостью дам вам щедрость, но, прежде чем принимать, не могли бы вы мне отменить свой пост, чтобы предложить вместо этого переадресовать символьную ссылку /usr/lib/liboverlayscrollbar*.so.0? По-моему, это гораздо менее инвазивный подход. Кроме того, чтобы преобразовать это в "шаг за шагом" а не просто решить мой дорожный блок? – Jjed 22 January 2012 в 13:48
  • 2
    Привет, я наградил вас щедростью за решение моей конкретной проблемы, но принял Вадима Рутковского за ответ на полный вопрос. Большое спасибо. – Jjed 27 January 2012 в 00:47

Другие вопросы по тегам:

Похожие вопросы: