Installing Application in AppVM

Hello,

i’m completely new to Linux. I am trying to install Discord, i tried it manually downloading and installing, over snap and over the dnf package manager.

after install if i run Discord/discord in the terminal as a command it says no command found. Can someone help me?

Hi, welcome to the community!

AppVM gets its root filesystem from another qube (template qube), Fedora (or Debian), by default. So whenever you want to introduce changes into the root filesystem (including installing something) you have to do it in the latter qube. After that you will have to shutdown the TemplateVM and reboot the AppVM. This is how Qubes’ isolation works.

More details:

But be careful: Installing anything unsafe in TemplateVM will make all AppVMs relied on it unsafe. More details:

Unless you are willing to learn a lot, it might be easier for you to switch to some GNU/Linux distribution first (e.g., Fedora or Debian), before dealing with Qubes OS. The latter introduces more complexity and relies on some knowledge of how Linux works.

2 Likes

is there no other way than cloning TemplateVMs to circumvent installing malicious software in a Template instead of cloning it and editing the other Template, like i tried installing Applications like Discord in an AppVM by CLI?

I very appreciate your help. But i can’t see a reason why not to start right away with virtualization. To me Qubes seems very user-friendly until now. Only expected few issues with Lid-Resume(Dom0 log says it seems vulnerable in some way) and instantly full RAM(i only own 8GB in dual channel…). But maybe im lucky.

Also the backlight of my display does not turn off if Screensafer gets enabled.

1 Like

You can also create a StandaloneVM: StandaloneVMs and HVMs | Qubes OS.

Indeed, Qubes is extremely user-friendly given it’s internal complexity and many amazing features. I’m glad you are willing to try it.

Can’t comment on other issues. I also have this problem with display not turning off.

1 Like

Maybe someone can help us out.
This is what my Dom0 Log is showing i am believing that may be related to this problem.

(XEN) System RAM: 8067MB (8261228kB)
(XEN) Domain heap initialised
(XEN) ACPI: Invalid sleep control/status register data: 0:0x8:0x3 0:0x8:0x3
(XEN) ACPI: 32/64X FACS address mismatch in FADT - 8af59000/0000000000000000, using 32
(XEN) IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-119
(XEN) Enabling APIC mode: Flat. Using 1 I/O APICs
(XEN) Switched to APIC driver x2apic_cluster.
(XEN) xstate: size: 0x440 and states: 0x1f
(XEN) Speculative mitigation facilities:
(XEN) Hardware features: IBRS/IBPB STIBP L1D_FLUSH SSBD MD_CLEAR
(XEN) Compiled-in support: INDIRECT_THUNK
(XEN) Xen settings: BTI-Thunk JMP, SPEC_CTRL: IBRS+ SSBD-, Other: IBPB L1D_FLUSH VERW
(XEN) L1TF: believed vulnerable, maxphysaddr L1D 46, CPUID 39, Safe address 8000000000
(XEN) Support for VMs: PV: MSR_SPEC_CTRL RSB EAGER_FPU MD_CLEAR, HVM: MSR_SPEC_CTRL RSB EAGER_FPU MD_CLEAR
(XEN) XPTI (64-bit PV only): Dom0 enabled, DomU enabled
(XEN) PV L1TF shadowing: Dom0 disabled, DomU enabled
(XEN) Using scheduler: SMP Credit Scheduler (credit)
(XEN) Platform timer is 23.999MHz HPET
(XEN) Detected 1992.082 MHz processor.

There are several ways to install in AppVM:

  • Community-built AppImage. Copy it somewhere in your home folder, chmod -x and run it from there.

  • Flatpak. In the template, install flatpak. In the AppVM, do flatpak install --user flathub com.discordapp.Discord. The --user causes flatpak to install into the home folder, so should persist after shutdown.

  • Snap. snap on qubes is per-appvm, but isn’t very reliable in my experience, maybe it’ll work better for you. In the template, install snapd and qubes-snapd-helper. In the AppVM, run sudo snap install discord

  • Official deb. In the AppVM, do sudo dpkg -i discord-0.0.13.deb. Pull dependencies using sudo apt-get install -f. Will need to repeat each time the AppVM is started, so you may want to make /var/cache/apt a bind-dir to cache the dependencies.

Edit: fixed flatpak link, expand .deb instructions.

2 Likes

2 posts were split to a new topic: Updating snap-installed software

I’ve done it successfully to myself(im sorry, i have not seen the documentation referred to snapd…), i’ve installed snapd and the qubes helper program in TemplateVM, then installed discord via snapd in the AppVM. It worked flawless.

But now i have another problem, Qubes comes only with Thunderbird 68 out of Box, but i want to use Split-GPG.

I’ve downloaded the tar.gz archive from the mozilla thunderbird site in an unrestricted web-domain, moved it to target TemplateVM and extracted it. It has created the folder. I can run thunderbird with /.thunderbird in the folder and it launches the 78 Version of thunderbird.

However, if i only type in thunderbird in commandline, it launches the pre-installed old version. Can please someone help me, there is no readme or install in the thunderbird program folder. And the documentation does not explain installing files manually under qubes in a way so that they shine up in the applications manager.

Or maybe someone can help me to manually update thunderbird 68 to 78 in the template vm, but to me it seems that it needs firewall configuration or tweaks on the package manager to get the newer thunderbird package as example.

Thank you very much and stay well
alex

Strange, I have Thunderbird 78 in my Debian-10 qube, never installed it manually, all upgrades were automatic.

Yes, just update the Debian 10 template, and you get at least 78.6.0

On the other issue, you could simply adjust your path, so that the
Thunderbird you have installed in your home directory is called before
that in /usr/bin.
This isn’t a Qubes specific problem, and you’ll find many guides online;
by default the $PATH variable is set to access /usr/local/bin first - you
could put in .bash_profile:

PATH=:<path to new thunderbird directory>::$PATH
export PATH

1 Like

i see- only under Debian out of box in Qubes Thunderbird version 78xx is running. Under Fedora this isn’t the case. It is a little bit confusing because the standard configuration refers or suggests that the personal-AppVM is intended to use for E-Mail, and the standard TemplateVM of this AppVM is based on Fedora.

However, i tried upgrading Fedora 30 to 33, downloaded the system upgrade plugin(this worked), system upgrade neither worked…

[user@fedora-30-clone-1 ~] sudo dnf system-upgrade download --refresh --releasever=33 Before you continue ensure that your system is fully upgraded by running "dnf --refresh upgrade". Do you want to continue [y/N]: n Error: Operation aborted. [user@fedora-30-clone-1 ~] dnf --refresh upgrade
Error: This command has to be run with superuser privileges (under the root user on most systems).
[user@fedora-30-clone-1 ~] sudo dnf --refresh upgrade Fedora Modular 30 - x86_64 4.6 kB/s | 5.8 kB 00:01 Fedora Modular 30 - x86_64 - Updates 1.6 kB/s | 5.7 kB 00:03 Fedora 30 - x86_64 - Updates 5.2 kB/s | 5.7 kB 00:01 Fedora 30 - x86_64 2.6 kB/s | 5.9 kB 00:02 Qubes OS Repository for VM (updates) 7.5 kB/s | 3.8 kB 00:00 Dependencies resolved. Nothing to do. Complete! [user@fedora-30-clone-1 ~] sudo dnf system-upgrade download --refresh --releasever=33
Before you continue ensure that your system is fully upgraded by running “dnf --refresh upgrade”. Do you want to continue [y/N]: y
Fedora Modular 33 - x86_64 1.1 MB/s | 3.3 MB 00:02
Fedora Modular 33 - x86_64 - Updates 674 kB/s | 2.9 MB 00:04
Fedora 33 - x86_64 - Updates 3.0 MB/s | 21 MB 00:07
Fedora 33 - x86_64 4.5 MB/s | 72 MB 00:16
Qubes OS Repository for VM (updates) 43 kB/s | 87 kB 00:02
Error:
Problem 1: package python2-tornado-5.0.2-5.fc30.x86_64 requires python2-backports_abc, but none of the providers can be installed

  • package python2-tornado-5.0.2-5.fc30.x86_64 requires python2.7dist(backports-abc) >= 0.4, but none of the providers can be installed
  • python2-backports_abc-0.5-9.fc30.noarch does not belong to a distupgrade repository
  • problem with installed package python2-tornado-5.0.2-5.fc30.x86_64
    Problem 2: package rpmfusion-free-release-30-0.3.noarch requires system-release(30), but none of the providers can be installed
  • fedora-release-30-6.noarch does not belong to a distupgrade repository
  • problem with installed package rpmfusion-free-release-30-0.3.noarch
    Problem 3: package fedora-release-30-6.noarch requires fedora-release-common = 30-6, but none of the providers can be installed
  • package rpmfusion-nonfree-release-30-0.3.noarch requires system-release(30), but none of the providers can be installed
  • fedora-release-common-30-6.noarch does not belong to a distupgrade repository
  • problem with installed package rpmfusion-nonfree-release-30-0.3.noarch
    (try to add ‘–skip-broken’ to skip uninstallable packages)
    [user@fedora-30-clone-1 ~]$

Qubes historically is based on Fedora and suggests it for many things by default, but you don’t have to use it. Fedora typically provides new versions faster, e.g. current Firefox is 84 there versus 78.6 on Debian.

This particular problem with Thunderbird looks like a problem in Fedora, not in Qubes.

i see- only under Debian out of box in Qubes Thunderbird version 78xx is running. Under Fedora this isn't the case. It is a little bit confusing because the standard configuration refers or suggests that the personal-AppVM is intended to use for E-Mail, and the standard TemplateVM of this AppVM is based on Fedora.

However, i tried upgrading Fedora 30 to 33, downloaded the system upgrade plugin(this worked), system upgrade neither worked…

You can choose to use whatever template you want for these qubes, and
mix and match, to get whatever works best for you. There are a variety
of templates available, including arch and ubuntu.
It’s simply a matter of changing the template - either by command line:
qvm-prefs <qube> template <template to use> in dom0
or in the Qube Manager

There are instructions on upgrading templates here:

Unless you have made major changes to the template imo it’s always
better to start with a fresh template:
sudo qubes-dom0-update qubes-template-fedora-32 in dom0 will get you a
fresh clean 32, the latest template available for 4.0

it does not work. It is unable to find a match in Dom0.

i cannot script. but can i set your bash script under “# user specific environment and startup programs”

in .bash_profile

like:

User specific environment and startup programs

PATH=:::$PATH
export PATH

how do i turn html off in comment box…

#User specific environment and startup programs

PATH=:< path to new thunderbird directory >::$PATH
export PATH

of course i have to put in Path that is given by echo $PATH in the referring directory. without the <>…

im so sorry… seems like i forgot one dash for the download template command in dom0
facepalm

For some reason, my post had doubled “::” - it should be:
PATH=< path to new thunderbird directory >:$PATH

The qubes-dom0-update call usually fails in that manner if the template
is already installed
otherwise check that you have the qubes-templates repository enabled.