Schrift
[thread]5416[/thread]

Problem mit ImageMagick und Perl Modulen



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
Gast Gast
 2004-05-11 11:36
#48755 #48755
Hallo,

ich betreibe einen Linuxrootserver auf dem ich eine Anwendung laufe habe die ImageMagick benötigt. ImageMagick läuft soweit auch super nur wenn man über ein Perlscript, das resize benutzt, ein Bild hochladen möchte kommt folgende Fehlermeldung:

Quote
Software error:
Unable to get Terminal Size. The TIOCGWINSZ ioctl didn't work. The COLUMNS and LINES environment variables didn't work. The resize program didn't work. at /usr/local/lib/perl5/site_perl/5.8.0/i686-linux/Term/ReadKey.pm line 343.
Compilation failed in require at /usr/local/lib/perl5/site_perl/5.8.0/Term/ReadLine/Perl.pm line 58.

For help, please send mail to the webmaster ([no address given]), giving this error message and the time and date of the error.


Ausschnitt aus der Readkey.pm:
Quote
if(@results<4) {
my($prog) = "resize";

# Workaround for Solaris path sillyness
if(-f "/usr/openwin/bin/resize") { $prog = "/usr/openwin/bin/resize"}

my($resize) = scalar(`$prog 2>/dev/null`);
if(defined $resize and ($resize =~ /COLUMNS\s*=\s*(\d+)/ or
$resize =~ /setenv\s+COLUMNS\s+'?(\d+)/)) {
$results[0] = $1;
if( $resize =~ /LINES\s*=\s*(\d+)/ or
$resize =~ /setenv\s+LINES\s+'?(\d+)/) {
$results[1] = $1;
@results[2,3] = (0,0);
} else {
@results = ();
}
} else {
@results = ();
}
push(@fail,"resize program");
}

if(@results<4) {
die "Unable to get Terminal Size.".join("", map(" The $_ didn't work.",@fail));
}


Ausschnitt aus der Perl.pm:
Quote

if (!@_) {
if (!defined $term) {
($IN,$OUT) = Term::ReadLine->findConsole();
open(IN,"<$IN") || croak "Cannot open $IN for read";
open(OUT,">$OUT") || croak "Cannot open $OUT for write";
$readline::term_IN = \*IN;
$readline::term_OUT = \*OUT;
}
} else {
if (defined $term and ($term->IN ne $_[0] or $term->OUT ne $_[1]) ) {
croak "Request for a second readline interface with different terminal";
}
$readline::term_IN = shift;
$readline::term_OUT = shift;
}
eval {require Term::ReadLine::readline}; die $@ if $@;
# The following is here since it is mostly used for perl input:
# $readline::rl_basic_word_break_characters .= '-:+/*,[])}';
$term = bless [$readline::term_IN,$readline::term_OUT];
unless ($ENV{PERL_RL} and $ENV{PERL_RL} =~ /\bo\w*=0/) {
local $Term::ReadLine::termcap_nowarn = 1; # With newer Perls
local $SIG{} = sub {}; # With older Perls
$term->ornaments(1);
}


Die Zeilen in Bold sind die Fehlerzeilen.
Ich suche jetzt schon seit Tagen per Google nach einer Lösung konnte aber nichts finden. Ich hoffe jemand von euch kann mir weiterhelfen, danke.

Gruß
Carsten
ptk
 2004-05-11 13:14
#48756 #48756
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Ein Workaround koennte sein, die Environment-Variablen $ENV{COLUMN} und $ENV{LINES} zu setzen, z.B. 80 und 25.

Handelt es sich bei dem Skript um ein CGI oder einen mod_perl-Handler? Dann ist es sehr merkwuerdig, dass Term::ReadLine und Term::ReadKey verwendet wird.
Carsten
 2004-05-11 15:05
#48757 #48757
User since
2004-05-11
5 Artikel
BenutzerIn
[default_avatar]
[quote=ptk,11.05.2004, 11:14]Ein Workaround koennte sein, die Environment-Variablen $ENV{COLUMN} und $ENV{LINES} zu setzen, z.B. 80 und 25.

Handelt es sich bei dem Skript um ein CGI oder einen mod_perl-Handler? Dann ist es sehr merkwuerdig, dass Term::ReadLine und Term::ReadKey verwendet wird.[/quote]

Es handelt sich um ein Perl script über welches Bilder hochgeladen werden. Das kuriose ist ja das dieses software auf anderen Servern ohne Problem laufen und das Problem an meiner Serverkonfiguration hängen muss. In dem besagten Script wird auch kein Term::Readline oder Term::Readkey verwendet. Was hat das Programm resize zu bedeuten?

Gruß
Carsten\n\n

<!--EDIT|Carsten|1084275511-->
Taulmarill
 2004-05-11 15:52
#48758 #48758
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
schau mal ob du das programm resize ausführen kannst bzw. ob es sich überhaupt auf deiner maschiene befindet.
falls das script dieses prog nicht im default pfad findet, versucht es anscheinend /usr/openwin/bin/resize was nur auf solaris funktionieren dürfte (die spinnen, die von Sun).
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
ptk
 2004-05-11 16:42
#48759 #48759
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Anscheinend wird doch irgendwo Term::* verwendet, ansonsten wuerdest du ja die Fehlermeldungen nicht bekommen? Und dass es auf anderen Rechnern funktioniert, kann ja daran liegen, dass dort X11R6 installiert ist, also "resize" vorhanden ist.\n\n

<!--EDIT|ptk|1084279404-->
Carsten
 2004-05-11 17:46
#48760 #48760
User since
2004-05-11
5 Artikel
BenutzerIn
[default_avatar]
Hallo,
das hilft mir schon mal weiter. Unter resize habe ich nichts gefunden. Was hat das mit X11R6 zu tun? Und wie kann ich das gegenfalls installieren? Ich bin zwar kein blutiger Anfänger mehr, aber so ein bischen Hilfe brauch ich noch;)
Carsten
 2004-05-11 18:15
#48761 #48761
User since
2004-05-11
5 Artikel
BenutzerIn
[default_avatar]
Also ich habe mal nachgeschaut. Das Verzeichnis X11R6 existiert. Ich gehe mal davon aus das dann auch resize vorhanden. Der Hinweis mit dem Openwinverzeichnis war auch nicht schlecht. Dieses wird also auf einem Linuxsysthem nicht benötigt, oder?
ptk
 2004-05-11 19:17
#48762 #48762
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Auf (manchen?) Solaris-Rechnern ist "resize" in einem obskuren Pfad installiert, aber das ist fuer Linux irrelevant. Hast du eigentlich meinen Tipp mit den ENV-Variablen befolgt?
Carsten
 2004-05-12 10:48
#48763 #48763
User since
2004-05-11
5 Artikel
BenutzerIn
[default_avatar]
Hallo ptk,

nein habe ich noch nicht. Wo sollte ich diese einfügen?

Ich glaube langsam das irgendwo in den config Datein von imagemagick ein falscher Pfad steht. Ich werde mir diese mal anschauen.

Gruß
Carstne
ptk
 2004-05-12 13:11
#48764 #48764
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Wenn du nicht genau lokalisieren kannst, wo der Term::ReadKey/Term::ReadLine-Aufruf stattfindet: so frueh wie moeglich, evtl. sogar in einem BEGIN { ... }-Block.
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2004-05-11 11:36.