cpanm не находит более новую версию в локальном зеркале

Я создал несколько проприетарных модулей Perl, которыми не могу поделиться, поэтому я поместил их в локальную «темную панель» с помощью orepan2. Вот начало 02packages.details.txt.

[~] $ gunzip -c darkpan/modules/02packages.details.txt.gz
File:         02packages.details.txt
URL:          http://www.perl.com/CPAN/modules/02packages.details.txt
Description:  DarkPAN
Columns:      package name, version, path
Intended-For: Automated fetch routines, namespace documentation.
Written-By:   OrePAN2 0.47
Line-Count:   30
Last-Updated: Wed Apr 24 15:44:46 2019

MyProj::MyMod            1.201904241840         D/DU/DUMMY/MyProj-MyMod-v1.20190424.1840.tar.gz

Когда я печатаю

cpanm --mirror=file:///path/to/darkpan --mirror-only MyProj::MyMod

он отвечает, что MyProj::MyMod обновлен, хотя версия в darktab новее. Чтобы установить его, мне нужно сказать «MyProj::MyMod-201904241840» в командной строке.

Почему cpanm не распознает, что версия в индексе darkpan новее установленной?

Почему я не могу просто сказать

cpanm --mirror=file:///path/to/darkpan --mirror-only MyProj-MyMod

чтобы загрузить это как модуль, а не как отдельный пакет?


person Lawrence I. Siden    schedule 25.04.2019    source источник
comment
Я не могу сказать ничего полезного, кроме того, что я также использую orepan2, и он работает так, как рекламируется для меня. Звучит безумно, но пробовали ли вы что-нибудь с более короткой строкой версии? Имя вашего архива указывает на версию v1.20190424.1840, но версия в индексе — 1.201904241840. Если ваша версия усекается, это объясняет, что вы испытываете.   -  person Diab Jerius    schedule 25.04.2019
comment
См. также Можно ли добавить несколько версий модуля в индекс minicpan?   -  person Håkon Hægland    schedule 25.04.2019
comment
@DiabJerius, я почти уверен, что версия в имени файла вообще не используется. Индексатор CPAN берет версию из архива и помещает ее в 02packages.details.txt, как эмулируется orepan2.   -  person ikegami    schedule 25.04.2019
comment
@ikegami Я предполагаю, что версия в имени файла такая же, как и в архиве (на самом деле это вопрос для @LawrenceISiden), поэтому, если она отличается от того, что в индексе, это может быть признаком того, что индексатор каким-то образом искажает Это.   -  person Diab Jerius    schedule 26.04.2019
comment
@ikegami [время редактирования истекло] Не зная версии в архиве, я использую версию в имени файла в качестве прокси для нее.   -  person Diab Jerius    schedule 26.04.2019
comment
В модуле верхнего уровня последним является $MyProj::MyMod::VERSION = 'v1.20190426.1432'; Таким образом, индексатор отбрасывает начальную букву «v» и вторую «.». Мне нужно узнать больше о правилах именования версий.   -  person Lawrence I. Siden    schedule 26.04.2019
comment
Я попробовал еще раз, удалив начальную «v» из номера версии, так как узнал, что это нестандартно. Все еще не работает без cpanm --mirror /path/to/my/darkpan --mirror-only MyProj::[email protected]. Обратите внимание, что я должен указать имя пакета X::Y, а не имя дистрибутива X-Y. Как cpan ищет dist в индексе?   -  person Lawrence I. Siden    schedule 26.04.2019
comment
У меня не было проблем с версиями с буквой «v». Каковы точные версии установленных пакетов и пакетов darkpan?   -  person Diab Jerius    schedule 26.04.2019
comment
Я заставил его работать, используя ванильную схему управления версиями. Пример: $My::Package::VERSION = '1.004'. Тогда мне не нужно указывать номер версии в командной строке, чтобы cpanm мог найти последнюю версию. Это то, что Dist::Zilla::Plugin::PkgVersion выдает по умолчанию.   -  person Lawrence I. Siden    schedule 14.05.2019


Ответы (1)


насколько я знаю, cpanm прав, «актуальность» основана на том факте, что установлено что-то, что соответствует указанной минимальной версии... чего вы не сделали. поправьте меня, если я ошибаюсь, но есть вариант переустановки, который сделает свое дело и получит все последние версии, которые сможет найти.

person vanHoesel    schedule 25.04.2019
comment
Нет, это сообщение появляется, когда предлагается установить модуль, а последняя версия уже установлена. В противном случае установите последнюю версию - person ikegami; 25.04.2019