CPAN: Как преодолеть «Пожалуйста, войдите в систему с USER и PASS». «В пассивном режиме отказано». ошибки? - PullRequest
1 голос
/ 08 ноября 2010

Как мне преодолеть «Пожалуйста, войдите в систему с USER и PASS». «В пассивном режиме отказано». ошибки? - при попытке установки модуля CPAN из командной строки cpan shell / cpan>

Из выходных журналов к терминалу он может подключаться к внешнему FTP-сайту Perl / CPAN с моего рабочего сервера, но удаленный компьютер запрашивает имя пользователя / пароль и отклоняет соединение из-за того, что я пассивен Режим.

(я тестировал ftp.perl.org отдельно и смог успешно войти в систему с пользователем: анонимный пароль: анонимный)

Итак,

  1. Куда я могу поместить имя пользователя / пароль для программы CPAN для передачи на этот удаленный компьютер perl / cpan? (Я предполагаю, что имя пользователя: анонимный, пароль: анонимный)
  2. Где я могу сделать настройку, чтобы сказать, что я нахожусь в правильном режиме (пассивном / непассивном), так что удаленный компьютер perl / cpan примет мое соединение
  3. Что-нибудь еще, что я должен сделать после того, как решил эти проблемы?

Вывод терминала ниже, а затем Config.pm в папке CPAN на моем сервере.

Моя машина - CentOS Linux.

Я пытаюсь успешно установить Date :: Calc - моя конечная цель. Спасибо.

Не могу найти ответы после поиска здесь и в интернете.

# cpan
Terminal does not support AddHistory.

cpan shell -- CPAN exploration and modules installation (v1.7602)
ReadLine support available (try 'install Bundle::CPAN')

cpan> install Date::Calc
CPAN: Storable loaded ok
Going to read /root/.cpan/Metadata
Warning: Found only 0 objects in /root/.cpan/Metadata
CPAN: LWP::UserAgent loaded ok
Fetching with LWP:
  ftp://ftp.perl.org/pub/CPAN/authors/01mailrc.txt.gz
LWP failed with code[404] message[File '01mailrc.txt.gz' not found]
Fetching with Net::FTP:
  ftp://ftp.perl.org/pub/CPAN/authors/01mailrc.txt.gz
Couldn't fetch 01mailrc.txt.gz from ftp.perl.org

Trying with "/usr/bin/links -source" to get
    ftp://ftp.perl.org/pub/CPAN/authors/01mailrc.txt.gz
ELinks: FTP file error

System call "/usr/bin/links -source "ftp://ftp.perl.org/pub/CPAN/authors/01mailrc.txt.gz"  > /root/.cpan/sources/authors/01mailrc.txt"
returned status 1 (wstat 256)
Warning: expected file [/root/.cpan/sources/authors/01mailrc.txt.gz] doesn't exist

Trying with "/usr/bin/wget -O -" to get
    ftp://ftp.perl.org/pub/CPAN/authors/01mailrc.txt.gz
--2010-11-08 15:50:51--  ftp://ftp.perl.org/pub/CPAN/authors/01mailrc.txt.gz
           => `-'
Resolving ftp.perl.org... 64.27.65.115, 168.143.19.69
Connecting to ftp.perl.org|64.27.65.115|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD /pub/CPAN/authors ... done.
==> SIZE 01mailrc.txt.gz ... 174301
==> PASV ... done.    ==> RETR 01mailrc.txt.gz ...
No such file `01mailrc.txt.gz'.


System call "/usr/bin/wget -O - "ftp://ftp.perl.org/pub/CPAN/authors/01mailrc.txt.gz"  > /root/.cpan/sources/authors/01mailrc.txt"
returned status 1 (wstat 256)
Warning: expected file [/root/.cpan/sources/authors/01mailrc.txt.gz] doesn't exist
Issuing "/usr/bin/ftp -n"
Trying 64.27.65.115...
usage: user username [password] [account]
Local directory now /root/.cpan/sources/authors
Please login with USER and PASS.
Please login with USER and PASS.
Please login with USER and PASS.
Please login with USER and PASS.
Please login with USER and PASS.
Please login with USER and PASS.
Passive mode refused.
Bad luck... Still failed!
Can't access URL ftp://ftp.perl.org/pub/CPAN/authors/01mailrc.txt.gz.

Please check, if the URLs I found in your configuration file
(ftp://ftp.perl.org/pub/CPAN/) are valid. The urllist can be edited. E.g.
with 'o conf urllist push ftp://myurl/'

Could not fetch authors/01mailrc.txt.gz
Fetching with LWP:
  ftp://ftp.perl.org/pub/CPAN/modules/02packages.details.txt.gz
LWP failed with code[404] message[File '02packages.details.txt.gz' not found]
Fetching with Net::FTP:
  ftp://ftp.perl.org/pub/CPAN/modules/02packages.details.txt.gz
Couldn't fetch 02packages.details.txt.gz from ftp.perl.org

Trying with "/usr/bin/links -source" to get
    ftp://ftp.perl.org/pub/CPAN/modules/02packages.details.txt.gz
ELinks: FTP file error

System call "/usr/bin/links -source "ftp://ftp.perl.org/pub/CPAN/modules/02packages.details.txt.gz"  > /root/.cpan/sources/modules/02packages.details.txt"
returned status 1 (wstat 256)
Warning: expected file [/root/.cpan/sources/modules/02packages.details.txt.gz] doesn't exist

Trying with "/usr/bin/wget -O -" to get
    ftp://ftp.perl.org/pub/CPAN/modules/02packages.details.txt.gz
--2010-11-08 15:51:12--  ftp://ftp.perl.org/pub/CPAN/modules/02packages.details.txt.gz
           => `-'
Resolving ftp.perl.org... 64.27.65.115, 168.143.19.69
Connecting to ftp.perl.org|64.27.65.115|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD /pub/CPAN/modules ... done.
==> SIZE 02packages.details.txt.gz ... 950491
==> PASV ... done.    ==> RETR 02packages.details.txt.gz ...
No such file `02packages.details.txt.gz'.


System call "/usr/bin/wget -O - "ftp://ftp.perl.org/pub/CPAN/modules/02packages.details.txt.gz"  > /root/.cpan/sources/modules/02packages.details.txt"
returned status 1 (wstat 256)
Warning: expected file [/root/.cpan/sources/modules/02packages.details.txt.gz] doesn't exist
Issuing "/usr/bin/ftp -n"
Trying 64.27.65.115...
usage: user username [password] [account]
Local directory now /root/.cpan/sources/modules
Please login with USER and PASS.
Please login with USER and PASS.
Please login with USER and PASS.
Please login with USER and PASS.
Please login with USER and PASS.
Please login with USER and PASS.
Passive mode refused.
Bad luck... Still failed!
Can't access URL ftp://ftp.perl.org/pub/CPAN/modules/02packages.details.txt.gz.

Please check, if the URLs I found in your configuration file
(ftp://ftp.perl.org/pub/CPAN/) are valid. The urllist can be edited. E.g.
with 'o conf urllist push ftp://myurl/'

Could not fetch modules/02packages.details.txt.gz
Fetching with LWP:
  ftp://ftp.perl.org/pub/CPAN/modules/03modlist.data.gz
LWP failed with code[404] message[File '03modlist.data.gz' not found]
Fetching with Net::FTP:
  ftp://ftp.perl.org/pub/CPAN/modules/03modlist.data.gz
Couldn't fetch 03modlist.data.gz from ftp.perl.org

Trying with "/usr/bin/links -source" to get
    ftp://ftp.perl.org/pub/CPAN/modules/03modlist.data.gz
ELinks: FTP file error

System call "/usr/bin/links -source "ftp://ftp.perl.org/pub/CPAN/modules/03modlist.data.gz"  > /root/.cpan/sources/modules/03modlist.data"
returned status 1 (wstat 256)
Warning: expected file [/root/.cpan/sources/modules/03modlist.data.gz] doesn't exist

Trying with "/usr/bin/wget -O -" to get
    ftp://ftp.perl.org/pub/CPAN/modules/03modlist.data.gz
--2010-11-08 15:51:31--  ftp://ftp.perl.org/pub/CPAN/modules/03modlist.data.gz
           => `-'
Resolving ftp.perl.org... 64.27.65.115, 168.143.19.69
Connecting to ftp.perl.org|64.27.65.115|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD /pub/CPAN/modules ... done.
==> SIZE 03modlist.data.gz ... 182988
==> PASV ... done.    ==> RETR 03modlist.data.gz ...
No such file `03modlist.data.gz'.


System call "/usr/bin/wget -O - "ftp://ftp.perl.org/pub/CPAN/modules/03modlist.data.gz"  > /root/.cpan/sources/modules/03modlist.data"
returned status 1 (wstat 256)
Warning: expected file [/root/.cpan/sources/modules/03modlist.data.gz] doesn't exist
Issuing "/usr/bin/ftp -n"
Trying 64.27.65.115...
usage: user username [password] [account]
Local directory now /root/.cpan/sources/modules
Please login with USER and PASS.
Please login with USER and PASS.
Please login with USER and PASS.
Please login with USER and PASS.
Please login with USER and PASS.
Please login with USER and PASS.
Passive mode refused.
Bad luck... Still failed!
Can't access URL ftp://ftp.perl.org/pub/CPAN/modules/03modlist.data.gz.

Please check, if the URLs I found in your configuration file
(ftp://ftp.perl.org/pub/CPAN/) are valid. The urllist can be edited. E.g.
with 'o conf urllist push ftp://myurl/'

Could not fetch modules/03modlist.data.gz
Going to write /root/.cpan/Metadata
Warning: Cannot install Date::Calc, don't know what it is.
Try the command

    i /Date::Calc/

to find objects with matching identifiers.

/ usr / lib / perl5 / 5.8.8 / CPAN / Config.pm: -

# This is CPAN.pm's systemwide configuration file. This file provides
# defaults for users, and the values can be changed in a per-user
# configuration file. The user-config file is being looked for as
# ~/.cpan/CPAN/MyConfig.pm.

$CPAN::Config = {
  'build_cache' => q[10],
  'build_dir' => q[/root/.cpan/build],
  'cache_metadata' => q[1],
  'cpan_home' => q[/root/.cpan],
  'dontload_hash' => {  },
  'ftp' => q[/usr/bin/ftp],
  'ftp_proxy' => q[],
  'getcwd' => q[cwd],
  'gpg' => q[/usr/bin/gpg],
  'gzip' => q[/bin/gzip],
  'histfile' => q[/root/.cpan/histfile],
  'histsize' => q[100],
  'http_proxy' => q[],
  'inactivity_timeout' => q[0],
  'index_expire' => q[1],
  'inhibit_startup_message' => q[0],
  'keep_source_where' => q[/root/.cpan/sources],
  'links' => q[/usr/bin/links],
  'make' => q[/usr/bin/make],
  'make_arg' => q[],
  'make_install_arg' => q[],
  'makepl_arg' => q[],
  'ncftp' => q[],
  'ncftpget' => q[],
  'no_proxy' => q[],
  'pager' => q[/usr/bin/less],
  'prerequisites_policy' => q[ask],
  'scan_cache' => q[atstart],
  'shell' => q[/bin/bash],
  'tar' => q[/bin/tar],
  'term_is_latin' => q[1],
  'unzip' => q[/usr/bin/unzip],
  'urllist' => [q[ftp://ftp.perl.org/pub/CPAN/]],
  'wget' => q[/usr/bin/wget],
};
1;
__END__

Обновление:

В ответ на комментарий daxim к его ответу: «Вы можете редактировать комментарии. - Либо отредактируйте Config.pm, ключевой urllist является массивом строк, либо запустите o conf urllist в приглашении CPAN. - daxim 16 часов назад» - Я попробовал ваши предложения ниже, Даксим:

Сначала я попробовал:

  cpan> o conf urllist
    urllist
        ftp://ftp.perl.org/pub/CPAN/
Type 'o conf' to view configuration edit options

Следуя инструкциям (т. Е. 3-й пример, под заголовком «изменение значений списка: o conf KEY SHIFT | UNSHIFT | PUSH | POP | SPLICE | LIST» в http://search.cpan.org/~andk/CPAN-1.9402/lib/CPAN.pm#changing), добавьте зеркало http: http://www.cpan.org/SITES.html

cpan> o conf urllist http://mirror.ox.ac.uk/sites/www.cpan.org/ ftp://ftp.perl.org/pub/CPAN/

cpan> o conf urllist
    urllist
        ftp://ftp.perl.org/pub/CPAN/
Type 'o conf' to view configuration edit options


cpan>

Итак, из вышесказанного мое HTTP-зеркало не было добавлено. Кто-нибудь может дать совет?

Итак, я попробовал: «Либо отредактируйте Config.pm, ключевой URL-адрес является массивом строк;»:

Соответствующий фрагмент в Config.pm:

 'urllist' => [q[ftp://ftp.perl.org/pub/CPAN/]],
  'wget' => q[/usr/bin/wget],

Как бы выглядел мой arrayref - с моим списком зеркал. то есть, пожалуйста, скажите мне, как я должен отредактировать это.

Обновление 2:

Инструкции, приведенные в http://search.cpan.org/~andk/CPAN-1.9402/lib/CPAN.pm#changing (в третьем примере), по добавлению URL-адреса в список URL-адресов неполны, т. Е. Неправильно, они пропустили толчок. Успешная команда:

[root CPAN]# cpan
Terminal does not support AddHistory.

cpan shell -- CPAN exploration and modules installation (v1.7602)
ReadLine support available (try 'install Bundle::CPAN')

cpan> o conf urllist push http://mirror.ox.ac.uk/sites/www.cpan.org/

cpan> o conf urllist
    urllist
        ftp://ftp.perl.org/pub/CPAN/
        http://mirror.ox.ac.uk/sites/www.cpan.org/
Type 'o conf' to view configuration edit options


cpan>

От:

http://www.perlmonks.org/?node_id=551175

Другие важные вещи:

Предварительно необходимо проверить, устанавливает ли новый модуль, устанавливает ли он также зависимости - то есть другие модули - и являются ли они более новыми версиями существующих на машине и, следовательно, изменилось ли их поведение или интерфейс, которые могли бы повлиять на существующие приложения, работающие на компьютере: Влияет ли установка новых модулей CPAN на приложения Perl-CGI на том же рабочем сервере?

Обновление 3:

Может показаться, что редактирование urllist не является постоянным, поскольку при повторном входе в cpan после предыдущего выхода остается только запись ftp.

cpan> o conf urllist
    urllist
        ftp://ftp.perl.org/pub/CPAN/
Type 'o conf' to view configuration edit options

Ответы [ 3 ]

3 голосов
/ 08 ноября 2010

Преодоление проблем FTP (это действительно глупый сетевой протокол) с помощью выбора зеркала HTTP .

0 голосов
/ 08 ноября 2010

Я думаю, что вы неправильно диагностируете проблему - вы сталкиваетесь с ошибками гораздо раньше, например, в строках

Извлечение с помощью LWP:
ftp: // ftp.perl.org/pub/CPAN/authors/01mailrc.txt.gz
Сбой LWP с кодом [404] сообщение [Файл '01mailrc.txt.gz' не найден]

У вас есть прокси или межсетевой экран, установленный между этой машиной и интернетом?Это соединение не установлено.

0 голосов
/ 08 ноября 2010

Я не уверен, почему вы получаете приглашение с именем пользователя / паролем, но я полагаю, что вы сможете установить для него значения, указанные вами выше, создав файл ~/.netrc, который выглядит примерно так:

machine ftp.perl.org
   login anonymous
   password anonymous@cpan.org

или вы можете принудительно сделать все запросы ftp автоматически анонимными, если не указано иное, добавив эту строку в ~/.netrc

default login anonymous password anonymous@cpan.org

Каждый FTP-клиент и библиотека, которые я когда-либо использовал, чтит файл .netrc. Это один из способов сохранить пароль для сайта вне вашего исходного кода, даже если он находится в виде простого текста.

...