LINUX.ORG.RU

Cюзя не может в компиляцию? Или не хочет?

 ,


0

1

Решил попробовать поставить вьюер zathura. Есть только в сырцах. ОК. Делаем

make
Имеем
Package girara-gtk3 was not found in the pkg-config search path.
Perhaps you should add the directory containing `girara-gtk3.pc'
to the PKG_CONFIG_PATH environment variable
No package 'girara-gtk3' found
ОК. Качаем girara (тоже только в сырцах)

>#make
>The minimum required version of GTK is 3.2
make: *** [.version-checks/GTK] Error 1

Да что ты говоришь? Что у нас с GTK3?

>#zypper se -provides gtk3
Выскакивает масса упоительных названий пакетов, среди них

i | libgtk-3-0

Оно? Пробуем

>#rpm -q --whatprovides gtk3
>libgtk-3-0-3.10.9-18.1.i586
Оно. Версия?
>#zypper if libgtk-3-0
>Information for package libgtk-3-0:
-----------------------------------
Repository: openSUSE-13.1-Update
Name: libgtk-3-0
Version: 3.10.9-18.1
Arch: i586
Vendor: openSUSE
Installed: Yes
Status: up-to-date
Installed Size: 6.6 MiB
Summary: The GTK+ toolkit library (version 3)
Ох ты. Версия 3.10. А gurara жалуется что ей нужно минимум 3.2

В репо есть пакет gtk3, но это сырцопакет. Думаю попозже попробовать его воткнуть, но сейчас песня не об этом.

>#zypper in gtk3
Loading repository data...
Reading installed packages...
'gtk3' not found in package names. Trying capabilities.
'libgtk-3-0' providing 'gtk3' is already installed.
Хм.

Попробовал скачать gtk3.2.2 сырцами. Чисто ради спорта, попробовать. Наблюдаю ту же картину маслом.

>#./configure
>No package 'glib-2.0' found
Рили?
>#rpm -q --whatprovides glib2
>libglib-2_0-0-2.38.1-1.1.i586
>#zypper se --provides glib2
>libglib-2_0-0
>#zypper if libglib-2_0-0
>Information for package libglib-2_0-0:
--------------------------------------
Repository: openSUSE-13.1-Update
Name: libglib-2_0-0
Version: 2.38.2-8.2
Arch: i586
Vendor: openSUSE
Installed: Yes
Status: out-of-date (version 2.38.1-1.1 installed)

Тоесть, имена пакетов заведомо не соответствуют тем, что заявлены в требованиях программ. Не знаю каким образом make и ./configure проверяют их наличие. Скорее всего через утилиту rpm? Но факт что они не находятся. Так вот, вопроса два. Один практический другой идейный.

Первый: можно ли это победить, кроме как отказом от сюзи?

Второй — это ведь специально делается, чтобы привязать пользователя к zypper/yast и лишить возможности компелять руками? Есть хоть какие-то иные возможные причины для такого «альтернативного» именования пакетов? Или может быть make/configure ищут свои зависимости не по именам пакетов? Просветите уже.

С подобными проблемами сталкивался раньше, неоднократно. Редко что удавалось скомпилять руками. Но сейчас уже просто достало. Решил вот поднять тему.



Последнее исправление: Csandriel (всего исправлений: 3)
Ответ на: комментарий от Valdor

Попробую поискать. Но уже начал установку gtk3 из сырцопакета. Будь что будет, устал камлать, хочется ломом стукнуть просто V_v

Csandriel
() автор топика
Ответ на: комментарий от Valdor

Спасибки. Дело сдвинулось. Поставил gtk3-devel. Теперь

gurara>#make
cc: error: unrecognized command line option ‘-fdiagnostics-color=always’
make: *** [build/release/girara/settings.o] Error 1

В общем, теперь на отсутствие пакета gtk3 не жалуется. Возможно практический вопрос снят. Вот идейная сторона дела интересует: зачем такие извращения с названиями пакетов? И еще может кто-нибудь таки расскажет, как make/configure определяют наличие отсутствие зависимостей?

Csandriel
() автор топика
Ответ на: комментарий от Csandriel

зачем такие извращения с названиями пакетов?

Так ведь можно сэкономить метров 100 на всю ОС.

alix ★★★★
()
Ответ на: комментарий от Csandriel

Не ставь дистро, который не заточен под компиляцию, хоть и может в нее. Собирать на посмотреть надо в чруте, если не хочешь угробить систему. Про -dev уже сказали, а собираешь ты гтк зря, только время потеряешь.

yars068 ★★★★
()
Ответ на: комментарий от Csandriel
girara># grep  '\-fdiagnostics-color'  *

>grep: build: Is a directory
colors.mk:CC           += -fdiagnostics-color=always
grep: data: Is a directory
grep: doc: Is a directory
grep: doc-pak: Is a directory
grep: girara: Is a directory
grep: po: Is a directory
grep: tests: Is a directory

unrecognized command line option ‘-fdiagnostics-color=always

Нашел и закоментировал соответствующую строку в colors.mk и дело пошло. C вырвиглазными цветами на консольке но все же. Может оно таки встанет? ^_^

Csandriel
() автор топика
Ответ на: комментарий от yars068

Уже поставил слакварь. Но пока только поставил. Надо еще настраивать, разбираться с ней. Пока в нее не вникал особо, руки не доходят.

Csandriel
() автор топика

Чтобы не плодить темы, спрошу здесь. У меня одного checkinstall перестал собирать RPM-пакеты, с похожими ошибками, указывая в логах на .so файлы и при этом говоря

Error: not a directory

? Гугление ведет в основном на багтрекер. Когда-то находил какой-то патч, но не знал как его присобачить V_v. А сейчас и его не могу найти.

Csandriel
() автор топика

Зюзя

zathura. Есть только в сырцах

В этом вся зюзя. Брось ты это поделие, не мучайся.

Если приступ мазохизма не позволяет тебе выбрать другой дистрибутив, то изучи OBS и собирай всё там.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Брось ты это поделие, не мучайся

Уже понял, что надо переезжать. Запрягаю долго, да. Свою историческую роль для меня она выполнила, позволив познакомиться с линуксом, с большего.

Кстати, в конечном итоге все скомпилировалось, но не работает. Без ключа WITH_MAGIC=0 не компилируется, а с ним не определяет типы файлов. Пока задвинул в дальний ящик.

Csandriel
() автор топика
Ответ на: комментарий от Csandriel

Да, надо переезжать. SUSE сдох вместе с покупкой Nowel. Теперь это слабоподдерживаемый дистр.

EXL ★★★★★
()

Дальше этого не читал

Решил попробовать поставить вьюер zathura. Есть только в сырцах. ОК. Делаем

И с гигиканьем радостно превращаем SuSE в Slackware. Афтор осиль уже man rpm, man rpmbuild

init_6 ★★★★★
()

Решил попробовать поставить вьюер zathura. Есть только в сырцах.

Хм, а мне давеча втирали, что в зюзе репы необъятнее, чем в убунте.

Akamanah ★★★★★
()
Ответ на: комментарий от dinn

Спасибки. Не догадался погуглить. Обычно чего нет в репах того и в гугле не найдешь.

Csandriel
() автор топика

Если коротко - поставь эту галочку.

Если длинно: программа разделяется на аналог *.exe, лежащий в /usr/bin, и на аналог *.dll, лежащий в /usr/lib. Аналог *.exe не имеет расширения файла, а аналог *.dll имеет расширение *.so.номер_версии. Например игра Neverball использует музыку в формате *.ogg, для её проигрывания она использует библиотеку libvorbis.so.0. Одновременно с libvorbis.so.0, в систему можно установить libvorbis.so.1 (версия 1.0 пока не вышла). Смена цифры версии с 0 на 1 означает потерю совместимости. Поэтому файл и называется по-другому.

При этом сам файл libvorbis.so.0 является символьной ссылкой (далее - симлинком) на файл libvorbis.so.0.4.5. Потому что в системе установлена версия библиотеки 0.4.5. Когда выйдет 0.4.6, она будет иметь обратную совместимоть с 0.4.5 - как и с 0.4–0.4.4. В версии «0.4.5» первая цифра называется «мажорной версией», смена которой ломает совместимость, а последующие - «минорной».

Это всё, что тебе нужно знать, если ты только пользуешься программами и не компилируешь из исходного кода. Для компиляции из исходного кода необходимы ещё несколько вещей:

  1. В /usr/lib создаётся файл libvorbis.so, являющийся симлинком на libvorbis.so.0. Это нужно только компилятору, а не самой программе для запуска. Таким образом компилятор понимает, какую из библиотек использовать, если их несколько.
  2. В /usr/include создаются заголовочные файлы (даkее - headers) *.h. Они могут как лежать в отдельной директории /usr/include/vorbis (чтобы не создавать мусорку, это желательно делать), так и прямо в /usr/include.
  3. В качестве опции - файл pkg-config с расширением *.pc. В старых дистрибутивах Linux он находится в /usr/lib/pkgconfig, а в новых - в /usr/share/pkgconfig. Это костыль, прикрученный сбоку скотчем, и который не знаю зачем нужен, Может для того чтобы указывать компилятору на нестандартный путь библиотек и headers?

В RPM-based дистрибутивах эти три компонента лежат в пакетах *-devel. В DEB-based - в *-dev. Например libvorbis-devel и libvorbis-dev. В Source-based они неотделимы от пакета.

ZenitharChampion ★★★★★
()
Ответ на: комментарий от yars068

> Не ставь дистро, который не заточен под компиляцию, хоть и может в нее.

zypper si neverball // Opensuse
apt-get build-dep neverball // Debian
yum-builddep neverball // EL, CentOS, Fedora

ZenitharChampion ★★★★★
()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion

Спасибо за обстоятельные объяснения. Думаю, во многом будут полезны.

Csandriel
() автор топика
Ответ на: комментарий от yars068

Собирать на посмотреть надо в чруте

Интересный ход. Раньше слышал упоминания. Для того, чтобы работало, надо наверное байндить к нему /proc /dev и прочее, как обычно при чруте? Брать можно произвольный директорий?

Csandriel
() автор топика
Ответ на: комментарий от no-such-file

В этом вся зюзя. Брось ты это поделие, не мучайся.

Дураков твоя фамилия

anonymous
()

Решил попробовать поставить вьюер zathura. Есть только в сырцах. ОК. Делаем

Тебя кто-то обманул: https://software.opensuse.org/package/zathura Если какой-либо софт существует под linux, то с вероятностью 99.9% ты найдёшь его в репозиториях SuSE.

anonymous
()
Ответ на: комментарий от Csandriel

Каталог под чрут - да.

биндить /dev, /proc и /sys

Не обязательно, но если ты хочешь, чтобы, например, в чруте работал звук - надо.

yars068 ★★★★
()
Последнее исправление: yars068 (всего исправлений: 2)
Ответ на: комментарий от sudopacman

gcc очень хорош, чтобы собрать эксплоит под конкретную локальную систему. как они могли не включить в дефолтную поставку

anonymous
()
Ответ на: комментарий от mystery

в дебиане тоже отдельные dev-пакеты. выходит, по меркам лор-овцев 90% всех установленных линупсов  — неправильные

anonymous
()
Ответ на: комментарий от anonymous

Да не, я всмысле, что зузевые пакеты полностью соответствуют всяким XDG, Freedesktop.org, FHS, LSB и т.д. :-)
Дебиан в этом плане не очень

mystery ★★
()
Ответ на: комментарий от Akamanah

давеча втирали, что в зюзе репы необъятнее, чем в убунте

Это утверждение как минимум недалеко от истины. И уж zathura там точно есть.

mbivanyuk ★★★★★
()
Ответ на: комментарий от Csandriel

Попробую поискать.

открой для себя FreeBSD и порты, все автоматом скачивается и не надо бегать, просто нажал, > #make install clean

res2500
()
Ответ на: комментарий от anonymous

Если оно надо, всегда можно сделать, всего-то однострок набрать. И если оно программе надо, я обычно вижу ворнинг.

yars068 ★★★★
()
Ответ на: комментарий от Akamanah

втирали, что в зюзе репы необъятнее, чем в убунте

Можешь смело плюнуть этому типу в оба глаза.

no-such-file ★★★★★
()
Ответ на: комментарий от anonymous

то с вероятностью 99.9% ты найдёшь его в репозиториях SuSE

В котором из 100500? В официальном репе нет нихренашечки, а подключение всяких тумблевидов со временем приводит систему в состояние «полная жопа» - всё зависит от всего и конфликтует друг с другом, в итоге ничего нельзя обновить. Это даже хуже чем в бубунте подключать кучу ppa - знаем, плавали.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

давай пример из 100500 репов для какого-нибудь пакета. разумеется, без реп вида home:/*

registrant ★★★★★
()
Ответ на: комментарий от Reedych

Да, уже решил вопрос. Подсказали на этот счет.

Csandriel
() автор топика
Ответ на: комментарий от anonymous

Тебя кто-то обманул:

Да я сам по ходу обманулся. Забыл что репы добавлять как бы надо. Привык обходиться двумя ^_^

Csandriel
() автор топика
Ответ на: комментарий от no-such-file

а подключение всяких тумблевидов со временем приводит систему в состояние «полная жопа» - всё зависит от всего и конфликтует друг с другом, в итоге ничего нельзя обновить.

Чего ты пыжишься, бубунтоид недоделанный, — я же ясно написал выше: «Дураков твоя фамилия». Я использую SuSE с самого начала её существования, причём не только на домашнем десктопе, но и в бизнесе, и вообще, это у меня единственная система много лет. Я ещё не припомню случая, чтобы система хотя бы раз превратилась в «полную жопу», — это ты с бубунтой перепутал, в которой ничего настроить вообще нельзя, и достаточно какой-нибудь пакет со шрифтами удалить, чтобы она повесилась.

anonymous
()
Ответ на: комментарий от Csandriel

Да я сам по ходу обманулся. Забыл что репы добавлять как бы надо. Привык обходиться двумя ^_^

Не следует боятся подключать репозитории, — в SuSE это нормальная политика, и большинство т.н. «сторонних» репозиториев на самом деле вполне себе официальные, собираются и, что немаловажно — патчатся для совместимости самими мантейнерами дистрибутива (к примеру: Packman, KDE3, Cinnamon, LO, TeXLive, KF5 и т.п.). А то, что они называются «сторонние», — это как бы перестраховка такая, т.к. SuSE используется очень много где в бизнесе.

anonymous
()
Ответ на: комментарий от anonymous

Я использую SuSE с самого начала её существования

Сразу видно - никто и звать тебя никак. Залогинься, хамло.

no-such-file ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.