7.1 KiB
layout | title | permalink | redirect_from | ||||
---|---|---|---|---|---|---|---|
doc | The Fedora Minimal TemplateVM | /doc/templates/fedora-minimal/ |
|
The Fedora Minimal TemplateVM
The Fedora Minimal TemplateVM (fedora-minimal
) only weighs about 600 MB compressed (1.6 GB on disk) and has only the most vital packages installed, including a minimal X and xterm installation.
The sections below contain instructions for using the template and provide some examples for common use cases.
Important
-
The Fedora Minimal template is intended only for advanced users. If you encounter problems with the Fedora Minimal template, we recommend that you use the default Fedora template instead.
-
If something works with the default Fedora template but not the Fedora Minimal template, this is most likely due to user error (e.g., a missing package or misconfiguration) rather than a bug. In such cases, you should write to qubes-users to ask for help rather than filing a bug report, then contribute what you learn to the documentation.
-
The Fedora Minimal template is intentionally minimal. Do not ask for your favorite package to be added to the minimal template by default.
Installation
The Fedora Minimal template can be installed with the following command (where XX
is your desired version number):
[user@dom0 ~]$ sudo qubes-dom0-update qubes-template-fedora-XX-minimal
The download may take a while depending on your connection speed.
Customization
It is highly recommended to clone the original template and make any changes in the clone instead of the original template.
The following command clones the template.
Replace XX
with your installed Fedora Minimal version number and your-new-clone
with your desired clone name.
[user@dom0 ~]$ qvm-clone fedora-XX-minimal your-new-clone
You must start the clone in order to customize it.
Customizing the template for specific use cases normally only requires installing additional packages.
The following list provides an overview of which packages are needed for which purpose.
As usual, the required packages are to be installed in the running template with the following command (replace packages
with a space-delimited list of packages to be installed):
[user@your-new-clone ~]$ sudo dnf install packages
- Commonly used utilities:
pciutils
vim-minimal
less
psmisc
gnome-keyring
. - Audio:
pulseaudio-qubes
. - FirewallVM, such as the template for
sys-firewall
: at leastqubes-core-agent-networking
andiproute
, and alsoqubes-core-agent-dom0-updates
if you want to use it as theUpdateVM
(which is normallysys-firewall
). - NetVM, such as the template for
sys-net
:qubes-core-agent-networking
qubes-core-agent-network-manager
NetworkManager-wifi
network-manager-applet
wireless-tools
dejavu-sans-fonts
notification-daemon
gnome-keyring
polkit
@hardware-support
. If your network devices need extra packages for the template to work as a network VM, use thelspci
command to identify the devices, then rundnf search firmware
(replacefirmware
with the appropriate device identifier) to find the needed packages and then install them. If you need utilities for debugging and analyzing network connections, installtcpdump
telnet
nmap
nmap-ncat
. - USB qube, such as the template for
sys-usb
:qubes-input-proxy-sender
. - VPN qube: Use the
dnf search "NetworkManager VPN plugin"
command to look up the VPN packages you need, based on the VPN technology you'll be using, and install them. Some GNOME related packages may be needed as well. After creation of a machine based on this template, follow the VPN instructions to configure it.
You may also wish to consider additional packages from the qubes-core-agent
suite:
qubes-core-agent-qrexec
: Qubes qrexec agent. Installed by default.qubes-core-agent-systemd
: Qubes unit files for SystemD init style. Installed by default.qubes-core-agent-passwordless-root
,polkit
: By default, the Fedora Minimal template doesn't have passwordless root. These two packages enable this feature.qubes-core-agent-nautilus
: This package provides integration with the Nautilus file manager (without it things like "copy to VM/open in disposable VM" will not be shown in Nautilus).qubes-core-agent-sysvinit
: Qubes unit files for SysV init style or upstart.qubes-core-agent-networking
: Networking support. Required for general network access and particularly if the template is to be used for asys-net
orsys-firewall
VM.qubes-core-agent-network-manager
: Integration for NetworkManager. Useful if the template is to be used for asys-net
VM.network-manager-applet
: Useful (together withdejavu-sans-fonts
andnotification-daemon
) to have a system tray icon if the template is to be used for asys-net
VM.qubes-core-agent-dom0-updates
: Script required to handledom0
updates. Any template which the VM responsible for 'dom0' updates (e.g.sys-firewall
) is based on must contain this package.qubes-usb-proxy
: Required if the template is to be used for a USB qube (sys-usb
) or for any destination qube to which USB devices are to be attached (e.gsys-net
if using USB network adapter).pulseaudio-qubes
: Needed to have audio on the template VM.
See here for further information on customizing fedora-minimal
.
Passwordless root
It is an intentional design choice for passwordless to be optional. Since the Fedora Minimal template is minimal, it is not configured for passwordless root by default. To update or install packages to it, from a dom0 terminal window:
[user@dom0 ~]$ qvm-run -u root fedora-29-minimal xterm
to open a root terminal in the template, from which you can use dnf without sudo. You will have to do this every time if you choose not to enable passwordless root.
If you want the usual qubes sudo dnf ...
commands, open the root terminal just this once using the above command, and in the root xterm window enter
bash-4.4# dnf install qubes-core-agent-passwordless-root polkit
Optionally check this worked: from the gui open the minimal template's xterm and give the command
[user@fed-min-clone ~]$ sudo -l
which should give you output that includes the NOPASSWD keyword.
Logging
The rsyslog
logging service is not installed by default, as all logging is instead being handled by the systemd
journal.
Users requiring the rsyslog
service should install it manually.
To access the journald
log, use the journalctl
command.