#perl #cpanm
Вопрос:
Я пытался установить модуль Date::Manip perl, и все время получаю эту ошибку
[root@localhost ~]# cpanm Date::Manip ! Finding Date::Manip on cpanmetadb failed. ! cannot open file '/root/.cpanm/sources/http%www.cpan.org/02packages.details.txt.gz': No such file or directory opening compressed index ! Couldn't find module or a distribution Date::Manip
Что не так с сайтом cpanmetadb ? Запустив опцию —verbose с cpanm, я получил этот вывод
[root@localhost .cpanm]# cpanm Date::Manip --verbose cpanm (App::cpanminus) 1.7001 on perl 5.010001 built for x86_64-linux-thread-multi Work directory is /root/.cpanm/work/1380194227.8657 You have make /usr/bin/make You have LWP 5.833 You have /bin/tar: tar (GNU tar) 1.23 Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3 : GNU GPL version 3 or later lt;http://gnu.org/licenses/gpl.htmlgt;. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by John Gilmore and Jay Fenlason. You have /usr/bin/unzip Searching Date::Manip on cpanmetadb ... ! Finding Date::Manip on cpanmetadb failed. Searching Date::Manip () on metacpan ... ! Could not find a release matching Date::Manip () on MetaCPAN. Searching Date::Manip on mirror http://www.cpan.org ... Downloading index file http://www.cpan.org/modules/02packages.details.txt.gz ... Uncompressing index file... ! cannot open file '/root/.cpanm/sources/http%www.cpan.org /02packages.details.txt.gz': No such file or directory opening compressed index ! Couldn't find module or a distribution Date::Manip
Комментарии:
1. Вы проверили свой
/root/.cpanm
каталог, как указано в сообщении об ошибке?2. Беги
cpanm
с--verbose
выключателем. Вы увидите используемый URL-адрес cpanmetadb в выходных данных. Можете ли вы получить его вручную?
Ответ №1:
Что — то не так с именем файла.
! cannot open file '/root/.cpanm/sources/http%www.cpan.org lt;-- newline and % /02packages.details.txt.gz':
Я подозреваю, что что-то не так в вашей конфигурации cpan(m).
Может быть, обновление sellf поможет
cpanm --verbose --self-upgrade cpanm --reinstall App::cpanminus
Вы можете использовать cpanm для установки чего-либо с прямого URL-адреса:
cpanm http://search.cpan.org/CPAN/authors/id/S/SB/SBECK/Date-Manip-6.41.tar.gz
Или вы можете попробовать использовать зеркало:
cpanm --mirror http://cpan.cpantesters.org/ Date::Manip
Ответ №2:
У меня была та же проблема со всеми неудачными попытками установки cpanm с использованием bin/cpanm perlbrew. Для исправления потребовалось несколько шагов. По сути, cpan не мог выйти за пределы моей локальной сети, поэтому мне пришлось указать свой прокси-сервер в дополнительных местах, кроме wgetrc и .curlrc.
- Убедитесь, что у вас есть переменная среды, установленная с помощью:
export HTTP_PROXY="http://my_url_to_proxy:my_port"
- Убедитесь, что cpan имеет те же настройки прокси-сервера:
cpan o conf /proxy/
Теперь посмотрите на свое значение для http_proxy, если оно пустое, перейдите к следующей строке:
o conf init http_proxy
Введите ВВОД, затем введите значение.
http_proxy [http://my_url_to_proxy:my_port]
Вот и все для меня. Если у вас все еще есть проблемы, находясь в cpan, выполните следующую команду:
o conf
и посмотрите на настройки как для «curl», так и для «wget». Убедитесь, что они не пустые ‘[]’. По крайней мере один из них должен иметь значение, например:
wget [/usr/bin/wget]
Я предлагаю вам протестировать wget и/или curl сами по себе в командной строке, чтобы убедиться, что вы можете даже дотянуться cpan.org путем выдачи:
wget -qO- http://search.cpan.org
Посмотрите, получаете ли вы поток данных на свою консоль. Если нет, сначала проработайте этот вопрос.
Ответ №3:
Работают ли wget или curl с этим файлом? У меня та же проблема с cpanm из-за некоторых сетевых проблем. Попробуй:
wget http://www.cpan.org/modules/02packages.details.txt.gz curl -O http://www.cpan.org/modules/02packages.details.txt.gz