qubes-doc/user/managing-os/debian/debian.md

132 lines
4.8 KiB
Markdown
Raw Normal View History

2014-07-28 17:14:28 -04:00
---
2015-04-10 16:17:45 -04:00
layout: doc
title: The Debian TemplateVM
permalink: /doc/templates/debian/
redirect_from:
2016-05-21 10:49:01 -04:00
- /doc/debian/
- /en/doc/templates/debian/
- /doc/Templates/Debian/
- /wiki/Templates/Debian/
2014-07-28 17:14:28 -04:00
---
# The Debian TemplateVM
2014-07-28 17:14:28 -04:00
The Debian [TemplateVM] is an officially [supported] TemplateVM in Qubes OS.
This page is about the standard (or "full") Debian TemplateVM.
For the minimal version, please see the [Minimal TemplateVMs] page.
There is also a [Qubes page on the Debian Wiki].
2015-04-23 10:14:55 -04:00
## Installing
2015-04-23 10:14:55 -04:00
To [install] a specific Debian TemplateVM that is not currently installed in your system, use the following command in dom0:
2014-07-28 17:14:28 -04:00
$ sudo qubes-dom0-update qubes-template-debian-XX
2018-10-22 09:09:09 -04:00
(Replace `XX` with the Debian version number of the template you wish to install.)
2014-07-28 17:14:28 -04:00
To reinstall a Debian TemplateVM that is already installed in your system, see [How to Reinstall a TemplateVM].
2014-07-28 17:14:28 -04:00
2015-04-22 23:26:43 -04:00
## After Installing
2015-04-22 23:26:43 -04:00
After installing a fresh Debian TemplateVM, we recommend performing the following steps:
2015-04-22 23:26:43 -04:00
1. [Update the TemplateVM].
2. [Switch any TemplateBasedVMs that are based on the old TemplateVM to the new one][switch].
2014-07-28 17:14:28 -04:00
3. If desired, [uninstall the old TemplateVM].
## Updating
Routine daily updates within a given release.
Please see [Updating software in TemplateVMs].
## Upgrading
2020-08-15 12:53:22 -04:00
There are two ways to upgrade a TemplateVM. The easiest way is to [install] the new Debian TemplateVM next to the Debian TemplateVM you are currently using. Then redo all desired template modifications, and switch everything that was set to the old template to the new template.To make this process as efficient as possible, document modifications to your TemplateVMs in a text file. If you do not have this documentation yet, open a terminal in the old Debian TemplateVM, and use the `history` command. (There is currently no other way to gain a list of explicitly installed packages. Methods like `apt list --installed`, `dpkg -l` and `aptitude search '~i!~M'` all include packages that have been installed as dependencies.)
You can also do an in-place upgrade of an installed Debian TemplateVM. Please see [Upgrading Debian TemplateVMs].
## Release-specific notes
This section contains notes about specific Debian releases.
### Debian 10
Debian 10 (buster) - minimal:
2019-11-22 23:41:02 -05:00
[user@dom0 ~]$ sudo qubes-dom0-update --enablerepo=qubes-templates-itl qubes-template-debian-10-minimal
Debian 10 (buster) - stable:
2019-11-22 23:41:02 -05:00
[user@dom0 ~]$ sudo qubes-dom0-update --enablerepo=qubes-templates-itl qubes-template-debian-10
### Starting services
The Debian way (generally) is to start daemons if they are installed.
This means that if you install (say) ssh-server in a template, *all* the qubes that use that template will run a ssh server when they start. (They will, naturally, all have the same server key.) This may not be what you want.
So be very careful when installing software in Templates - if the daemon spawns outbound connections then there is a serious security risk.
In general, a reasonable approach would be, (using ssh as example):
- Install the ssh service.
- `systemctl stop ssh`
- `systemctl disable ssh`
- `systemctl mask ssh`
- Close down template
Now the ssh service will **NOT** start in qubes based on this template.
Where you **DO** want the service to run, put this in `/rw/config/rc.local`:
systemctl unmask ssh
systemctl start ssh
Don't forget to make the file executable.
### Unattended Upgrades
Some users have noticed that on upgrading to Stretch, the `unattended-upgrade` package is installed.
This package is pulled in as part of a Recommend chain, and can be purged.
The lesson is that you should carefully look at what is being installed to your system, particularly if you run `dist-upgrade`.
### Package installation errors in Qubes 4.0
By default, templates in 4.0 only have a loopback interface.
Some packages will throw an error on installation in this situation.
For example, Samba expects to be configured using a network interface post installation.
One solution is to add a dummy interface to allow the package to install correctly:
ip link add d0 type dummy
ip addr add 192.168.0.1/24 dev d0
ip link set d0 up
[TemplateVM]: /doc/templates/
[Minimal TemplateVMs]: /doc/templates/minimal/
[Qubes page on the Debian Wiki]: https://wiki.debian.org/Qubes
[end-of-life]: https://wiki.debian.org/DebianReleases#Production_Releases
[supported]: /doc/supported-versions/#templatevms
[How to Reinstall a TemplateVM]: /doc/reinstall-template/
[Update the TemplateVM]: /doc/software-update-vm/
[switch]: /doc/templates/#switching
2019-09-02 06:03:21 -04:00
[uninstall the old TemplateVM]: /doc/templates/#uninstalling
[Updating software in TemplateVMs]: /doc/software-update-domu/#updating-software-in-templatevms
[Upgrading Debian TemplateVMs]: /doc/template/debian/upgrade/
[5149]: https://github.com/QubesOS/qubes-issues/issues/5149
[install]: /doc/templates/#installing