Russian Qt Forum

Qt => Общие вопросы => Тема начата: nkly777 от Сентябрь 21, 2007, 08:06



Название: Создание rpm-пакета.
Отправлено: 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


Название: Re: Создание rpm-пакета.
Отправлено: WW от Сентябрь 21, 2007, 11:04
Похоже у тебя отличаются пути установки Qt и на целевой системе. сделай симлинки на соответсвующие файлы и директории.


Название: Re: Создание rpm-пакета.
Отправлено: nkly777 от Сентябрь 21, 2007, 11:40
Похоже у тебя отличаются пути установки Qt и на целевой системе.

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

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


Название: Re: Создание rpm-пакета.
Отправлено: nkly777 от Сентябрь 24, 2007, 12:23
Неужели никто не делал rpm-пакетов из Qt-шных программ?


Название: Re: Создание rpm-пакета.
Отправлено: lxlight от Сентябрь 24, 2007, 12:29
Эти библиотеки у меня установлены и командой rpm -ivh --nodeps пакет устанавливается и работает.
Дело в том что Qt я устанавливал не из rpm пакета, а из исходников, наверное это связано с этим.
Именно с этим и связано. rpm не проверяет наличие необходимых файлов на диске, он берет их исключительно из своей базы данных. Так что либо установи Qt из rpm (можно и с опцией --just-db) либо ставь свой пакет с --nodeps.


Название: Re: Создание rpm-пакета.
Отправлено: pastor от Октябрь 02, 2007, 16:14
Недавно попался "Цикл статей по сборке RPM и DEB пакетов". Возможно эта инфа поможет.

http://tigro.info/blog/index.php?id=375


Название: Re: Создание rpm-пакета.
Отправлено: -QT- от Октябрь 02, 2007, 21:02
ИМХО может нужно в секции буилда сделать: кюмаке, маке
и не тащить макефайл с прицепленными путями.