Проблемы установки Perl модулей вручную - PullRequest
1 голос
/ 24 февраля 2020

Я пытаюсь установить модуль DateTime в моей системе. Я использую это руководство.

Сначала я просто использовал wget для загрузки без изменений, сделал perl Makefile.pm, а затем make

Затем я запустил в проблемах с зависимостями и увидел, что я мог бы вместо этого использовать CPAN.

Запуск install DateTime в cpan, похоже, работает, и если я пытаюсь установить его снова, я получаю DateTime is up to date (1.51).

Проблема хотя теперь, когда я пытаюсь запустить свой скрипт, я получаю Can't locate namespace/autoclean.pm in @INC, и попытка установить его через cpan приводит к сбоям вроде: Warning: no success downloading '/root/.cpan/sources/authors/id/n/n/n/na/namespace/autoclean.pm.tmp28533'. Giving up on it. at /usr/share/perl5/CPAN/Distribution.pm line 379

Есть что-то, чего я пропускаю? Я испортил мою установку, пытаясь установить Datetime через wget вместо cpan?

1 Ответ

3 голосов
/ 24 февраля 2020

Вы не показали, какую команду вы дали, но она не была правильной. [1] cpan пытался загрузить

authors/id/n/n/n/na/namespace/autoclean.pm

(autoclean.pm от Автор CPAN "namespace".)

Правильный файл

authors/id/E/ET/ETHER/namespace-autoclean-0.29.tar.gz

(namespace-autoclean-0.29.tar.gz автор CPAN "ETHER".)

Правильная команда оболочки:

cpan namespace::autoclean

В интерактивном интерфейсе cpan правильная команда:

install namespace::autoclean

  1. Я думаю, вы сделали эквивалент

    cpan namespace/autoclean.pm
    

    Когда вы указываете путь, ожидается, что это будет путь к дистрибутиву , включая идентификатор автора. Например, вы можете использовать следующее для установки указанной c версии дистрибутива:

    cpan ETHER/namespace-autoclean-0.29.tar.gz
    

    Обратите внимание, что более новые версии cpan сначала проверяют, соответствует ли путь известному модулю, поэтому cpan namespace/autoclean.pm фактически работал бы для более новых версий cpan.

...