in reply to Image::Magick Error: no suitable installation target found for package Image-Magick.
What do I do now?
The old fashioned method is to RTFS which you will find at Perl/site/lib/PPM/UI.pm. I found this file simply by greping for the error message. Here is the code in question.
# Find the correct target for this package. This means matching the # LANGUAGE tag in the PPD. Basically we find out what LANGUAGE the PPD # represents, and we search through the targets looking for a subset w +hich # implement that language. If more than one target implements the lang +uage # and version, we pick the first. If none work, we fail. If the LANGUA +GE # tag is missing, or the LANGUAGE matches the given target, we use the # given target. # NOTE: because LANGUAGE is a child-node of IMPLEMENTATION, we _first_ + have to # search for an implementation that matches the target, _then_ we have + to # verify that the target supports the LANGUAGE tag. If it does, we ret +urn it, # otherwise we go on to the next target. sub choose_target { my $o = shift; for (@_) { # Load the target: my $target = PPM::UI::get_targ($_); next unless $target->ok; $target = $target->result; # Load the PPD and find a suitable implementation for this target: $o->make_complete($target); my $ppd = $o->getppd_obj($target); return $ppd unless $ppd->ok; # the package doesn't exist. my $impl = $ppd->result->find_impl($target); next unless $impl->ok; my $lang = $impl->result->language; # Older PPDs didn't have a LANGUAGE tag, so we must assume a Perl # implementation. For old-times' sake, we'll assume version 5.6.0 +is # required. unless (defined $lang) { $lang = PPM::PPD::Language->new({ NAME => 'Perl', VERSION => '5.6.0', }); } # Check if this implementation's language is understood by the tar +get: my $match = $lang->matches_target($target); return $match unless $match->ok; return Ok($target) if $match->result; } return Error( "no suitable installation target found for package $o->{name}." ); }
So the error relates vaguely to the (lack of) a LANGUAGE attribute. As you can perhaps see if there is not a LANGUAGE tag in the PPM then it runs some default code. This is the code that is executing to give you the error message. This is a good place to put in some debugging print/warns so you can see what is going on. It may be as simple as adding a LANGUAGE tag to the PPD or possibly changing the default version to 5.8.x to get a valid lang that will match the target.
cheers
tachyon
|
|---|