Установка RPM - кривые симлинки
krotozer 24 Августа, 2009 - 14:48
Установил на Gentoo проприетарную софтину из RPM, написанную на QT (QT3).
Установку произвёл при помощи app-arch/rpm.
Суть проблемы: не видит файл libqt-mt.so.3, а вместе с ним, видимо, и ещё какие-то не находит.
Зависимости по portage удовлетворены. Файл присутствует по адресу /usr/qt/3/lib/libqt-mt.so.3 .
revdep-rebuild из gentoolkit не спасает. Программа, судя по всему, ищет либы в /usr/local/lib .
Пробовал наделать симлинков - не спасло.
Знает ли кто решение проблемы? А так же знает ли кто, чем можно отмониторить события в файловой системе?
На всякий случай, программа: Rumus2 (клиент ForexClub-а).
_http://download.fxclub.org/Rumus2/FxClub/Rumus2.rpm
»
- Для комментирования войдите или зарегистрируйтесь
Странно, стоит
Странно, стоит x11-libs/qt-3.3.8b-r1
И при этом rumus удовлетворен
Я предпочитаю конвертировать в архив rpm2tarz и распаковывать, чтобы посмотреть что внутри.
Нащяльника, мая сервира паставиль, фрибизьдя инсталя сделаль, апачи сабраль, пыхапе патключиль, сапускаю, а ано - ажамбех пашамбе эшельбе шайтанама!
Я тоже конвертил и смотрел
Я тоже конвертил и смотрел каталог. Но ничем особо это не помогло.
ldd /usr/local/bin/rumus
linux-gate.so.1 => (0xf7fc7000)
libqt-mt.so.3 => not found
libXext.so.6 => /usr/lib32/libXext.so.6 (0xf7f93000)
libX11.so.6 => /usr/lib32/libX11.so.6 (0xf7ea7000)
libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/32/libstdc++.so.6 (0xf7db6000)
libm.so.6 => /lib32/libm.so.6 (0xf7d90000)
libgcc_s.so.1 => /lib32/libgcc_s.so.1 (0xf7d82000)
libc.so.6 => /lib32/libc.so.6 (0xf7c40000)
libXau.so.6 => /usr/lib32/libXau.so.6 (0xf7c3c000)
libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf7c36000)
libdl.so.2 => /lib32/libdl.so.2 (0xf7c31000)
/lib/ld-linux.so.2 (0xf7fc8000)
Если бы найти, где именно софтина ищет libqt-mt.so.3 .
Почитайте про ld-config и
Почитайте про ld-config и переменную LD_LIBRARY_PATH. Это подсказка. Еще неплохо почитать про /etc/env.d и о том, как работают ебилды qt.
Благодарю за подсказку. Буду
Благодарю за подсказку. Буду изучать.
krotozer написал(а):Знает
1) систему себе вы благополучно сломали: сакраментально правило 14443 действует и для данного случая :) (http://www.gentoo.ru/node/14443)
2)Естественно есть решение :), называется текст. редактор :) Как работает : $EDITOR my_supert_programm.ebuild
rpm.eclass (и например ебилд nero и подобные) вам в помощь
Где прикажу, там и ищет, благо в еклассах есть враппер. А так :info ldd;man ld
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
slepnoga
Премного благодарен за открытие Америки.
http://ylsoftware.com/view/402
# Подключаем класс rpm
inherit rpm
# Описываем программу
DESCRIPTION="Rumus2"
HOMEPAGE="http://www.fxclub.org/"
SLOT="0"
KEYWORDS="~x86"
IUSE=""
RESTRICT="nomirror"
# Описываем зависимости
DEPENDS="x11-libs/qt"
# Указываем откуда брать пакет
SRC_URI="http://download.fxclub.org/Rumus2/FxClub/Rumus2.rpm"
# Дальше всё будет сделано само. Кроме собственно установки.
# Устанавливаем пакет:
src_install() {
cp -vR ${S}/* ${D}/
}
ebuild /path/to/file.ebuild digest
ebuild /path/to/file.ebuild merge
Успешная установка и отсутствие файлов софтины в системе.
Этот вариант, вообще-то, был опробован в первую очередь.
-------------------------------------------------------------------------
Я не люблю огрызаться, а потому попрошу ответить без применения манеры
"систему себе вы благополучно сломали... правило 14443 действует..."
Это - как минимум, неуважение к собеседнику.
krotozer
Отвечаю: правило 14443 таки действует в любом дистре, включая винду.
Почему: потому что левые рпмовские либы/линки начинают участвовать в конфигурировании/сборке пакета
Посыл в FAQ это не оскорбление.
Хм, и что и куда вы скопировали ? :) Вы не в курсе , что у вас тут код совсем негодный ?
cp -R всегда возваращает 0, в не зависимости от успешности копирования, т.е cp -vR ${S}/* ${D}/ || die
тоже не поможет, выражение отработает, даже не скопировав ни одного файла.
2. Я написал про враппер LD_PRELOAD, пример из рабочего ебилда :
( ебилд app-emulation/packettracer-52.ebuil, забирать в рионе )
3. ваш пример однозначно не рабочий, Вы не создаете необходимых директорий, к тому же в Гентоо не LBS,
и бинарному софту место в /opt/"${P}"
4.
Так уж __всё__ , вы всерьез думаете, что rmp.eclass парсит скрипты установки из packet.rpm ?
И что еще надо для бинарников, кроме установки ? компилить там точно нечего
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
1) Честно говоря, ебилд этот
1) Честно говоря, ебилд этот даже не моего авторства (источник указан ссылкой выше).
С cp то догадался сразу, как покопал билд nero.
Тем не менее, проблема в знаниях, а точнее в их отсутствии.
Сейчас ищу, где бы почитать, чтобы разобраться с ebuild-ами.
Описание синтаксиса в man 5 ebuild не проливает свет на саму механику процесса установки.
Если не трудно, поделитесь ссылками на информацию.
2) В силу пункта 1), мне не пока что не понятно суть описания в пункте 2.
3) Учту впоследствии.
4) Повторюсь: этот скрипт - не моего авторства.
Сейчас я нахожусь в процессе изучения, дабы написать свой.
Кстати, я и не предполагал, что rmp.eclass должен парсить скрипты установки RPM.
Скорее надеялся на автоматический процесс распаковки бинарников во временный каталог.
Что до временного каталога - было предположение, что его-то ebuild должен создавать самостоятельно.
Найдена такая
Найдена такая документация:
http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml
http://devmanual.gentoo.org/
Чувствую, задача будет точно не из лёгких.
Если действо завершится удачей, выложу сюда код ebuild-а.
В любом случае, благодарю за вывод из заблуждений.
krotozer написал(а): Найдена
Всегда пожалуйста .
девмануал к прочтению обязателен, это базовая дока.
Еще из не найденого Вами http://www.gentoo.org/proj/en/qa/pms.xml, и app-portage/eclass-manpages ( сгенерены из исходников еклассов).
Хотя лучшие документы это сами ебилды от офф. девов и исходники eclass.
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
krotozer написал(а): Сейчас
Велкам в джаббер конфернцию:
Он и создал его, но там немного другой механизм.
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
slepnoga
вы немного не правы коллега:
по FHS в /opt помещаются программы, которые не следуют иерархии FHS (например, когда исполняемые файлы, библиотеки, конфигурационные файлы должны обязательно находиться в одном каталоге, т.е. при распихивании всего этого дела по /usr/bin, /usr/lib и /etc программа становится нерабочей)
топикстартеру: если не хочется или не можется заморачиваться с ебилдами, что для софта неучтенного менеджером пакетов в любой Linux системе есть каталог /usr/local... rpm следовало переделать в tar.gz архив и ручками распаковать в /usr/local... прописать LD_LIBRARY_PATH в /usr/local/lib, PATH в /usr/local/bin и всё ;-)
Theli
Я всё же хочу сохранить возможность деинсталляции.
тогда пиши ебилды. Пример
тогда пиши ебилды. Пример лежит в оверлее science и именуется icm
___________________________________________
Working on Gentoo for iPAQ hx4700 and Openmoko Neo Freerunner :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера
slepnoga написал(а): например
Спасибо за подсказку.
Цитата: Суть проблемы: не
1) и не увидит, зная как собирают рпм :(
2) Зависимости по portage удовлетворены. какие , откуда? с какого перепуга портаге будет тягать что то из рпм ?
"revdep-rebuild из gentoolkit не спасает." Аналогичнй ответ, вашх файлов нет в базе портаге.
3) Программа, судя по всему, ищет либы в /usr/local/lib . Из чего сделан такой скоропалитьный вывод ? :)
Проги вообще то сами ( в 99% случаев )ничего сами не ищут, для это линкер есть.
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)