[РЕШЕНО] С libdbus-glib-1-dev компилируется а с libglibmm-2.4-dev нет

Автор IlyaLinux, 04 июня 2020, 17:40:53

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

IlyaLinux

Здравствуйте, друзья!

Немного поторопился с объявлением easystroke как скомпилированной программы. При 2ом проходе глаз зацепился за зависимость libdbus-glib-1-dev. В описании указано, что пакет устаревший.

Пробую скомпилировать без него.

qwerty@debian:~/easystroke
$ make
Package dbus-glib-1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `dbus-glib-1.pc'
to the PKG_CONFIG_PATH environment variable
No package 'dbus-glib-1' found
g++ -std=c++11 -Wall  -DLOCALEDIR=\"/usr/local/share/locale\"  -O2 -MT water.o -MMD -MP -MF water.Po -o water.o -c water.cc
In file included from water.h:18,
                 from water.cc:16:
trace.h:20:10: fatal error: glibmm/i18n.h: Нет такого файла или каталога
#include <glibmm/i18n.h>
          ^~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:74: water.o] Ошибка 1


Хорошо, не хватает glibmm/i18n.h посмотрим, куда эта библиотека переехала.

qwerty@debian:~/easystroke
$ apt-file search glibmm/i18n.h
libglibmm-2.4-dev: /usr/include/glibmm-2.4/glibmm/i18n.h


Замечательно, ставим libglibmm-2.4-dev

qwerty@debian:~/easystroke
$ sudo apt install libglibmm-2.4-dev
Чтение списков пакетов... Готово
Построение дерева зависимостей       
Чтение информации о состоянии... Готово
Уже установлен пакет libglibmm-2.4-dev самой новой версии (2.58.0-2).
Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 2 пакетов не обновлено.


Вот это поворот, пакет уже установлен, да еще и самой новой версии. А файл библиотеки есть?

qwerty@debian:~/easystroke
$ sudo find / -name i18n.h
/usr/include/glibmm-2.4/glibmm/i18n.h


И файл на месте, но компилятор его почему-то не видит.
Подскажите, пожалуйста, это можно исправить или нужно устаревший пакет до установить?

ferum

IlyaLinux,  Думаю не стоит плодить темы для корзины. Всё что нужно это быть внимательным с самого начала. Вы даёте ссылку на исходник, последние изменения в котором были 4 года назад. Естественно что вы ни чего из него не соберёте.
Возьмите дебианизированный исходник https://launchpad.net/ubuntu/eoan/+source/easystroke, внесите необходимые изменения в соответствии с пакетной базой debian buster и собирайте.
Русские дебианщики против цифрового слабоумия !

IlyaLinux

ferum, прошу прощения, если плохо сформулировал и ввел в заблуждение. Позвольте, я уточню. Исхдоный код по ссылке собирается, даже не смотря на его древность. ) Но меня бы здесь не было (и дальше бы сидел на бубунте), если бы к вопросу подходил так - работает и ладно. Для таких пользователей придумали snap-пакеты, вот пускай они с ними и тягаются. А нас с вами и других людей, которые выбрали Debian, в первую очередь привлекает компактность, быстродействие, прозрачность и наверно самое главное - контроль над системой, способность самостоятельно принимать решения когда обновляться, что устанавливать и т.п. Да, придется поковыряться в пакетной базе, изучить внутреннюю архитектуру, быть готовым к тому, что потратишь в десять раз больше сил и времени, чем бубунтовод, но именно столько стоит контроль. Если же нет желания какой-либо процесс контролировать - отдай на аутсорс и будь готов неэффективному, часто мошенническому, распределению ресурсов.

Что-то я отвлекся. ) Пакет собирается, но... В его зависимостях присутствует библиотека libdbus-glib-1-dev, которая помечена как устаревшая. И я попытался ее заменить на актуальную. К сожалению, мои возможности пока невелики, и с заменой, которую получилось найти (libglibmm-2.4-dev) исходники не компилируются. Это событие и послужило причиной обращения на форум. Все ли я сделал как должно?

ЗЫ. Большое спасибо за ссылку, почерпнул оттуда список зависимостей. Ребята из Canonical - молодцы, составили его очень компактно. Продублирую, если кто-то захочет повторить компиляцию.

build-essential dkms dpkg-dev fakeroot g++ g++-8 gcc make patch git
debhelper help2man intltool libboost-serialization-dev libdbus-glib-1-dev libgtk-3-dev libgtkmm-3.0-dev libx11-dev libxi-dev libxtst-dev xserver-xorg-dev


ferum

Цитата: IlyaLinux от 05 июня 2020, 11:58:39плохо сформулировал и ввел в заблуждение
Сами себя.... Давайте посмотрим на задачу с другой стороны: вы хотите собрать программу, в исходном коде которой не было изменений более 4х лет, при этом пакетная база даже такого архаичного дистрибутива как debian далеко ушла вперёд.
Значит это счастье что в репозитории всё ещё есть нужные сборочные зависимости, даже если они помечены как устаревшие. В следующем выпуске дистрибутива этих пакетов скорее всего вообще не будет. Пользуйтесь моментом.
Русские дебианщики против цифрового слабоумия !

IlyaLinux

ferum, чтож, возрадуемся и скомпилируем с устаревшим пакетом. Допиливание исходников оставим на следующий раз.