Changeset 990 in ProjectBuilder for devel/rpmbootstrap/bin
- Timestamp:
- Feb 24, 2010, 7:03:55 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
devel/rpmbootstrap/bin/rpmbootstrap
r986 r990 275 275 # Prepare early the yum cache env for the VE in order to copy in it packages on the fly 276 276 # 277 my $oscachedir = "/tmp"; 278 my $osupdcachedir; 279 my $osupdname = ""; 280 281 pb_log(1,"Setting up $osupdname cache in VE\n"); 277 282 if ($pbupd =~ /yum/) { 278 pb_log(1,"Setting up YUM cache in VE\n"); 279 pb_mkdir_p("$vepath/var/cache/yum/core/packages/"); 280 pb_mkdir_p("$vepath/var/cache/yum/updates-released/packages/"); 281 } 283 $oscachedir = "$vepath/var/cache/yum/core/packages/"; 284 $osupdcachedir = "$vepath/var/cache/yum/updates-released/packages/"; 285 $osupdname = "YUM"; 286 # Recent Fedora release use a new yum cache dir 287 if (($ddir eq "fedora") && ($dver > 8)) { 288 $oscachedir = "$vepath/var/cache/yum/$darch/$dver/fedora/packages"; 289 $osupdcachedir = "$vepath/var/cache/yum/$darch/$dver/updates/packages"; 290 $osupdcachedir = "$vepath/var/cache/yum/updates-released/packages/"; 291 } 292 } elsif ($pbupd =~ /zypper/) { 293 pb_log(1,"Setting up Zypper cache in VE\n"); 294 $oscachedir = "$vepath/var/cache/zypp/packages/opensuse/suse/$darch"; 295 $osupdname = "Zypper"; 296 } 297 pb_mkdir_p($oscachedir); 298 pb_mkdir_p($osupdcachedir) if (defined $osupdcachedir); 282 299 283 300 # For each package to process, get it, put it in the cache dir … … 309 326 310 327 # 311 # Copy the cached .RPM files into the yum directory, so that yum doesn't need to makethem again.328 # Copy the cached .RPM files into the oscachedir directory, so that os doesn't need to download them again. 312 329 # 313 if ($pbupd =~ /yum/) { 314 pb_log(1,"Link package into $vepath/var/cache/yum/core/packages\n"); 315 #link("$cachedir/$p1","$vepath/var/cache/yum/core/packages/"); 316 copy("$cachedir/$p1","$vepath/var/cache/yum/$darch/$dver/fedora/packages"); 317 symlink("$vepath/var/cache/yum/$darch/$dver/fedora/packages","$vepath/var/cache/yum/$darch/$dver/updates/packages"); 318 } 330 pb_log(1,"Link package into $oscachedir\n"); 331 copy("$cachedir/$p1",$oscachedir) if (defined $oscachedir); 332 symlink("$oscachedir/$p1","$osupdcachedir/p1") if (defined $osupdcachedir); 319 333 320 334 # And extract it to the finale dir … … 347 361 348 362 # yum needs that distro-release package be installed, so force it 349 350 foreach my $p1 (<$cachedir/($ddir|redhat)-release-*.rpm>) { 351 copy("$cachedir/$p1","$vepath/tmp"); 352 pb_system("chroot $vepath rpm -ivh --force --nodeps /tmp/$p1","Forcing RPM installation of $p1"); 353 unlink("$vepath/tmp/$p1"); 363 if ($pbupd =~ /yum/) { 364 foreach my $p1 (<$cachedir/($ddir|redhat)-release-*.rpm>) { 365 copy("$cachedir/$p1","$vepath/tmp"); 366 pb_system("chroot $vepath rpm -ivh --force --nodeps /tmp/$p1","Forcing RPM installation of $p1"); 367 unlink("$vepath/tmp/$p1"); 368 } 354 369 } 355 370 # … … 363 378 # BUGFIX: 364 379 # 365 if (( $ddir eq "centos") && ($dver eq "5")) {380 if ((($ddir eq "centos") || ($ddir eq "rhel")) && ($dver eq "5")) { 366 381 pb_log(1,"BUGFIX for centos-5\n"); 367 382 pb_mkdir_p("$vepath/usr/lib/python2.4/site-packages/urlgrabber.skx"); … … 384 399 pb_system("mknod -m 666 $vepath/dev/zero c 1 5","Creating $vepath/dev/zero") if (! -c "$vepath/dev/zero"); 385 400 401 my $minipkglist; 402 403 pb_log(1,"Adapting $osupdname repository entries"); 386 404 if ($pbupd =~ /yum/) { 387 405 # … … 399 417 pb_system("sed -i -e 's/^#baseurl/baseurl/' $i","","quiet"); 400 418 } 401 402 # 403 # Run "yum install the necessary modules". 404 # No need for sudo here 405 # 406 $pbupd =~ s/sudo//g; 407 pb_system("chroot $vepath /bin/bash -c \"$pbupd ldconfig yum passwd vim-minimal dhclient authconfig\"","Bootstrapping yum"); 408 } 419 $minipkglist = "ldconfig yum passwd vim-minimal dhclient authconfig"; 420 } elsif ($pbupd =~ /zypper/) { 421 pb_mkdir_p("$vepath/etc/zypp/repos.d"); 422 open(REPO,"> $vepath/etc/zypp/repos.d/$ddir-$dver") || die "Unable to create repo file"; 423 my $baseurl = dirname(dirname($mirror)); 424 print REPO << 'EOF'; 425 [opensuse] 426 name=$ddir-$dver 427 baseurl=$baseurl 428 enabled=1 429 gpgcheck=1 430 431 EOF 432 $minipkglist = "zypper vim-minimal dhclient"; 433 # Bootstraping zypper 434 if ($dver eq "10.2") { 435 pb_system("chroot $vepath /bin/bash -c \"yes | /usr/bin/zypper sa $baseurl $ddir-$dver\"","Bootstrapping Zypper"); 436 } 437 } 438 439 # 440 # Run "install the necessary modules". 441 # No need for sudo here 442 # 443 $pbupd =~ s/sudo//g; 444 pb_system("chroot $vepath /bin/bash -c \"$pbupd $minipkglist \"","Bootstrapping OS by running $pbupd $minipkglist"); 409 445 410 446 #
Note:
See TracChangeset
for help on using the changeset viewer.