この例を使用して CentOS キックスタート インストール ファイルを作成しようとしていますが、いくつかの perl ライブラリが必要です。以下は、記事が私の 6.4 32 ビット CentOS にこれらをインストールすることを提案している方法ですが、ライブラリは 64 ビットであり、コマンドは機能しません。以下の perl スクリプトを実行できるように、必要な 32 ビット perl ライブラリをインストールする最も簡単な方法は何ですか?
リンクからのライブラリ:
sudo rpm -Uvh \
perl-Compress-Raw-Zlib-2.023-119.el6.x86_64.rpm \
perl-Compress-Zlib-2.020-119.el6.x86_64.rpm \
perl-HTML-Parser-3.64-2.el6.x86_64.rpm \
perl-HTML-Tagset-3.20-4.el6.noarch.rpm \
perl-IO-Compress-Base-2.020-119.el6.x86_64.rpm \
perl-IO-Compress-Zlib-2.020-119.el6.x86_64.rpm \
perl-libwww-perl-5.833-2.el6.noarch.rpm \
perl-URI-1.40-2.el6.noarch.rpm \
perl-XML-Parser-2.36-7.el6.x86_64.rpm \
perl-XML-Simple-2.18-6.el6.noarch.rpm
実行したい Perl スクリプト:
#!/usr/bin/perl
use XML::Simple;
my ($comps_file, $rpm_path, $arch) = @ARGV;
if (!-e $comps_file)
{
print_usage ("Can't find '$comps_file'");
}
if (!-e $rpm_path)
{
print_usage ("RPM path '$comps_file' does not exist");
}
if (!$arch)
{
print_usage ("Architecture not specified");
}
print "reading $comps_file...\n";
print "getting RPMs from $rpm_path...\n";
$xml = new XML::Simple;
$comps = $xml->XMLin($comps_file);
%copied_packages = {};
foreach $group (@{$comps->{group}})
{
$id = $group->{id};
if (!($id eq 'base' || $id eq 'core'))
{
next;
}
print "#### group \@$id\n";
$packagelist = $group->{packagelist};
foreach $pr (@{$packagelist->{packagereq}})
{
if ($pr->{type} eq 'optional')
{
next;
}
$cmd = "cp $rpm_path/" . $pr->{content} . "-[0-9]*.$arch.rpm"
. " $rpm_path/" . $pr->{content} . "-[0-9]*.noarch.rpm .";
print "$cmd\n";
`$cmd 2>&1`;
$copied_packages{$pr->{content}} = 1;
}
}
sub print_usage
{
my ($msg) = @_;
($msg) && print "$msg\n\n";
print <<__TEXT__;
parse_comps.pl comps_file rpm_path arch
comps_file the full path to the comps.xml file (as provided in the
original distro
rpm_path the full path to the directory of all RPMs from the distro
arch the target system architecture (e.g. x86_64)
__TEXT__
exit;
}