Fedora 21 greatest hits: non-Server non-live installs, fedup product behaviour
Hi, Fedora-ites!
So here's a couple of things I've seen popping up multiple times with the Fedora 21 release. I thought I'd note them down here for my readers, Planet Fedora, and also as a handy link target for answering them in future.
Traditional installs - how do I install something other than Server? Where's the network install bits? Where's the DVD?!
So, the answer to all of these is both simple and kinda dumb: use Server.
Trying to do a network install of something other than Server? Use the Server network install image (yup, really). Trying to do a kickstart install? Use the Server network install image or tree (doesn't matter what package set you want to install). Trying to do a direct kernel boot of the installer (e.g. for PXE)? Use the Server/
tree on the mirrors as your inst.stage2
parameter: inst.stage2=https://download.fedoraproject.org/pub/fedora/linux/releases/21/Server/x86_64/os/
, for e.g. (If you use inst.repo
instead of inst.stage2
it will restrict you to the Server package set.)
The Server network install image is really, practically speaking, a generic network install image. It's not much different from the netinst
ISO in previous releases. It has Server visual branding and it defaults to the Server package set, but that's really all that's Server-y about it. It can happily install any package set, even with its default repository configuration. You can pick any of the other package groups graphically, and your kickstarts will work as before. Basically, for anything you would previously have used Fedora-netinst
for, you can use Fedora-Server-netinst
for instead. It'll be fine.
For bonus points, though it's hidden from the user quite well, if you poke around behind the scenes, you'd find that fedup also gets its upgrade.img
(which is a custom initramfs containing all the bits to make fedup's upgrade step work) from the Server
tree.
The reasons why things are this way for Fedora 21 are extremely long-winded and boring - if you really want the story, poke me or Dennis Gilmore or Matthew Miller on IRC and we can probably explain. For Fedora 22 onwards, I very much hope this will be cleaned up somehow (probably by reviving the Fedora/
tree just for building the generic installer images, or by making it possible to build images out of the Everything/
tree, which isn't currently possible.)
The Fedora DVD, though, really is gone with Fedora 21. There's no direct replacement. The Server DVD is the same type of image, but doesn't contain a cross-section of package sets like the old DVD did, it really is strictly a Server product - it only contains the Server packages. You can use the Server netinst to do generic non-live deployments with a network connection (see above), and you can use the various live images to do offline live deployments with various package sets, but there is no way to do an offline non-live deployment of anything but Server. Sorry about that, but something had to give in the whole Product plan.
What does fedup --product
really do?
This is one I'm not sure we're entirely clearly communicating, so here goes:
When you run fedup --product foo
, as part of the upgrade, fedup will try and install the foo-product-environment
package group as well as upgrading your existing installed packages.
In practice this only affects Server and Workstation, as they're the only products which have those package groups. If you pick nonproduct or cloud, no additional packages will be installed for Product purposes as part of the upgrade (new packages might still come in as deps or as members of installed package groups).
But I suspect people might be thinking 'if I'm running anything that's vaguely like a desktop I should pick workstation' and 'if I'm running anything that's vaguely like a server I should pick server', and it's probably not quite that straightforward.
If you're running a desktop other than GNOME and you don't want GNOME, then don't go for --product workstation
. Go for --product nonproduct
. If your existing system has GNOME, --product workstation
probably makes sense, but be aware it might install a few additional packages.
If you're running a server-ish system, you may want --product server
, but then again, you may not. The Server product isn't strictly minimal, it's aimed at providing a sort of 'comfortable' default environment. Particularly, it includes the new rolekit bits, Cockpit, and various other bits. You can see what it includes right from the source - where you see the <environment>
with <id>server-product-environment</id>
, all the groups in the <grouplist>
entry a few lines down are what get installed as part of server-product-environment
. You can see what packages are in those groups in the same file - just look for their <group>
entries, e.g. the <group>
with <id>container-management</id>
will pull in package docker-io
. Note that packages listed as optional
won't be included.
So if you've got a fairly task-focused server install and you're really happy with its configuration and you want to update it to Fedora 21-level packages but you don't want the new shiny bits of the Fedora Server product added on, you will want to pass --product nonproduct
to fedup, not --product server
.
There's also another rather large gotcha with upgrades to Server and Workstation: they will replace any existing firewall configuration with their default.
Comments
if [ $(is_curnode_a_server; echo $?) -ne 0 -a $(is_curnode_a_VM; echo $?) -ne 0 ]; then echo -e "\n\tinstalling LAPTOP / DESKTOP rpms ..."
yum -y groupinstall "Fonts"yum -y groupinstall "KDE" "KDE Applications" "KDE Multimedia support" yum -y groupinstall "Multimedia"
yum -y groupinstall "Printing Support"yum -y groupinstall "base-x"
especially the last one is a hidden group containing all of the xorg drivers that will enable sddm to start.That doesn't "turn it into a workstation install", it installs KDE.
The group definitions aren't hidden, or anything - you can find them at https://git.fedorahosted.org/cgit/comps.git/tree/comps-f21.xml.in in a surprisingly readable XML format. You could simplify all of that to 'yum groupinstall kde-desktop-environment' to get a standard KDE install.
If you're fine with using remote mirrors, I repeat, you don't need to go through any of that stuff, you can pick the package set you want at install time. If you want a local mirror from which to run non-Server PXE installs, at present, you'd have to mirror both the Server tree (as a source of the 'stage2' installer image) and the Everything tree (for the rest of the packages), and pass
inst.stage2=(Server tree) inst.repo=(Everything tree)
.Not really my decision, I'm just documenting it.
As of Fedora 25 there will be a Workstation Atomic installer image as well as the Workstation live image (it's not a release-blocking image yet, though).