Leser: 21
2013-10-22T16:02:25 biancaEinfach von CPAN das .tar.gz File runterladen und dann mit cgipan.cgi von pq installieren (vorher die Konfig einstellen).
Edit: Runterladen von einem anderen Platz und dann mit Stick oder anderweitig auf den Server bringen. Irgendeinen Anschluss wird der Server ja haben müssen sonst kann man damit nichts anfangen.
2013-10-18T13:09:29 WilliamWdass für die Verwendung der CPAN-Module eine Internetverbindung von nöten ist und auf dem besagten Windows 2008 Server gibt es keine Internetverbindung.
2013-10-18T13:09:29 WilliamWMüsste dann auch mal sehen, ob es bei den CPAN-Modulen egal ist, welche Perl-Versionen (Strawberry, ActiveState) man verwendet.
2013-10-22T19:32:47 WilliamW
2013-10-23T11:09:48 WilliamW
2013-10-23T11:46:06 WilliamW
2013-10-23T12:45:40 GwenDragonSchau doch bitte mal, ob in den Windows-Diensten wirklich das eingetragen wurde?
QuoteUnable to Start Service
The operation could not be completed.
The specified service does not exist as an installed service.
2013-10-22T12:16:27 WilliamWWobei die Lösung über Strawberry auch nicht schlecht wäre, aber dafür müsste man erst einen Weg finden auch offline die CPAN-Module installieren zu können.
2013-10-22T12:48:19 jan2013-10-22T12:16:27 WilliamWWobei die Lösung über Strawberry auch nicht schlecht wäre, aber dafür müsste man erst einen Weg finden auch offline die CPAN-Module installieren zu können.
Du kannst dir natürlich einen Mirror erstellen, und den auf DVD oder USB Stick zu deinem Zielserver transportieren.
2013-10-22T14:27:28 LinuxerWarum machst Du das manuell?
So weit ich mich erinner, hat ActivePerl doch einen grafischen Paket-Manager (ppm).
Trage dort bribes als Repository ein und installiere darüber.
Beschreibung unter: http://www.bribes.org/perl/ppmdir.html
2013-10-22T14:51:37 LinuxerDie ppd liegt doch daneben (neben den tar.gz Archiven):
http://www.bribes.org/perl/ppm/Win32-Service.ppd
http://www.bribes.org/perl/ppm/Win32-Daemon.ppd
Wenn ich das richtig deute, brauchst Du eh beides; das tar.gz und die ppd.
Die ppd beschreibt eigentlich nur, welches Archiv für welche Perl-Version zu nutzen ist.
1
2
3
4
5
<IMPLEMENTATION>
<OS NAME="MSWin32" />
<ARCHITECTURE NAME="MSWin32-x86-multi-thread-5.16" />
<CODEBASE HREF="Win32-Daemon-20110117-PPM516.tar.gz" />
</IMPLEMENTATION>
2013-10-22T18:02:27 biancaHast du mal mit cgipan.cgi probiert?
1 2 3 4 5 6 7
use CPAN::Mini; CPAN::Mini->update_mirror( remote => "http://cpan.mirrors.comintern.su", local => "/usr/share/mirrors/cpan", log_level => 'debug', );
2013-10-22T18:10:05 janIst deine VM denn 32bit? Bei den Server-Systemen ist das doch eher selten.
Allerdings sehe ich nicht, wieso ein cpan-mirror so aufwändig wäre:
Code (perl): (dl )1 2 3 4 5 6 7use CPAN::Mini; CPAN::Mini->update_mirror( remote => "http://cpan.mirrors.comintern.su", local => "/usr/share/mirrors/cpan", log_level => 'debug', );
Außer ein bißchen Wartezeit für den Download ist das doch erträglich.
2013-10-22T18:54:50 janDoch, ist schon ok, nur musst Du dann auch das entsprechende Paket herunterladen. Deshalb meldet er auch, dass es für deine Plattform nichts enthält, denn dieses Paket ist für 32bit. Du brauchst dann die 64bit-Pakete. Das musst Du natürlich auch beim Zielsystem beachten.
1
2
3
4
use Win32::Daemon;
Win32::Daemon::StartService();
print "test";
Win32:Daemon::StopService();
2013-10-22T12:16:27 WilliamWBianca hatte hier zu gemeint, dass es einfach mit den lokalen Dateien gehen würde. Da ist nur die Frage wie ich die Dateien überhaupt beziehen und dann abfragen kann, um die Installation zu starten ?
2013-10-22T16:02:25 bianca2013-10-22T12:16:27 WilliamWBianca hatte hier zu gemeint, dass es einfach mit den lokalen Dateien gehen würde. Da ist nur die Frage wie ich die Dateien überhaupt beziehen und dann abfragen kann, um die Installation zu starten ?
Einfach von CPAN das .tar.gz File runterladen und dann mit cgipan.cgi von pq installieren (vorher die Konfig einstellen).
Edit: Runterladen von einem anderen Platz und dann mit Stick oder anderweitig auf den Server bringen. Irgendeinen Anschluss wird der Server ja haben müssen sonst kann man damit nichts anfangen.
1
2
3
4
#!/usr/bin/perl -w
use Win32::Daemon;
Win32::Daemon::StartService();
Win32::Daemon::State( SERVICE_RUNNING );
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl -w
use Win32::Daemon;
$count = 0;
#OS den Start des Service Prozesses mitteilen
Win32::Daemon::StartService();
print "start \n";
# Warten bis der Service Manager bereit ist fort zu setzen
# Wobei "SERVICE_START_PENDING" bedeutet, dass der Service Manager versucht bzw. beginnt den Service zu starten
# Solang diese Schleife also nicht verlassen wird, startet der Service Manager auch nicht den Service
# sleep auf eine Sekunde gestellt, damit der Service Manager eine gewisse Zeit hat um zu reagieren
# wobei ich ihm durch $count 20 Versuche gebe, dass der Service Manager reagiert
while ( SERVICE_START_PENDING != Win32::Daemon::State() && $count < 20 )
{
sleep ( 1 );
print "sleep " . $count . "\n";
$count = $count + 1 ;
}
# Teilt den Service Manager mit, dass der Service läuft.
Win32::Daemon::State( SERVICE_RUNNING ) ;
1
2
3
4
5
6
7
while ( SERVICE_START_PENDING != Win32::Daemon::State() && $count < 20 )
{
$state = Win32::Daemon::State();
sleep ( 1 );
print "sleep " . $count . " state: " . $state . "\n";
$count = $count + 1 ;
}
2013-10-23T11:30:46 GwenDragonDu musst dem System auch erst mal den Dienst erstellen.
Stichwort Win32::Daemon::CreateService
http://search.cpan.org/~jdb/Win32-Daemon-20110117/...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/perl -w
use Win32::Daemon;
# If using a compiled perl script (eg. myPerlService.exe) then
# $ServicePath must be the path to the .exe as in:
# $ServicePath = 'c:\CompiledPerlScripts\myPerlService.exe';
# Otherwise it must point to the Perl interpreter (perl.exe) which
# is conviently provided by the $^X variable...
my $ServicePath = $^X;
# If using a compiled perl script then $ServiceParams
# must be the parameters to pass into your Perl service as in:
# $ServiceParams = '-param1 -param2 "c:\\Param2Path"';
# OTHERWISE
# it MUST point to the perl script file that is the service such as:
my $ServiceParams = 'c:\testService.pl -param1 -param2 "c:\\Param2Path"';
%Hash = (
machine => '',
name => 'PerlTest',
display => 'Oh my GOD, Perl is a service!',
path => $ServicePath,
user => '',
pwd => '',
description => 'Some text description of this service',
parameters => $ServiceParams
);
if( Win32::Daemon::CreateService( \%Hash ) )
{
print "Successfully added.\n";
}
else
{
print "Failed to add service: " . Win32::FormatMessage( Win32::Daemon::GetLastError() ) . "\n";
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl -w
use Win32::Daemon;
$Maschine = "";
$ServiceName = "PerlTest";
$boolean = Win32::Daemon::DeleteService($Maschine,$ServiceName);
if ( 0 != $boolean )
{
print "success" . " " . $boolean;
} else
{
print "fail";
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/perl -w
use Win32::Daemon;
# If using a compiled perl script (eg. myPerlService.exe) then
# $ServicePath must be the path to the .exe as in:
# $ServicePath = 'c:\CompiledPerlScripts\myPerlService.exe';
# Otherwise it must point to the Perl interpreter (perl.exe) which
# is conviently provided by the $^X variable...
my $ServicePath = $^X;
# If using a compiled perl script then $ServiceParams
# must be the parameters to pass into your Perl service as in:
# $ServiceParams = '-param1 -param2 "c:\\Param2Path"';
# OTHERWISE
# it MUST point to the perl script file that is the service such as:
my $ServiceParams = 'c:\testService.pl -param1 -param2 "c:\\Param2Path"';
%Hash = (
machine => '',
name => 'PerlTest',
display => 'Oh my GOD, Perl is a service!',
path => $ServicePath,
user => '',
pwd => '',
description => 'Some text description of this service',
parameters => $ServiceParams
);
if( Win32::Daemon::CreateService( \%Hash ) )
{
print "Successfully added.\n";
}
else
{
print "Failed to add service: " . Win32::FormatMessage( Win32::Daemon::GetLastError() ) . "\n";
}
2013-10-24T19:37:47 WilliamW