I'm having an unusual problem.
I recently re-wrote my ks.cfg %pre script in python, and now anaconda
can't install 64bit. 32bit installs fine, but 64bit fails with a file conflict. I put some debug code in an updates.img, and I got the following error message in anaconda.log 20:33:27 ERROR : [('file /sbin/grub conflicts between attempted installs of grub-0.97-13 and grub-0.97-13', (6, '/sbin/grub', 0L)), ('file /usr/bin/mbchk conflicts between attempted installs of grub-0.97-13 and grub-0.97-13', (6, '/usr/bin/mbchk', 0L)), ('file /usr/share/doc/syslinux-3.11/sample/fd.o conflicts between attempted installs of syslinux-3.11-4 and syslinux-3.11-4', (6, '/usr/share/doc/syslinux-3.11/sample/fd.o', 0L))] So I look further up the anaconda.log, and I see this: 20:33:16 DEBUG : Member: grub.x86_64 0-0.97-13 - u 20:33:16 DEBUG : Adding Package grub - 0.97-13.x86_64 in mode u 20:33:16 DEBUG : Member: grub.i386 0-0.97-13 - u 20:33:16 DEBUG : Adding Package grub - 0.97-13.i386 in mode u and then it occurs to me that all packages are being added twice, once for i386, and once for x86_64. This is my new %pre script, and it doesn't matter whether it's a separate script that I put on the CD image, or called in the ks.cfg with "%pre --interpreter /usr/bin/python" Judging from the amount of patches flying by, I know you guys are busy, but if somebody can think of a reason why anaconda would be adding nonexistent, conflicting i386 packages because of a %pre script, I would greatly appreciate it. import sys,os,time,shutil,parted,math,subprocess sys.path.append("/usr/lib/anaconda") import isys,iutil #if len(isys.hardDriveDict()) != 1: # sys.exit(123) #else: drive = isys.hardDriveDict().keys()[0] print drive if drive == 'cciss/c0d0': drive = 'cciss/c0d0p' print drive dev = parted.PedDevice.get("/dev/%s" % drive) sizeMB = (float(dev.heads * dev.cylinders * dev.sectors) / (1024 * 1024) * dev.sector_size) print sizeMB sizeMB_i = int(math.floor(sizeMB)) print sizeMB_i if int(math.floor(float(sizeMB * .1))) > 4000: backup_size = int(math.floor(float(sizeMB * .1))) else: backup_size = 4000 log_size = int(math.floor(float(sizeMB * .05))) print "/var/log size is %i " % log_size print "/backup size is %i " % backup_size root_size = (sizeMB_i - backup_size - log_size - 128 - iutil.swapSuggestion()[1] ) print "/ size is %i " % root_size ptext = """zerombr yes clearpart --all part /backup --fstype ext3 --size %i part swap --recommended part /boot --fstype ext3 --size 128 part / --fstype ext3 --size %i part /var/log --fstype ext3 --size %i """ % (backup_size,root_size,log_size) print ptext partinfo = open("/tmp/partinfo", 'w') partinfo.write(ptext) rc = partinfo.close Matt |
_______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list