Russian Qt Forum
Сентябрь 25, 2024, 20:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Создание rpm-пакета.  (Прочитано 7951 раз)
nkly777
Гость
« : Сентябрь 21, 2007, 08:06 »

Хочу создать rpm-пакет из простейшей программы типа "Hello world" написанной на Qt. Сам пакет создается, но при установке ругается на неудовлетворенные зависимости:
Код:
ошибка: Неудовлетворенные зависимости:
        libQtCore.so.4 нужен для sample-1.0-1.i686
        libQtGui.so.4 нужен для sample-1.0-1.i686
Эти библиотеки у меня установлены и командой rpm -ivh --nodeps пакет устанавливается и работает.
Дело в том что Qt я устанавливал не из rpm пакета, а из исходников, наверное это связано с этим.

При сборке пакета командой rpmbuild -ba sample.spec на экран в числе прочего выводится следующее:
Код:
Обрабатываются файлы: sample-1.0-1
Requires(interp): /bin/sh
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires(post): /bin/sh
Requires: libICE.so.6 libQtCore.so.4 libQtGui.so.4 libSM.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXfixes.so.3 libXi.so.6 libXinerama.so.1 libXrandr.so.2 libXrender.so.1 libc.so.6 libc.so.6(GLIBC_2.0) libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgcc_s.so.1(GCC_3.0) libm.so.6 libpng12.so.0 libpthread.so.0 libstdc++.so.6 libstdc++.so.6(CXXABI_1.3) libz.so.1
Обрабатываются файлы: sample-debuginfo-1.0-1
....
Но ругань при установке идет именно на Qt-шные библиотеки.
Как сделать так чтобы rpm находил эти библиотеки и не ругался на их отсутствие?
Вот мой spec-файл:
Код:
Name: sample
Version: 1.0
Release: 1
Vendor: xxxx company.
Packager: bla-bla-bla
Summary: nnnnnnnnnnnnnnnnnnnnnnnn
Group: MyApp
License:GPL
Source0: sample-1.0.tar.gz
BuildArch:i686
BuildRoot: %{_tmppath}

%description
super-puper program.

%prep
%setup -q -n %{name}-%{version}

%build
make

%install
mkdir -p $RPM_BUILD_ROOT/usr/local/bin
install sample $RPM_BUILD_ROOT/usr/local/bin

%files
%defattr(-,root,root)
/usr/local/bin/sample

%clean
make clean
rm -rf $RPM_BUILD_ROOT

%post
echo "/bin/sh" >> /etc/ld.so.conf
ldconfig
Записан
WW
Гость
« Ответ #1 : Сентябрь 21, 2007, 11:04 »

Похоже у тебя отличаются пути установки Qt и на целевой системе. сделай симлинки на соответсвующие файлы и директории.
Записан
nkly777
Гость
« Ответ #2 : Сентябрь 21, 2007, 11:40 »

Похоже у тебя отличаются пути установки Qt и на целевой системе.

Какие пути отличаются? От чего отличаются?
Я пытаюсь устанавливать пакет на той же самой машине на которой писал программу.

сделай симлинки на соответсвующие файлы и директории.
Если можно поподробнее как это сделать, и на какие файлы и директории.
Записан
nkly777
Гость
« Ответ #3 : Сентябрь 24, 2007, 12:23 »

Неужели никто не делал rpm-пакетов из Qt-шных программ?
Записан
lxlight
Гость
« Ответ #4 : Сентябрь 24, 2007, 12:29 »

Эти библиотеки у меня установлены и командой rpm -ivh --nodeps пакет устанавливается и работает.
Дело в том что Qt я устанавливал не из rpm пакета, а из исходников, наверное это связано с этим.
Именно с этим и связано. rpm не проверяет наличие необходимых файлов на диске, он берет их исключительно из своей базы данных. Так что либо установи Qt из rpm (можно и с опцией --just-db) либо ставь свой пакет с --nodeps.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #5 : Октябрь 02, 2007, 16:14 »

Недавно попался "Цикл статей по сборке RPM и DEB пакетов". Возможно эта инфа поможет.

http://tigro.info/blog/index.php?id=375
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
-QT-
Гость
« Ответ #6 : Октябрь 02, 2007, 21:02 »

ИМХО может нужно в секции буилда сделать: кюмаке, маке
и не тащить макефайл с прицепленными путями.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.114 секунд. Запросов: 22.