When I did my best effort to do a maximal install, I found that I did not have:
Details will follow, but as it turns out, I have in my hands a set of 5 CD's, of which the maximum install for the most part just loads what is on the first two CD's. I just want a way to load the contents of all 5 CD's on my system, and I pretty much worked this out as you will discover if you read on.
I can't even begin to guess what they are thinking. There is some double talk about "everything" being a moving target, and so on. All I want is for the install to load whatever they ship on the set of install CD's. Now deciding what should be on those CD's is yet another thing. If there were only two install CD's (as there should be if they want to be logically consistent), then we could debate if that was really the right minimal set of packages.
These days disks are big and cheap, and it makes my life much simpler to just install everything including the kitchen sink, rather than going out to find packages as I discover I need them.
This is a particular nuisance when doing an install on an isolated machine (such as a friends machine with a slow dial up connection). My laptop still won't run a network given the out of the box package set. (I have 3 pcmcia network cards, one a 10/100 ne2000 clone, another is an Orinoco Gold wireless). All in all quite a disappointment.
We know we can do better!!
Looks like we are on our own here, lets examine the CD's and see what we can do to rememdy this sad situation. What I did to inspect the contents of the CD's was:
mount -t iso9660 -o ro,loop=/dev/loop0 FC-5-i386-disc1.iso /mnt/test ls /mnt/test/Fedora/RPMS >disc1.list
I did this for all 5 CD's and present the results to you here:
I also wrote a little ruby program to put all 5 lists together, sort the results and give you an index to what is on which CD, as well as marking the packages that were actually installed for me.
Of course if you have the whole mess on a DVD, this won't be quite as useful to you. It has already been useful to me, I can see that the f-spot RPM is on CD number 3, ethereal is on CD number 4.
The impression I am getting is that fedora now intends to rely in a far greater way upon yum, and you are expected to use yum to get additional things as you need them. If so this is bad. Anyway, why the heck are there 5 CD's then if the installer really only uses the first two?
Anyway, back to what is on the CD's the breakdown by architecture is:
i386 1797 noarch 375 i686 12 i586 1
It turns out there are only 6 packages on CD number 1 that weren't loaded and these are kernel packages that I don't want (I got kernel-smp and that is just fine), so we can just skip CD-1.
On CD number 2 there are 3 trivial packages, but let's get them:
mount /dev/cdrom /mnt cd /mnt/Fedora/RPMS rpm -Uvh *.rpm
The above fails (craps out is the technical term) because rpm throws its hands in the air when it discovers some of the rpms are already installed. The following scheme works fine (proving that yum is smarter than rpm and can handle lumps of rpms on a disk just fine):
mount /dev/cdrom /mnt cd /mnt/Fedora/RPMS rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* yum install *.rpm
The rpm -import line is a well kept secret that can be used to import the GPG keys necessary into the rpm database. Using yum install does poke around and check against repositories, and would use them to satisfy dependencies if needed, but ultimately it just loads the packages from the CD.
The ethereal-gnome RPM is on CD 3, and the ethereal RPM is on CD 4. Ethereal-gnome needs (depends on) ethereal. This means that any simple thing like rpm -Uvh *.rpm on all of the uninstalled RPM's on CD 3 is doomed to fail. That kind of thing will only work if you have all the RPM's together, perhaps on a DVD (probably the way they tested things). What I will do is copy all of the rpms onto my hard disk and then work from a full set to avoid this.
( cd /media/cdrecorder/Fedora/RPMS rpm -qa --queryformat "%{name}-%{version}-%{release}.%{arch}.rpm\n" ls *.rpm ) | sort | uniq -u >/tmp/$$ rpm -Uvh --nosignature $(< /tmp/$$) rm -f /tmp/$$
When things no longer fit on a single DVD, something more clever will be needed.
#!/usr/bin/ruby # Find out what rpm's are already installed. have = Array.new `rpm -qa`.each { |l| have << l.chomp } (1..5).each { |d| dir = "../disk#{d}" Dir.foreach(dir) { |f| yy = f.split(".") base = yy[0..-3].join(".") if have.include?(base) print "Already installed: #{f}\n" else print "Need: #{f}\n" fdir = dir + "/" + f cmd = "ln -s #{fdir} #{f}" system( cmd ) end } }After doing this in a directory all next to the disk1 ... directories, I do:
cd all ; rpm -Uvh *.rpmThere are some issues still. I take the lazy approach and just delete the offending packages, taking note of them, and expecting to either deal with them later or just forget them altogether:
rm cman* rm dlm* rm gnbd* rm magma* rm ccs* rm rgmanager* rm gulm*Many of these seem related to cluster management, which I don't care about anyway (but you might). After this hand pruning, away it goes, loading 1002 packages.
I did this on another system that I had tinkered a bit with and had to also prune away some packages that I had updated to later versions:
rm kernel* rm gkrellm*
On both systems I do get one warning
warning: adaptx-0.9.6-1jpp_3fc.1.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2(but the adaptx package goes in anyway):
Do I need all of these packages? Certainly not! But I definitely need some of them, and this is by far the easiest way to get them. For example, I now have ethereal. I get f-spot (which the release notes got me excited about, but then was nowhere to be found after doing the install). I get the mono-devel stuff, which I will need later to build hugin. I get mailman, expect, and much much more.
Adventures in Computing / tom@mmto.org