Best way to install Zoom (and possibly other downloaded packages)

I didn’t see any guide on this, so I figured I’d share what worked for me. If anyone can improve on it, I would love to try their method. My method is for debian, but I imagine there is some equivalent in fedora

  • install gdebi in debian template
  • download zoom package, then move to the debian template
  • start the debian template
  • from within the debian template, run sudo gdebi {zoom package name}

You could download the debian package on Download Center for Zoom Apps and Plugins | Zoom and move it to the template and then run dpkg -i zoom_amd64.deb to install it.

You could install it using flatpak, this way the package could be updated with flatpak upgrade (like in the template rc.local so it’s running every time the template updates) instead of remembering you need to download the .deb and from where and basically go through the install steps again. The Zoom flatpak package isn’t official though, but it seems well maintained Install Zoom on Linux | Flathub

The zoom package has dependencies. I wasn’t sure if dpkg would automatically install them.

It should automatically pick the dependencies if they are available in a configured repository, otherwise it will complain and stop.

I uninstalled zoom and used x to remove unused packages (i.e. zoom dependencies):

sudo apt-get autoremove && sudo apt-get autoclean

I then tried installing zoom the way you suggested, and it failed:

user@debian-12-xfce:~/QubesIncoming/public$ sudo dpkg -i zoom_amd64.deb
Selecting previously unselected package zoom.
(Reading database … 192109 files and directories currently installed.)
Preparing to unpack zoom_amd64.deb …
Unpacking zoom ( …
dpkg: dependency problems prevent configuration of zoom:
zoom depends on libxcb-xtest0; however:
Package libxcb-xtest0 is not installed.
zoom depends on ibus; however:
Package ibus is not installed.
zoom depends on libxcb-cursor0; however:
Package libxcb-cursor0 is not installed.

dpkg: error processing package zoom (–install):
dependency problems - leaving unconfigured
Processing triggers for qubes-core-agent (4.2.28-1+deb12u1) …
Processing triggers for desktop-file-utils (0.26-1) …
Processing triggers for mailcap (3.70+nmu1) …
Processing triggers for shared-mime-info (2.2-1) …
Errors were encountered while processing:

I had no such issue with gdebi, so I would say gdebi.

I have a qube for Signal. While this cannot be just taken and used without any adjustment, I’m publishing pieces of it:

# define binds
bind_dirs = "".join(map(lambda s: s+'\n', [
    'mkdir /opt/Signal',
    'binds+=( /opt/Signal /var/cache/apt /var/lib/dpkg/available )',


# Launcher stub
Put('/usr/local/bin/signal-desktop', File(content=b'''#!/bin/bash
    if [ ! -e /tmp/signal-done ]; then
        # Not yet installed; retry
        sleep 1
        exec "$0" "$@"
        /usr/bin/signal-desktop "$@"
''', create_as='root', mode=0o755)),

# Write bind-dirs; TODO: simplify
Put('/rw/config/qubes-bind-dirs.d', Dir(create_as='root')),
Put('/rw/config/qubes-bind-dirs.d/50_signal.conf', File(content=bind_dirs, create_as='root')),

# Put key for Signal repository
Put('/rw/signal.key', File(content=info.read_binary('keys.asc'), create_as='root')),

# Install when started
    # repo
    apt-key add /rw/signal.key
    echo 'deb [arch=amd64 signed-by=/rw/signal.key] xenial main' > /etc/apt/sources.list.d/signal-xenial.list

    # update and install
    while ! apt-get update; do
        sleep 10
    if [ -e "$file" ]; then
        apt-get install -y "$file" signal-desktop
        apt-get install -y  signal-desktop
    touch /tmp/signal-done

    # desktop file
    cat /usr/share/applications/signal-desktop.desktop | sed 's#^Exec=\(.*\)$#Exec=\\1 2>&1 | logger -t signal#' > /usr/local/share/applications/signal-desktop.desktop 

    apt-get autoclean

I think I just installed signal into the template. It looks like your script is installing signal each time into an app qube. Am I misunderstanding what it does and your intent?

Yes, it technically installs Signal each time I start the qube.

Installing it to the template is also an option, but I avoided it. You can either install it to a generic qube (I don’t want extra repos there) or have a specific qube (=> bigger size and more hassle).

It wont - dpkg is the wrong tool for this. (You can only run one
instance at a time, and you are using one to install the downloaded
package - the package wont be installed, and you need to use
another tool to install the dependencies - apt, aptitude etc.)

Just use apt - apt install PATH_TO_PACKAGE
That will install package with dependencies.

1 Like

thanks @unman and @rjrizzuto , I was pretty sure that dpkg -i worked fine for that, I was wrong :+1:

I uninstalled zoom, again, then ran

sudo apt-get autoremove && sudo apt-get autoclean

to remove dependencies.

Finally, I ran:

sudo apt install ./zoom_amd64.deb

It failed with this output at the end:

Setting up ibus (1.5.27-5) …
Setting up libgtk-4-1:amd64 (4.8.3+ds-2+deb12u1) …
Setting up libgtk-4-bin (4.8.3+ds-2+deb12u1) …
Setting up ibus-gtk4:amd64 (1.5.27-5) …
Processing triggers for mailcap (3.70+nmu1) …
Setting up zoom ( …
run post install script, action is configure…
Processing triggers for libc-bin (2.36-9+deb12u4) …
N: Download is performed unsandboxed as root as file ‘/home/user/QubesIncoming/public/zoom_amd64.deb’ couldn’t be accessed by user ‘_apt’. - pkgAcquire::Run (13: Permission denied)

Ideally I’d like to list a simple command that works without issue that new users can run if they want to install zoom.

It’s not an error message, it’s a note message. The package was installed successfully.

in my case I prefer to use sandboxed installations flatpak sources for those applications, ZOOM, telegram, signal, etc.

This works fine as long as you trust the people building it when the package author aren’t certified to be the upstream developers. Anyone can publish anything on flathub.

This doesn’t mean the package is not legit, but it’s something to be aware of as you trade packaging trust for sand-boxing (and depending on the application, the sand-boxing can be nonexistent).

1 Like

Thanks Solene for the important advice, the pkge author certification is the most important item before installation.

Ah, ok. It reads like a permission error. I did verify that Zoom installed.

I think gdebi might still be preferred. As I read elsewhere, the issue is that apt expects to install packages downloaded by the _apt user, since its main use is to download and install a package and its dependencies together. gdebi is made specifically for installing already downloaded packages.

I suspect many users, like myself, wouldn’t even know about flatpak. They would do what I did and download the .deb from the zoom site.

Even now knowing about flatpaks, I am not interested. I have user .deb for zoom and discord on Linux Mint in the past without any issues.

It’s prefaced with N - that means note.
Similary W is for Warnings.
E for Errors.

I find it somewhat amusing that gedebi continues to present as the
solution to a non-problem - that apt cannot be used for install of local

I never presume to speak for the Qubes team. When I comment in the Forum I speak for myself.

Functionally, they are equally good. It sounds like you are pretty familiar with apt messages. That N indicates note isn’t so obvious to non-programmers.

As a developer, I know how difficult it can be at times to think like the user. I can appreciate that there is simplicity of using apt, which is already installed vs having to install gdebi. I don’t see any other downside to using gdebi.

I think it would be good to have a FAQ for downloading tools like Zoom (maybe listing both methods) that aren’t in a repo. Zoom is especially important, since it represents over 50% of the usage in the video conference arena, according to Videoconferencing software market share 2023 | Statista.

That’s why I’ve explained it here, for people who didnt know.

Like the guide here, or the Forum guide here ?