Bug 12712 - missing perl dependency?
Summary: missing perl dependency?
Status: CLOSED WONTFIX
Alias: None
Product: Sisyphus
Classification: Development
Component: nagios (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: nbr
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-09-07 17:55 MSD by Andrey V Khavryuchenko
Modified: 2007-11-14 06:43 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrey V Khavryuchenko 2007-09-07 17:55:14 MSD
В свежеразвёрнутой OVZ VPS из старого
(http://paq.osdn.org.ua/~mike/tmp/openvz/altlinux-20060914-x86_64.tar.gz) кеша:

akhavr@hosting ~ $ sudo apt-get install nagios
[...]
akhavr@hosting ~ $ sudo service nagios restart
Service nagios is not running.                                          [PASSED]
/usr/sbin/nagios: symbol lookup error: /usr/sbin/nagios: undefined symbol:
PL_perlio_mutex
failed - aborting ... initlog: nothing to do
                                                                        [FAILED]
Starting nagios service: /usr/sbin/nagios: symbol lookup error:
/usr/sbin/nagios: undefined symbol: PL_perlio_mutex
                                                                        [FAILED]
akhavr@hosting ~ $ rpm -qa | grep perl
perl-base-5.8.8-alt4
akhavr@hosting ~ $ sudo apt-get install perl
Reading Package Lists... Done
Building Dependency Tree... Done
Selecting perl-base for 'perl'
The following packages will be upgraded
  perl-base
1 upgraded, 0 newly installed, 0 removed and 96 not upgraded.
Need to get 1486kB of archives.
After unpacking 280kB of additional disk space will be used.
Get:1 ftp://ftp.linux.kiev.ua x86_64/classic perl-base 1:5.8.8-alt14 [1486kB]
Fetched 1486kB in 59s (25.1kB/s)
Committing changes...
Preparing...                 ########################################### [100%]
1: perl-base                 ########################################### [100%]
Done.
akhavr@hosting ~ $ sudo service nagios restart
Service nagios is not running.                                          [PASSED]
Starting nagios service:                                                [ DONE ]
Comment 1 at@altlinux.org 2007-09-08 16:12:23 MSD
Что у вас говорит
nm -D /usr/sbin/nagios |grep PL_perlio_mutex
Comment 2 Andrey V Khavryuchenko 2007-09-08 16:47:41 MSD
# nm -D /usr/sbin/nagios |grep PL_perlio_mutex
0000000000670990 B PL_perlio_mutex
Comment 3 at@altlinux.org 2007-09-08 18:37:07 MSD
К сожалению, здесь также издержки сборки snapshot'ов.
Дело в том, что nginx требует libperl.so.5.8(PERL_5.8.9).
Но этот интерфейс комплектовался "постепенно", то есть в него время от времени
что-то добавлялось.  Я четко следил за тем, чтобы ни один перловый модуль не
использовал новых функций из PERL_5.8.9.  Но штуки типа nginx лезут слишком
глубоко, потому что встраивают в себя собственный перловый интерпретатор.

Так вот, perl-base-5.8.8-alt4 уже предоставляет интерфейс PERL_5.8.9, и
зависимость на libperl.so.5.8(PERL_5.8.9) оказывается разрешенной.  Тем не
менее, в этой версии perl-base интерфейс libperl.so.5.8 ещё не предоставляет
всех функций, которые добавились в него позднее.

А с перемнной "B PL_perlio_mutex" существует отдельный класс проблем, я написал
об этом в devel. 
http://lists.altlinux.ru/pipermail/devel/2007-September/062742.html
Comment 4 Andrey V Khavryuchenko 2007-09-08 18:49:23 MSD
Ok, прочитал.  Не то чтобы мне этот дефект был принципиален, просто
"неаккуратненько"..
Comment 5 at@altlinux.org 2007-09-08 19:13:51 MSD
Признаю проблему не решаемой.  Фактически все пакеты, которые требуют
libperl.so.5.8(PERL_5.8.9), могут также неявно требовать версию perl-base не
меньше той, с которой были собраны.  Таких пакетов заведомо немного:

$ apt-cache showpkg 'libperl.so.5.8(PERL_5.8.9)' |grep '^  ' |sort -u
  apache2-mod_perl,libperl.so.5.8(PERL_5.8.9)
  nagios,libperl.so.5.8(PERL_5.8.9)
  nginx,libperl.so.5.8(PERL_5.8.9)
  perl-devel,libperl.so.5.8(PERL_5.8.9)
  perl-suidperl,libperl.so.5.8(PERL_5.8.9)
$

То есть, по сути, таких пакетов всего три: apache2-mod_perl, nagios и nginx.
Ни один перловый модуль не подвержен этой проблеме, для этого я специально
патчил перл.
Comment 6 Denis Smirnov 2007-09-08 20:14:10 MSD
Зависимость на перл какого вида надо ставить на такие пакеты?
Comment 7 at@altlinux.org 2007-11-14 06:43:44 MSK
Не знаю.  Лучше никакую не ставить.
В принципе неплохо бы ставить автоматически...