Автор Тема: Самодеятельность сборщика rpm ...  (Прочитано 7473 раз)

Оффлайн php-coder

  • Начинающий
  • *
  • Сообщений: 20
Re: Самодеятельность сборщика rpm ...
« Ответ #15 : 30.03.2009 11:39:05 »
Доброе утро всем !!! :)
Вот ещё наткнулся на пример самодеятельности сборщика rpmbb - не знаю для чего, но сборщик добавляет какие-то непонятные и тупые зависимости:

rpmbb тут не причем. Эти зависимости добавляет сам rpm. Если смысл этих зависимостей вам не ясен, то это не повод называть их тупыми.

(Не хочу придираться, но стиль вашего сообщения отталкивает от желания вам помочь.)

Цитировать
/etc/init.d(echo_failure)
/etc/init.d(echo_success)
/etc/init.d(action)
/etc/init.d(echo_failure)
/etc/init.d(echo_passed)
/etc/init.d(echo_success)
/etc/init.d(failure)
/etc/init.d(msg_not_running)
/etc/init.d(msg_reloading)
/etc/init.d(msg_starting)
/etc/init.d(msg_stopping)
/etc/init.d(start_daemon)
/etc/init.d(status)

как я понял, эти зависимости он берет из init.d-скриптов, почему то называет пакетами функции скрипта, скрипты содержаться у меня в пакете, только не пойму за кой хер и как от них избавиться, пока что пришлось создать пустой виртуальный пакет, который предоставляет эти зависимости в свойстве Provides.. Может кто подскажет как избавиться от этих, мягко сказать, странных зависимостей ?  ???

В rpm есть специальный механизм, который ищет зависимости shell/perl скриптов. Поиск осуществляется автоматически, как его отключить совсем или для конкретного файла -- смотрите документацию.

Избавляться от этих зависимостей не нужно. По идее, эти зависимости должны разрешаться в пакет, который владеет файлом /etc/init.d/functions


Оффлайн zhe

  • Завсегдатай
  • *
  • Сообщений: 88
Re: Самодеятельность сборщика rpm ...
« Ответ #16 : 30.03.2009 12:03:57 »
Цитировать
Избавляться от этих зависимостей не нужно. По идее, эти зависимости должны разрешаться в пакет, который владеет файлом /etc/init.d/functions

Интересно, а почему же тогда apt-get не видит этих зависимостей, если они предоставляются в пакете service, который установлен в системе ?
Цитировать
Если смысл этих зависимостей вам не ясен, то это не повод называть их тупыми.
Смысл зависимости мне ясен и понятен, только почему в некоторых случаях rpm вставляет эти зависимости в rpm, а в некоторых нет ?
"Тупые зависимости": механизм поиска rpm в скриптах - понятно, когда rpm считает зависимостями строчки в скриптах, начинаемые с . - ну там
./etc/init.d/function - явно пакет требует этот файл, а тут как-то странно ...

Цитировать
Поиск осуществляется автоматически, как его отключить совсем или для конкретного файла -- смотрите документацию.

 :D всегда убивал подобный ответ - читай мануал   :D :D :D
Так можно и форумы не заводить - зачем? Везде ответ один - читай ман  :D :D :D :D :D :D
« Последнее редактирование: 30.03.2009 13:38:31 от zhecka83 »
man google.com

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Самодеятельность сборщика rpm ...
« Ответ #17 : 30.03.2009 15:43:08 »
Цитировать
Интересно, а почему же тогда apt-get не видит этих зависимостей, если они предоставляются в пакете service, который установлен в системе ?
Почему не видит - именно видит.

Оффлайн zhe

  • Завсегдатай
  • *
  • Сообщений: 88
Re: Самодеятельность сборщика rpm ...
« Ответ #18 : 30.03.2009 16:03:42 »
 :-\ Аааа, понял, в чем мой косяк - ведь пакет service предоставляет:
/etc/rc.d/init.d(daemon)
/etc/rc.d/init.d(echo_failure)
/etc/rc.d/init.d(echo_passed)
/etc/rc.d/init.d(echo_success)
/etc/rc.d/init.d(failure)
...
а у меня:
/etc/init.d(echo_failure)
/etc/init.d(echo_success)
...
а я запихнул свой скрипт в /etc/init.d, что есть символическая ссылка на /etc/rc.d/init.d,  а для rpm это не одно и тоже .. Невнимательность..
после того, как я запихнул скрипт в /etc/rc.d/init.d всё стало на свои места  ;)
man google.com

Оффлайн php-coder

  • Начинающий
  • *
  • Сообщений: 20
Re: Самодеятельность сборщика rpm ...
« Ответ #19 : 30.03.2009 16:05:40 »
а я запихнул свой скрипт в /etc/init.d, что есть символическая ссылка на /etc/rc.d/init.d,  а для rpm это не одно и тоже .. Невнимательность..
после того, как я запихнул скрипт в /etc/rc.d/init.d всё стало на свои места  ;)

А вы скрипт запихивайте в %_initdir и тогда путь вам будет не важен.

Оффлайн zhe

  • Завсегдатай
  • *
  • Сообщений: 88
Re: Самодеятельность сборщика rpm ...
« Ответ #20 : 30.03.2009 16:39:11 »
а я запихнул свой скрипт в /etc/init.d, что есть символическая ссылка на /etc/rc.d/init.d,  а для rpm это не одно и тоже .. Невнимательность..
после того, как я запихнул скрипт в /etc/rc.d/init.d всё стало на свои места  ;)

А вы скрипт запихивайте в %_initdir и тогда путь вам будет не важен.

Отличная идея, спасибо, так и поступим  ::)
man google.com

Drool

  • Гость
Re: Самодеятельность сборщика rpm ...
« Ответ #21 : 30.03.2009 16:48:08 »
Отличная идея, спасибо, так и поступим  ::)

Кстати, если посмотреть в /usr/lib/rpm - можно узнать о других полезных макросах.

Оффлайн php-coder

  • Начинающий
  • *
  • Сообщений: 20
Re: Самодеятельность сборщика rpm ...
« Ответ #22 : 30.03.2009 16:49:25 »
Кстати, если посмотреть в /usr/lib/rpm - можно узнать о других полезных макросах.

Ну или rpm --showrc | less

Оффлайн zhe

  • Завсегдатай
  • *
  • Сообщений: 88
Re: Самодеятельность сборщика rpm ...
« Ответ #23 : 30.03.2009 16:52:06 »
ок, спасибо, поизучал уже много макросов - но на все ещё времени не хватило - век живи, век учись.  ;)
« Последнее редактирование: 30.03.2009 18:18:11 от zhecka83 »
man google.com

Оффлайн zhe

  • Завсегдатай
  • *
  • Сообщений: 88
Re: Самодеятельность сборщика rpm ...
« Ответ #24 : 30.03.2009 18:31:42 »
И ещё хотел задать один маленький вопросик по поводу самодеятельности - у меня сборщик rpm закомментированные строчки включает в Description, тоесть текст скрипта, исполняемого в закомментированных строках, если он стоит сразу после текста поля %description Есть ли знак или признак конца описания?
Вот например:
строки в спек:
%description devel
Internal class documentation for the registry classes, and the include
files that define hook interfaces.

#%prep
#%setup -q

#%configure

В собранном пакете Description пишется так:
Internal class documentation for the registry classes, and the include
files that define hook interfaces.



  CFLAGS="${CFLAGS:--pipe -Wall -O2 -march=i586 -mtune=i686}" ; export CFLAGS ;
  CXXFLAGS="${CXXFLAGS:--pipe -Wall -O2 -march=i586 -mtune=i686}" ; export CXXFLAGS ;
  FFLAGS="${FFLAGS:--pipe -Wall -O2 -march=i586 -mtune=i686}" ; export FFLAGS ;


  export lt_cv_deplibs_check_method=pass_all ;
  [ -f configure.ac -o -f configure.in ] && libtoolize --copy --force ;
  ./configure --build=i586-alt-linux --host=i586-alt-linux \
        --prefix=/usr \
        --exec-prefix=/usr \
        --bindir=/usr/bin \
        --sbindir=/usr/sbin \
        --sysconfdir=/etc \
        --datadir=/usr/share \
        --includedir=/usr/include \
        --libdir=/usr/lib \
        --libexecdir=/usr/libexec \
        --localstatedir=/var \
        --sharedstatedir=/usr/com \
        --mandir=/usr/man \
        --infodir=/usr/info \
        --disable-dependency-tracking \



« Последнее редактирование: 31.03.2009 12:27:46 от zhecka83 »
man google.com

Оффлайн Andrew Clark

  • Завсегдатай
  • *
  • Сообщений: 72
Re: Самодеятельность сборщика rpm ...
« Ответ #25 : 01.04.2009 10:05:49 »
Собираю пакет. На этапе поиска Requires, получаю такое:
Поиск Requires (используя /usr/lib/rpm/find-requires)
Выполняется(Requires): /bin/sh -e /home/andy/tmp/rpm-tmp.67343
+ umask 022
+ /bin/mkdir -p /home/andy/RPM/BUILD
+ cd /home/andy/RPM/BUILD
+ /usr/lib/rpm/find-requires
find-requires: running scripts (files,lib,osgi,pam,perl,pkgconfig,pkgconfiglib,python,rpmlib,shebang,shell,static,symlinks)
Can't locate Ksplice.pm in @INC (@INC contains: /usr/share/ksplice /usr/lib/rpm /etc/perl5 /usr/lib/perl5/i386-linux /usr/lib/perl5 /usr/lib/perl5/vendor_perl/i386-linux /usr/lib/perl5/vendor_perl /usr/local/lib/perl5/site_perl/5.8.9/i386-linux /usr/local/lib/perl5/site_perl/5.8.9 /usr/local/lib/perl5/site_perl .) at /home/andy/tmp/ksplice-buildroot/usr/bin/ksplice-create line 22.
BEGIN failed--compilation aborted at /home/andy/tmp/ksplice-buildroot/usr/bin/ksplice-create line 22.
# perl(Ksplice.pm) at line 22 (depth 3) not loaded at BEGIN SKIP
# /home/andy/tmp/ksplice-buildroot/usr/bin/ksplice-create: deparse failed. isPerl=0.024641213105876.
find-requires: ERROR: /usr/lib/rpm/perl.req failed
ошибка: /bin/sh не удалось
ошибка: Невозможно найти Requires
Что мне надо сделать?
"Если Вы увидели ошибку в чьем-то спеке или даже просто
вещи, которые можно улучшить - просто сообщите об этом ментейнеру. Это укрепит Вашу уверенность в ALT". force@

Drool

  • Гость
Re: Самодеятельность сборщика rpm ...
« Ответ #26 : 01.04.2009 10:47:45 »
Цитировать
...
Can't locate Ksplice.pm in...
...
find-requires: ERROR: /usr/lib/rpm/perl.req failed
...
Что мне надо сделать?

Найти и собрать перловый модуль, в котором есть Ksplice.pm? И установить его в сборочную среду (что там у вас - хашер или хостсистема). Судя по rpm.pbone.net - этот модуль есть из rpm-based только в федоре.

Оффлайн zhe

  • Завсегдатай
  • *
  • Сообщений: 88
Re: Самодеятельность сборщика rpm ...
« Ответ #27 : 13.04.2009 15:36:33 »
Интересно всё-таки, а про то, что текст скриптов помещается в description никто не может дать ответ ?  :-[
man google.com

Оффлайн php-coder

  • Начинающий
  • *
  • Сообщений: 20
Re: Самодеятельность сборщика rpm ...
« Ответ #28 : 13.04.2009 15:39:12 »
Интересно всё-таки, а про то, что текст скриптов помещается в description никто не может дать ответ ?  :-[

http://www.altlinux.org/TypicalPackagingErrors/StrikeOutMacro

Оффлайн zhe

  • Завсегдатай
  • *
  • Сообщений: 88
Re: Самодеятельность сборщика rpm ...
« Ответ #29 : 13.04.2009 15:48:42 »
Интересно всё-таки, а про то, что текст скриптов помещается в description никто не может дать ответ ?  :-[

http://www.altlinux.org/TypicalPackagingErrors/StrikeOutMacro

вот, то, что надо - спасибо!  :)
man google.com