Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с Net::SSH::W32Perl, нид хэлп 
:(
    Опции темы
Sojer
  Дата 16.8.2007, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 2.8.2007

Репутация: нет
Всего: нет



Значит задача такая: нужен скрипт на перле, который будет запускаться с виндовой тачки и выполнять команды на удалённом шелле по ssh. Есть как раз такой модуль: Net::SSH::W32Perl
http://search.cpan.org/~scotts/Net-SSH-W32.../SSH/W32Perl.pm
http://search.cpan.org/src/SCOTTS/Net-SSH-...erl-0.05/README

Проблема заключается в том, что он у меня не хочет ставиться, а точнее вообще не находится =\
Через ppm находит только Net::SSH, который под виндой не работает. Пробывал как написано в ридми делать так:
Код

D:\Coding\Perl\Net-SSH>ppm install --location=http://www.soulcage.n
et/ppds Net::SSH::W32Perl
Usage:  ppm install [--force] [--nodeps] [--area <area>] <module> | <url> | <fil
e> | <num>
        Run 'ppm help install' to learn more.

D:\Coding\Perl\Net-SSH>


Скрипт такого содержания:
Код
use Net::SSH::W32Perl;

my $host = '****';
my $ssh = new Net::SSH::W32Perl (
            $host, 
            protocol => 2,
            debug    => 1 );
$ssh->login('****', '****');
my ($out, $err, $exit) = $ssh->cmd('cat', 'Hello Net::SSH::W32Perl User!');


Код
H:\Perl\SSH 4 win>perl -c s.pl
Can't locate Net/SSH/W32Perl.pm in @INC (@INC contains: C:/Perl/site/lib C:/Perl
/lib .) at s.pl line 1.
BEGIN failed--compilation aborted at s.pl line 1.

H:\Perl\SSH 4 win>


Что делать?  smile 

Это сообщение отредактировал(а) Sojer - 17.8.2007, 11:42
PM MAIL   Вверх
amg
Дата 16.8.2007, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Цитата(Sojer @  16.8.2007,  13:26 Найти цитируемый пост)
Проблема заключается в том, что он у меня не хочет ставиться, а точнее вообще не находится
Перл от ActiveState? Если да, то действительно, у ActiveState нет этого модуля, зато он есть в репозитарии http://cpan.uwinnipeg.ca/module. Просто добавь в ppm этот репозитарий (не помню уж, как это делается, но точно можно). И еще рекомендую в таких случаях пользоваться не официальным CPAN-овским поиском модулей, а, например, http://kobesearch.cpan.org/htdocs/faqs/cpan-search.html. Он вдобавок показывает в каких репозитариях какие пакеты для Win есть.

PM MAIL   Вверх
Sojer
Дата 16.8.2007, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 2.8.2007

Репутация: нет
Всего: нет



да, актив перл: This is perl, v5.8.8 built for MSWin32-x86-multi-thread

ну вот нашёл я его там: http://cpan.uwinnipeg.ca/htdocs/Net-SSH-W3...SH/W32Perl.html
а как заинсталить?
PM MAIL   Вверх
amg
Дата 16.8.2007, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Для начала см. http://cpan.uwinnipeg.ca/htdocs/faqs/ppm.html. Там адреса различных репозитариев.
Я сейчас попробовал поставить себе на винду этот модуль. Выглядело это так:
В консоли сказал ppm. ppm запустился и дал мне свою командную строку. В ней надо ввести всего две команды:
ppm> rep add uwinnipeg http://theoryx5.uwinnipeg.ca/ppms/
ppm> install Net::SSH::W32Perl

После этого сначала установились десятка полтора модулей из зависимостей, под конец и сам Net::SSH::W32Perl. Пробуй. Очевидно, что устанавливать этот модуль вручную, с учетом того, сколько у него зависимостей - занятие для мазохистов.

PM MAIL   Вверх
fantome
Дата 16.8.2007, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 5.2.2007

Репутация: 1
Всего: 1



amg
Цитата

устанавливать этот модуль вручную, с учетом того, сколько у него зависимостей - занятие для мазохистов

если надо - то и вручную установишь...

а так - спасибо за ссылки... Благодарю... 
Сам юзаю и под линем и под вынью перл... но вот под вынь не знал репозитариев.. а cpan'овские не подходят...
PM MAIL   Вверх
Sojer
Дата 17.8.2007, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 2.8.2007

Репутация: нет
Всего: нет



amg
вери сэнкс, вопросов больше нет

фак, вопросы всётки есть! =((
скрипт:
Код
use Net::SSH::W32Perl;

my $host = '****';
my $ssh = new Net::SSH::W32Perl (
            $host, 
            protocol => 2,
            debug    => 1 );
$ssh->login('****', '****');
my ($out, $err, $exit) = $ssh->cmd('cat', 'Hello Net::SSH::W32Perl User!');


Код
H:\My projects\Perl\SSH 4 win>perl -c s.pl
s.pl syntax OK

H:\Perl\SSH 4 win>s.pl
The getpwuid function is unimplemented at C:/Perl/site/lib/Net/SSH/Perl.pm line
110.

H:\Perl\SSH 4 win>


что за фигня?  smile 

Это сообщение отредактировал(а) Sojer - 17.8.2007, 10:37
PM MAIL   Вверх
fantome
Дата 17.8.2007, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 5.2.2007

Репутация: 1
Всего: 1



Sojer
модуль Net::SSH::W32Perl использует Net::SSH::Perl модуль... А гворит он что не может выполнить функцию из этого модуля...
Совет - пройдись в отладке... возможно что что-то не определено...
PM MAIL   Вверх
Sojer
Дата 17.8.2007, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 2.8.2007

Репутация: нет
Всего: нет



хз, проверил сам Perl.pm:
Код
C:\Perl\site\lib\Net\SSH>perl -c Perl.pm
Perl.pm syntax OK

C:\Perl\site\lib\Net\SSH>


на всякий случай закоментировал use strict; не помогло

вот кусок где ошибка:
109:    my %arg = @_;
110:   my $home = $ENV{HOME} || (getpwuid($>))[7];
111:    my $user_config = delete $arg{user_config} || "$home/.ssh/config";

getpwuid нигде не определена, что за функция я хз ...
PM MAIL   Вверх
Nab
Дата 17.8.2007, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



smile
напиши в начале скрипта

Код

BEGIN {
  $ENV{HOME} = $ENV{APPDATA} || $ENV{USERPROFILE}
}



--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
fantome
Дата 17.8.2007, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 5.2.2007

Репутация: 1
Всего: 1



Sojer
Цитата

вот кусок где ошибка:
109:    my %arg = @_;
110:   my $home = $ENV{HOME} || (getpwuid($>))[7];
111:    my $user_config = delete $arg{user_config} || "$home/.ssh/config";

getpwuid нигде не определена, что за функция я хз ...


это юниксовая функция...
Код

GETPWNAM(3)                                            Linux Programmer's Manual                                            GETPWNAM(3)



NAME
       getpwnam, getpwnam_r, getpwuid, getpwuid_r - get password file entry

SYNOPSIS
       #include <sys/types.h>
       #include <pwd.h>

       struct passwd *getpwnam(const char *name);

       struct passwd *getpwuid(uid_t uid);

       int getpwnam_r(const char *name, struct passwd *pwbuf,
               char *buf, size_t buflen, struct passwd **pwbufp);

       int getpwuid_r(uid_t uid, struct passwd *pwbuf,
               char *buf, size_t buflen, struct passwd **pwbufp);


А ты возможно пытаешься под винду это замутить... Возможно, что там надо делать какие-то извороты...
PM MAIL   Вверх
Sojer
Дата 17.8.2007, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 2.8.2007

Репутация: нет
Всего: нет



впринципе вариант nab'а работает, только скрипт после выполнения команды вообще не хочет закрываться. и не выводит результат выполненной команды ... какой-то сырой модуль
PM MAIL   Вверх
fantome
Дата 17.8.2007, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 5.2.2007

Репутация: 1
Всего: 1



Sojer
Цитата

впринципе вариант nab'а работает, только скрипт после выполнения команды вообще не хочет закрываться. и не выводит результат выполненной команды ... какой-то сырой модуль


т.е. процесс висит???
А вывод наверно надо вручную делать. Читать из дескриптора соединения и на экран выводить...

Это сообщение отредактировал(а) fantome - 17.8.2007, 15:02
PM MAIL   Вверх
Sojer
Дата 17.8.2007, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 2.8.2007

Репутация: нет
Всего: нет



да, висит процесс. в отладочном режиме логи:
...
fuckingpendoss: Sending command: id
fuckingpendoss: Requesting service exec on channel 1.
fuckingpendoss: channel 1: open confirm rwindow 0 rmax 32768
и всё ...
PM MAIL   Вверх
Loki
Дата 4.7.2008, 04:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 244
Регистрация: 9.7.2006

Репутация: нет
Всего: нет



А версия перла какая была?
у меня так не пашет
Код

Math::BigInt: couldn't load specified math lib(s), fallback to Math::BigInt::FastCalc at D:/Perl5.8/site/lib/Crypt/DH.pm line 6
....
Key class 'Net::SSH::Perl::Key::RSA' is unsupported: Can't locate Net/SSH/Perl/Key/RSA.pm in @INC (@INC contains: D:/Perl5.8/site/lib D:/Perl5.8/lib .) at (eval 23) line 1.
BEGIN failed--compilation aborted at (eval 23) line 1.

а еще вот что мне понравилось... smile 
srv: Reading configuration data C:\Documents and Settings\Admin\Application Data/.ssh/config
srv: Reading configuration data /etc/ssh_config

разобрался smile 

Это сообщение отредактировал(а) Loki - 4.7.2008, 12:03
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1029 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.