[devel] Поиск зависимостей

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Ср Сен 19 13:13:05 MSD 2007


On Wed, Sep 19, 2007 at 11:53:19AM +0300, Slava Dubrovskiy wrote:
> > В общем-то то что дает perl.req это и есть список пакетов.
> > Его можно скармливать апту почти что в чистом виде.
> Не очень понятно как. Приведите пример, пожалуйста.

$ perl.req /usr/bin/rss2mail2
# perl(Data/Dumper.pm) at line 314 (depth 3) inside eval SKIP
# perl(HTML/Lint.pm) at line 322 (depth 3) inside eval SKIP
# perl(XML/OPML.pm) at line 365 (depth 6) inside eval SKIP
/usr/bin/rss2mail2 syntax OK
perl(AppConfig.pm)
perl(base.pm)
perl(Class/DBI/BaseDSN.pm)
perl(Digest/MD5.pm)
perl(Encode.pm)
perl(Exception/Class.pm)
perl(Fcntl.pm)
perl(File/Path.pm)
perl(File/Spec/Functions.pm)
perl(Getopt/Long.pm)
perl(HTML/FormatText/WithLinks.pm)
perl(HTTP/Headers.pm)
perl(HTTP/Request.pm)
perl(List/Util.pm)
perl(LWP/UserAgent.pm)
perl(MIME/Lite.pm)
perl(MIME/Words.pm)
perl(Text/Autoformat.pm)
perl(Text/Diff.pm)
perl(warnings.pm)
perl(XML/Feed.pm)
$

Здесь все зависимости без версий, и их просто можно скармливать апту.

$ apt-get --dry-run install `perl.req /usr/bin/rss2mail2`
# perl(Data/Dumper.pm) at line 314 (depth 3) inside eval SKIP
# perl(HTML/Lint.pm) at line 322 (depth 3) inside eval SKIP
# perl(XML/OPML.pm) at line 365 (depth 6) inside eval SKIP
/usr/bin/rss2mail2 syntax OK
Reading Package Lists... Done
Building Dependency Tree... Done
Selecting perl-AppConfig for 'perl(AppConfig.pm)'
perl-AppConfig is already the newest version.
Selecting perl-base for 'perl(base.pm)'
perl-base is already the newest version.
Selecting perl-Class-DBI-BaseDSN for 'perl(Class/DBI/BaseDSN.pm)'
perl-Class-DBI-BaseDSN is already the newest version.
Selecting perl-base for 'perl(Digest/MD5.pm)'
perl-base is already the newest version.
Selecting perl-Encode for 'perl(Encode.pm)'
perl-Encode is already the newest version.
Selecting perl-Exception-Class for 'perl(Exception/Class.pm)'
perl-Exception-Class is already the newest version.
Selecting perl-base for 'perl(Fcntl.pm)'
perl-base is already the newest version.
Selecting perl-base for 'perl(File/Path.pm)'
perl-base is already the newest version.
Selecting perl-base for 'perl(File/Spec/Functions.pm)'
perl-base is already the newest version.
Selecting perl-base for 'perl(Getopt/Long.pm)'
perl-base is already the newest version.
Selecting perl-HTML-FormatText-WithLinks for 'perl(HTML/FormatText/WithLinks.pm)'
perl-HTML-FormatText-WithLinks is already the newest version.
Selecting perl-libwww for 'perl(HTTP/Headers.pm)'
perl-libwww is already the newest version.
Selecting perl-libwww for 'perl(HTTP/Request.pm)'
perl-libwww is already the newest version.
Package perl(List/Util.pm) is a virtual package provided by:
  perl-base 5.8.8-alt14 [Installed]
  perl-Scalar-List-Utils 1.18-alt1
You should explicitly select one to install.
E: Package perl(List/Util.pm) is a virtual package with multiple good 
$

Кто собрал пакет perl-Scalar-List-Utils тот называется нехороший человек --
редиска.

В зависимостях с версиями нужно удалить пробелы.

$ perl.req /usr/lib/perl5/vendor_perl/i386-linux/XML/LibXSLT.pm 
/usr/lib/perl5/vendor_perl/i386-linux/XML/LibXSLT.pm syntax OK
perl(XML/LibXML.pm) >= 1.600
perl(XML/LibXML/Boolean.pm)
perl(XML/LibXML/Literal.pm)
perl(XML/LibXML/NodeList.pm)
perl(XML/LibXML/Number.pm)
perl(XSLoader.pm)
$ perl.req /usr/lib/perl5/vendor_perl/i386-linux/XML/LibXSLT.pm |sed s/\ //g
/usr/lib/perl5/vendor_perl/i386-linux/XML/LibXSLT.pm syntax OK
perl(XML/LibXML.pm)>=1.600
perl(XML/LibXML/Boolean.pm)
perl(XML/LibXML/Literal.pm)
perl(XML/LibXML/NodeList.pm)
perl(XML/LibXML/Number.pm)
perl(XSLoader.pm)
$ apt-get --dry-run install `!!`
apt-get --dry-run install `perl.req /usr/lib/perl5/vendor_perl/i386-linux/XML/LibXSLT.pm |sed s/\ //g`
/usr/lib/perl5/vendor_perl/i386-linux/XML/LibXSLT.pm syntax OK
Reading Package Lists... Done
Building Dependency Tree... Done
E: Couldn't find package perl(XML
$

Что-то не работает.
В общем, тогда можно отрезать версии.

$ apt-get --dry-run install `perl.req /usr/lib/perl5/vendor_perl/i386-linux/XML/LibXSLT.pm |sed 's/ .*//g'`
/usr/lib/perl5/vendor_perl/i386-linux/XML/LibXSLT.pm syntax OK
Reading Package Lists... Done
Building Dependency Tree... Done
Selecting perl-XML-LibXML for 'perl(XML/LibXML.pm)'
perl-XML-LibXML is already the newest version.
Selecting perl-XML-LibXML for 'perl(XML/LibXML/Boolean.pm)'
perl-XML-LibXML is already the newest version.
Selecting perl-XML-LibXML for 'perl(XML/LibXML/Literal.pm)'
perl-XML-LibXML is already the newest version.
Selecting perl-XML-LibXML for 'perl(XML/LibXML/NodeList.pm)'
perl-XML-LibXML is already the newest version.
Selecting perl-XML-LibXML for 'perl(XML/LibXML/Number.pm)'
perl-XML-LibXML is already the newest version.
Selecting perl-base for 'perl(XSLoader.pm)'
perl-base is already the newest version.
0 upgraded, 0 newly installed, 0 removed and 175 not upgraded.
$

> # perl(cgi-lib.pl) at line 9 (depth 3) inside eval SKIP
> # perl(easydata.set) at line 12 (depth 3) invalid SKIP
> # perl(staff_users.set) at line 14 (depth 3) invalid SKIP
> # perl(dblib.pl) at line 15 (depth 3) inside eval SKIP
> # perl(edfunc.pl) at line 16 (depth 3) inside eval SKIP
> # perl(staff_auth.pm) at line 17 (depth 3) inside eval SKIP
> /var/www/cgi-bin/video/staff_adm_login.cgi syntax OK
> и т.д. Там где Ok все понятно, а там где "inside eval SKIP" что это значит?

Это значит что указанных зависимостей нет.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20070919/394bbcbb/attachment-0002.bin>


Подробная информация о списке рассылки Devel