Решение зависимостей

Модератор: Модераторы разделов

Аватара пользователя
l0stparadis3
Сообщения: 207
Статус: GNU/FireShow
ОС: Mac OS X | FreeBSD

Решение зависимостей

Сообщение l0stparadis3 »

Стал замечать, что иногда при установке пакета из АУРа пакман жалуется на нехватку зависимостей, хотя пакеты, замещающие функциональность, стоят.
Для примера, вместо exo у меня стоит exo-alt, в пкгбилде прописано, что exo-alt provides exo, но при обновлении системы все равно всплывает сообщение, что thunar не хватает exo. Версии exo в репах и exo-alt одинаковые.
Сегодня утром решил поставить патчи для клертайп шрифтов (freetype2-cleartype, cairo-cleartype, libxft-cleartype) - образовалась та же фигня. При этом, что удивительно, жалуются не все пакеты. То есть после удаления оригинальных пакетов (pacman -Rd freetype2, например) пакман показывал список в 20 пакетов, после установки список сократился до шести пакетов.


Пока писал текст выше, обнаружил еще одно свойство глюка. Изначально у пакета freetype2-cleartype в графе provides стояло значение версии 2.3.5. При установке я его поменял на 2.3.6 (поскольку версия пакета, собственно, 2.3.6 - в глаз майнтейнеру). В списке неразрешенных зависимостей было пять пакетов, которые жаловались на freetype2 - четыре на сам пакет, и один на версию. Пересобрал freetype2-cleartype, в графе provides вообще убрал версию - оставил только само название пакета. После этого исчезли те четыре пакета, которые жаловались на сам пакет, исчезли - остался только тот, что жалуется на версию.

на данный момент в списке нерешенных зависимостей висят:
missing dependency for libxfont : freetype2>=2.3.5
missing dependency for pango : libxft>=2.1.12

Код:

Название : freetype2-cleartype Версия : 2.3.6-1 URL : http://freetype.sourceforge.net Лицензия : GPL Группы : Не указано Предоставляет : freetype2 Зависит от : zlib Опциональные зависимости : Не указано Требуется пакетами : fontconfig-lcd giblib imlib2 libwmf wine Конфликтует с : freetype2 Заменяет : Не указано Размер установленного : 2152,79 K Сборщик : l0st.paradis3 Архитектура : i686 Дата сборки : Пнд 07 Июл 2008 09:45:50 Дата установки : Пнд 07 Июл 2008 09:46:04 Причина установки : Явно установлен Установочный скрипт : No Описание : TrueType font rendering library with cleartype patch Название : libxft-cleartype Версия : 2.1.12-1 URL : http://xorg.freedesktop.org/ Лицензия : GPL Группы : Не указано Предоставляет : libxft Зависит от : fontconfig libxrender Опциональные зависимости : Не указано Требуется пакетами : conky fltk openexr qt3 rxvt-unicode-256color xorg-apps xorg-utils xterm Конфликтует с : libxft Заменяет : Не указано Размер установленного : 202,05 K Сборщик : l0st.paradis3 Архитектура : i686 Дата сборки : Пнд 07 Июл 2008 09:27:21 Дата установки : Пнд 07 Июл 2008 09:27:57 Причина установки : Явно установлен Установочный скрипт : No Описание : FreeType-based font drawing library for X with cleartype patch


пока нашел одно работающее решение - пересобрать pango и libxfont с зависимостями от cleartype пакетов. Но хочется все же разобраться, почему не до конца работает provide?
Если в Linux не существует решения вашей проблемы... То у вас неправильная проблема.
Спасибо сказали:
Аватара пользователя
Moradaraba
Сообщения: 23
ОС: Arch Linux®

Re: Решение зависимостей

Сообщение Moradaraba »

Дык. Рад приветствовать!

missing dependency for libxfont : freetype2>=2.3.5
missing dependency for pango : libxft>=2.1.12

pacman, проверяя зависимости, по-видимому, не смотрит, какой это версии freetype2-cleartype.

(И это понятно: версии аналогичных пакетов могут быть совершенно различны, это же в конце концов разные пакеты. Так вот, можно использовать texlive-core 2007.2-2, а можно tetex 3.0-4. И как бедному pacman'y? Как это сопоставить чилса 3 и 2007?)

Потому в данном случае следует, по-видимому, отредактировать PKGBUILD'ы, прямо указав, какую-такую версию аналогичного пакета данный пакет provides.

Например, как-то так:
provides = ( freetype2=2.3.6 )

С уважением, Аттила.
apt-get install anarchy
Спасибо сказали:
Аватара пользователя
eR
Сообщения: 542
Статус: дотер =)

Re: Решение зависимостей

Сообщение eR »

мож мантейнеры забили на арч?
А какая у вас операционная система? Windows 98... NT... 2000... ХР... "Могучая кучка" линуксоидов с фанатично горящими глазами... UNIX? © Полонская Е.Л.
Спасибо сказали:
Аватара пользователя
l0stparadis3
Сообщения: 207
Статус: GNU/FireShow
ОС: Mac OS X | FreeBSD

Re: Решение зависимостей

Сообщение l0stparadis3 »

Потому в данном случае следует, по-видимому, отредактировать PKGBUILD'ы, прямо указав, какую-такую версию аналогичного пакета данный пакет provides.

Собственно, изначально так и было. В таком варианте выводилось еще несколько пакетов, которым не хватало freetype2, независимо от версии. Это уже после того, как убрал версию, количество пакетов удалось сократить до двух.

мож мантейнеры забили на арч?

А черт их знает. Даже если бы и так - пакеты не помечены, как устаревшие.
Если в Linux не существует решения вашей проблемы... То у вас неправильная проблема.
Спасибо сказали:
Аватара пользователя
eduard_pustobaev
Сообщения: 2629
Статус: Ленивец
ОС: Arch/Debian.

Re: Решение зависимостей

Сообщение eduard_pustobaev »

А я просто подредактировал пакеты для freetype, cairo и libxft из abs в соответствии с *-cleartype пкгбилдами. Ну и собрал-установил естественно.


l0stparadis3 писал(а):
07.07.2008 20:36
А черт их знает. Даже если бы и так - пакеты не помечены, как устаревшие.

cairo-cleartype - помечен, а freetype2/libxft-cleartype таки не помечены, это да.
В дисгармонии со вселенной.
Спасибо сказали:
Аватара пользователя
Moradaraba
Сообщения: 23
ОС: Arch Linux®

Re: Решение зависимостей

Сообщение Moradaraba »

Снова добрый вечер.
Попробовал и я патченные версии. Взял из AUR'a PKGBUILD'ы.
Для libxft-cleartype действительно оказалось достаточным указать provides=('libxft=2.1.12') и таким образом избежать
ошибка: не удалось подготовить операцию (не удается удовлетворить зависимости)
:: pango: требует libxft>=2.1.12


Мой libxfont требует аж 2.3.7 версию freetype2, так что с ним сложнее...

С уважением, Аттила, таки вождь гуннов.
apt-get install anarchy
Спасибо сказали:
Аватара пользователя
Moradaraba
Сообщения: 23
ОС: Arch Linux®

Re: Решение зависимостей

Сообщение Moradaraba »

Да и freetype2-cleartype оказалось нетрудно побороть...
pkgver=2.3.7
provides=('freetype2=2.3.7')

да и md5 подправил (стёр)... И libxfont не рукается, что ему чего-то нехватает.

С уважением, Аттила.
apt-get install anarchy
Спасибо сказали:
Аватара пользователя
l0stparadis3
Сообщения: 207
Статус: GNU/FireShow
ОС: Mac OS X | FreeBSD

Re: Решение зависимостей

Сообщение l0stparadis3 »

Такс, ладно, решил все же не заморачиваться, и подправил пкгбилды. Теперь единственная проблема - fontconfig (майнтейнер обещал к среде обновить пакет в ауре, самому мне лень переделывать и читать чейнджлоги)
НО. я так и не понял, почему при
provides=('freetype 2.3.7')
глюк есть, а при
provides=('freetype=2.3.7')
он исчезает. Неправильно оформленный пкгбилд в ауре, или еще что-то, простому смертному недоступное?..
Если в Linux не существует решения вашей проблемы... То у вас неправильная проблема.
Спасибо сказали:
Аватара пользователя
Moradaraba
Сообщения: 23
ОС: Arch Linux®

Re: Решение зависимостей

Сообщение Moradaraba »

В man PKGBUILD прямо указана необходимость знака «=»...

Код: Выделить всё

 provides (array)
           An array of "virtual provisions" that this package provides. This
           allows a package to provide dependencies other than its own package
           name. For example, the dcron package can provide cron, which allows
           packages to depend on cron rather than dcron OR fcron. Versioned
           provisions are also possible, in the name=version format. For
           example, dcron can provide cron=2.0 to satisfy the cron>=2.0
           dependency of other packages.
apt-get install anarchy
Спасибо сказали: