Additional software installation

last modified

2025–1–12

With apt repository

After adding a repository, run sudo aptitude update.

Brave

Site: https://brave.com/

Install signature:

sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg

Add to /etc/apt/sources.list:

deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main

Install brave-browser, and the the ‘Plasma Integration’ extension from the Chrome Web Store.

Configuration in ~/.config/BraveSoftware/Brave-Browser/ can be kept. Bookmarks are stored in the subdirectories Default/Bookmarks, Profile\ 1/Bookmarks, …

Signal

Site: https://signal.org/

Install signature:

wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg
cat signal-desktop-keyring.gpg | sudo tee /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null

Add to /etc/apt/sources.list:

deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main

Install signal-desktop.

Modify the desktop entry by adding --start-in-tray to the arguments so that Signal starts in the tray.

R

Site: https://cran.r-project.org/bin/linux/debian/

Install signature:

gpg --keyserver keyserver.ubuntu.com \
    --recv-key '95C0FAF38DB3CCAD0C080A7BDC78B2DDEABC47B7'
gpg --armor --export '95C0FAF38DB3CCAD0C080A7BDC78B2DDEABC47B7' | \
    sudo tee /etc/apt/trusted.gpg.d/cran_debian_key.asc

Add to /etc/apt/sources.list:

deb http://cloud.r-project.org/bin/linux/debian bookworm-cran40/

Install r-base and r-base-dev, and libopenblas0-serial (?) to speed up calculations.

Put the line

export R_LIBS_USER='/home/ca/Store/R'

in ~/.bashrc. This is where R will install packages.

Additional Debian packages are sometimes necessary to install R packages.

tidyverse
libcurl4-openssl-dev, libssl-dev, libfontconfig1-dev, libxml2-dev, libharfbuzz-dev, libfribidi-dev, libfreetype6-dev, libpng-dev, libtiff5-dev, libjpeg-dev
lme4
cmake

Seafile Client

Site: https://www.seafile.com/

Install signature:

sudo wget https://linux-clients.seafile.com/seafile.asc -O /usr/share/keyrings/seafile-keyring.asc

Add to /etc/apt/sources.list:

deb [arch=amd64 signed-by=/usr/share/keyrings/seafile-keyring.asc] https://linux-clients.seafile.com/seafile-deb/bookworm/ stable main

Install seafile-gui.

Using Seafile’s repository may not be absolutely necessary since Seafile is packaged in bookworm.

Configure ~ as Seafile directory. Unfortunately, that is not possible through the GUI, so accept the default on first configuration. Then, before synchronizing anything, stop the tray applet, and make sure that ~/.ccnet/seafile.ini contains <HOME>/.seafile-data

Log files are in ~/.ccnet/logs/, internal files in ~/.seafile-data.

Warning

Care must be taken with changes occurring while Seafile is not running. Files deleted in the meantime may pop up again, older versions of files substituted for newer ones.

To be on the safe side, create a checksum file before synchronizing (and maybe a zip archive, though theoretically nothing should be lost). Based on the check results, resurrected files should be deleted, and for changed files the SFConflict substituted for the other one.

Visual Studio Code

Site: https://code.visualstudio.com/

Install signature:

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg

Add to /etc/apt/sources.list:

deb [arch=amd64 signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main

Install code.

Use ⚙️ / Turn On Settings Sync to get settings back.

Getting Micromamba to work with VS Code

I don’t really understand, but this seems to work:

  • ‘Python: Conda Path’: ~/.local/bin/micromamba
  • ‘Python: Default Interpreter Path’: ~/Store/micromamba/envs/std/bin/python3
  • create a file ~/.local/bin/activate which contains micromamba activate -p "$1"
  • in the command palette, select ‘Python: Select Interpreter’

When VS Code opens a terminal, e.g. to run Python, it pastes

source /home/ca/.local/bin/activate /path/to/env

as the first command.

VirtualBox

Site: https://www.virtualbox.org/

Install signature:

wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --dearmor --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg

Add to /etc/apt/sources.list:

deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian bookworm contrib

Install virtualbox, or rather one of its dependencies.

Add user to group:

sudo gpasswd --add ca vboxusers

If not already, turn on virtualisation in BIOS.

Windows 10 VM

Name
Win10
Folder
/home/ca/Store/VirtualBox/
ISO image
/home/ca/Store/Disk Images/Win10_20H2_v2_EnglishInternational_x64.iso

Do not skip unattended installation. Adjust username (ca) and password.

Base memory
8192 MB (8 GB)
fourth of actual memory
Processors
4
half of the actual (virtual) cores
Virtual Hard Disk Size
100 GB
preset is 50 GB, but actual Windows installation has C: almost full at 50 GB

After the installation is complete, make a snapshot.

Move disk to SSD, if possible.

Configure Windows, including:

  • Turn Off Windows Defender
  • Turn off the visual effects: Performance Options / Visual Effects / Adjust for best performance
  • Disable unnecessary Startup apps and background processes.
  • Disable Defender and virus scan, etc.
  • Uninstall non-essential apps.
  • Disable search indexing
  • Switch off power saving (power plan: High Performance)

Zotero

Site: https://www.zotero.org/

Configure the unofficial apt repository of https://github.com/retorquere/zotero-deb via its configuration script:

curl -sL https://raw.githubusercontent.com/retorquere/zotero-deb/master/install.sh | sudo bash

Install zotero.

Got to Edit / Preferences / Advanced / Files and Folders. Under ‘Data Directory Location’ select ‘Custom’ and choose the directory /home/ca/work/Lit/Zotero/ (which has to exist already).

Papers are stored in the subdirectory storage of the Zotero data directory. Configuration is stored in ~/.zotero/zotero.

Better BibTeX

Better BibTeX enables exporting references in a collection to a bibliography file in CSL YAML format and to quickly copy the citation key, for use with Pandoc / Quarto.

Install the Better BibTeX for Zotero extension from https://github.com/retorquere/zotero-better-bibtex. Download the latest release and drag it into the Zotero dialog Tools / Plugins.

Under Edit / Settings / Export, set ‘Item Format’ to ‘Better BibTeX Citation Key Quick Copy’. Under Edit / Settings / Better BibTeX, set ‘Quick-Copy format’ to ‘Pandoc citation’, ‘Fields to omit from export’ to abstract,accessed,source,container-title-short,title-short,citation-key, and ‘Sort TeX/CSL output’ to ‘citation key’.

Export of a collection can be done manually, automatically, or via a URL. Quick copy of a citation key can be done via Ctrl+Shift+C or drag & drop.

GPXSee

Site: https://www.gpxsee.org/

Install signature:

curl -fsSL https://download.opensuse.org/repositories/home:tumic:GPXSee/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_tumic_GPXSee.gpg > /dev/null

Add to /etc/apt/sources.list:

deb http://download.opensuse.org/repositories/home:/tumic:/GPXSee/Debian_12/ /

Install gpxsee.

OpenVPN 3

Site: https://community.openvpn.net/openvpn/wiki/OpenVPN3Linux

Install signature:

curl -sSfL https://packages.openvpn.net/packages-repo.gpg > /etc/apt/keyrings/openvpn.asc

Add to /etc/apt/sources.list:

deb [signed-by=/etc/apt/keyrings/openvpn.asc] https://packages.openvpn.net/openvpn3/debian bookworm main

Install openvpn3.

With downloadable deb package

Place downloaded packages into ~/Config/Packages/deb/.

To avoid manually installed packages to appear as ‘obsolete’ in Aptitude, we can build a local apt repository from this directory:

The line for /etc/apt/sources.list is

deb [trusted=yes] file:/home/ca/Config/Packages/deb ./

This expects a file Packages.gz in the directory, which is created by

dpkg-scanpackages --multiversion . | gzip -9c > Packages.gz

Needs Debian package dpkg-dev.

There is a convenience script to do so in the directory; run ./rescan. There is also a script which downloads new versions of some of the packages automatically; run ./update.

Pulsar

Site: https://pulsar-edit.dev/

Download the latest (stable, released) *amd64.deb package from https://github.com/pulsar-edit/pulsar/releases.

Modify the desktop entry by adding -n to the arguments so that each time a new instance is started. If a file should be edited in an existing instance, drag and drop it.

To edit files owned by root with Pulsar, add the following line to ~/.bashrc:

export SUDO_EDITOR="/usr/bin/pulsar -n -w"

Files can then be edited using sudoedit </path/file>.

Configuration in ~/.pulsar/ can be kept. Packages are installed in ~/.pulsar/packages/.

Installation of community packages from within Pulsar does not work at the moment. Instead, find the package on https://web.pulsar-edit.dev/, copy the atom:-link from the ‘Install’ button, and run pulsar <link>.

Currently I use dark-blue-candy-store-syntax, language-markdown, document-outline, markdown-scroll-sync, and todo-show.

Quarto & Pandoc

Site: https://quarto.org/.

Download the current package from https://quarto.org/docs/get-started/.

After installation, make the Pandoc executable included with Quarto accessible:

sudo ln -s /opt/quarto/bin/tools/pandoc /usr/local/bin/

And install [pandoc-eqnos].

RStudio

Site: https://posit.co/products/open-source/rstudio/

Download the Debian package from https://posit.co/download/rstudio-desktop/#download.

AppImageLauncher

Site: https://github.com/TheAssassin/AppImageLauncher

Download the latest (stable, released) *amd64.deb package from https://github.com/TheAssassin/AppImageLauncher/releases.

Configure to use ~/Config/Packages/appimage as applications directory. Disable the auto-integration demon.

PDF Studio

Site: https://www.qoppa.com/

Use the ‘Linux 64-Bit Download’ from https://www.qoppa.com/pdfstudio/download/#linux64. Run the installer script via sudo.

Zoom

Site: https://zoom.us/

Download the Debian package from https://zoom.us/download?os=linux

Prince

Site: https://www.princexml.com/

Download the latest *debian12_amd64.deb from https://www.princexml.com/download/.

wkhtmltopdf

Site: https://wkhtmltopdf.org/

Download the latest *bookworm_amd64.deb from https://github.com/wkhtmltopdf/packaging/releases.

lsd

Site: https://github.com/lsd-rs/lsd

Download the latest *_amd64.deb from https://github.com/lsd-rs/lsd/releases.

With AppImage

AppImages should be integrated into the Desktop by opening the downloaded file with AppImageLauncher.

Maybe better to do this ourselves, to better manage versions?

How to get the stuff for desktop integration

Mount the AppImage with <name>.appimage --appimage-mount. This creates a temporary mount point whose name is printed to stdout.

In the mounted filesystem are:
- the desktop file in . and in ./usr/share/applications/geeqie.desktop
- icon file(s) in . and in ./usr/share/icons/

Easiest approach: Install the desktop file and icon file(s) from . using xdg-desktop-icon and xdg-icon-resource. The icon has to be installed under the name referenced in the desktop file.

The desktop file refers to the executable by a simple filename. Either this has to be adjusted to include a path, or the AppImage has to be copied or symlinked into ~/.local/bin/.

Geeqie

Site: https://www.geeqie.org/

Download latest *x86_64.AppImage package from https://github.com/BestImageViewer/geeqie/releases.

Configuration in ~/.config/geeqie/ can be kept.

Libreoffice

Site: https://www.libreoffice.org/

Download the ‘Fresh Standard’ AppImage from https://www.libreoffice.org/download/appimage/.

The version packaged with Debian does not integrate with the current theme and the UI looks broken. The AppImage does not have this problem.

The LibreOffice desktop entry has to be manually associated with docx, xlsx, and pptx.

LosslessCut

Site: https://github.com/mifi/lossless-cut

Download latest *x86_64.AppImage package from https://github.com/mifi/lossless-cut/releases.

With pipx

Use Debian package pipx. Upgrade installed software with pipx upgrade-all. Executables are installed to ~/.local/bin which should be on the PATH.

cfv

Site: https://github.com/cfv-project/cfv

pipx install cfv

yt-dlp

Site: https://github.com/yt-dlp/yt-dlp

pipx install yt-dlp

SubDownloader

Site: https://github.com/subdownloader/subdownloader

pipx install subdownloader
pipx inject subdownloader pyqt5

pandoc-eqnos

Site: https://github.com/tomduck/pandoc-eqnos

pipx install pandoc-eqnos

regex-rename

Site: https://igrek51.github.io/regex-rename/

pipx install regex-rename

Jupytext

Site: https://jupytext.readthedocs.io/

pipx install jupytext

radian

Site: https://github.com/randy3k/radian

pipx install radian

For nicer colors, create ~/.config/radian/profile containing e.g.

options(radian.prompt = "\033[0;94mr$>\033[0m ")        # visible prompt
options(radian.color_scheme = "fruity")

With pnpm

Make sure that the Debian package npm is installed.

Configure and install pnpm:

# set directory for globally installed executables to existing directory
npx pnpm config set global-bin-dir ~/.local/bin
# install pnpm
npx pnpm install -g pnpm

~/.local/bin should exist and be on the PATH.

After that,

pnpm install -g <packagename>

installs executables in ~/.local/bin, and

pnpm update -g

updates all installed packages.

pagedjs-cli

Site: https://gitlab.coko.foundation/pagedjs/pagedjs-cli

pnpm install -g pagedjs-cli

Carbonyl

Site: https://github.com/fathyb/carbonyl

pnpm install -g carbonyl

Other

Keep downloads in ~/Config/Packages/other/.

Calibre

Site: https://calibre-ebook.com/

Use the binary install:

sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin

or as root:

wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sh /dev/stdin

Configuration in ~/.config/calibre/ can be kept.

The bundled ebook-viewer needs a proper working OpenGL installation. A workaround is

export QTWEBENGINE_CHROMIUM_FLAGS="--disable-gpu"

Spotify

Just use the webplayer: https://open.spotify.com/

Python via micromamba

Site: https://mamba.readthedocs.io/

Installation:

bash <(curl -L micro.mamba.pm/install.sh)

Keep the micromamba binary directory at ~/.local/bin, but set the prefix location to ~/Store/micromamba.

Answer yes to the following questions. The first adds to ~/.bashrc the code

# >>> mamba initialize >>>
# !! Contents within this block are managed by 'mamba init' !!
export MAMBA_EXE='/home/ca/.local/bin/micromamba';
export MAMBA_ROOT_PREFIX='/home/ca/Store/micromamba';
__mamba_setup="$("$MAMBA_EXE" shell hook --shell bash --root-prefix "$MAMBA_ROOT_PREFIX" 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__mamba_setup"
else
    alias micromamba="$MAMBA_EXE"  # Fallback on help from mamba activate
fi
unset __mamba_setup
# <<< mamba initialize <<<

The second sets ~/.condarc to

channels:
  - conda-forge
  - nodefaults
channel_priority: strict

To that, add changeps1: False to avoid the Micromamba’s buggy prompt modification; see ~/.bashrc for a nicer solution.

Then create the std environment by

cd ~/Config/Python
./recreate_std

The script creates the environment based on std.yml, installs the Matlab Engine, and links local packages. It also illustrates how to activate an environment within a shell script.

Matlab

Site: https://matlab.mathworks.com/

Sign into Mathworks site via City and download the installer zip-file. Create a temporary directory and move the zip file there. From the directory, run

unzip -X -K matlab_<revision>_glnxa64.zip
sudo ./install

Within the installer, again sign into Mathworks via City. Accept the conditions. The license should already be selected. Edit the destination to be below /opt. Select toolboxes. Accept the offer to create symbolic links. When the installation is finished, delete the temporary directory. To install additional toolboxes later, the same installer is needed, so it should be kept.

Used toolboxes: ‘Statistics and Machine Learning’

Install Debian package matlab-support for desktop integration.

Use userpath to set the directory where Matlab looks for startup.m.

Transmission via PIA VPN

Site: https://haugene.github.io/docker-transmission-openvpn/

Install Debian package docker.io.

Run the script ~/bin/dto, which calls docker with the image haugene/transmission-openvpn and command line options to configure PIA. If the image does not already exist, it is downloaded.

The running image opens a VPN connection to PIA, and starts Transmission to transfer through it. The Transmission web-interface is available under http://127.0.0.1:9091/transmission/web/. The directory /home/ca/Store/transmission is mapped within the container onto /data, and Transmission stores downloaded torrents as well as configuration in subdirectories.

Moreover, the image runs the Privoxy web proxy routing all web traffic through the PIA VPN. It is accessible outside of the container under 127.0.0.1:8118. In theory, it should be configurable under https://www.privoxy.org/config/.

Evolution

Site: https://wiki.gnome.org/Apps/Evolution

We use Evolution to access City email via EWS, but we install it via Flatpak to avoid cluttering the system with GNOME libraries, especially GNOME keyring.

Install Debian package flatpak, then run

flatpak install flathub org.gnome.Evolution

and accept installation of dependencies.

Run it with flatpak run org.gnome.Evolution.

In the Configuration Assistant (either automatically started or from File / New / Mail account):

  • fill out Full Name and Email Address
  • uncheck Look up mail server details based on entered e-mail address
  • select Next
  • under Server Type select Exchange Web Services
  • under Username, keep the email address
  • under Host URL enter ‘https://outlook.office365.com/EWS/Exchange.asmx’
  • select authentication via OAuth2 (Office 365)
  • check Override Office365 OAuth2 settings
  • under Tenant enter the provided tenant
  • under Application ID enter the provided client_id
  • go through the next pages by selecting Next

After this, the account is configured but not yet authenticated. Try to open the account in the panel left, and you will be prompted for password and 2FA.

MRIcroGL

Site: https://www.nitrc.org/plugins/mwiki/index.php/mricrogl:MainPage

Download latest MRIcroGL_linux.zip package from https://github.com/rordenlab/MRIcroGL/releases.

As root, unzip the file into /opt/MRIcroGL

cd /opt/
unzip MRIcroGL_linux.zip

and link the QT5 version from a directory on the path:

cd /usr/local/bin/
ln -s /opt/MRIcroGL/MRIcroGL_QT MRIcroGL

This version additionally needs the Debian package libqt5pas1.

To associate NIfTI files with MRIcroGL, create a media type image/x-nifti called ‘NIfTI file’ with extensions *.nii and *.nii.gz, create a desktop file

echo "[Desktop Entry]
Name=MRIcroGL
Exec=/opt/MRIcroGL/MRIcroGL_QT
Icon=/opt/MRIcroGL/Resources/mricrogl.svg
MimeType=image/x-nifti;
StartupNotify=true" > /usr/share/applications/mricrogl.desktop

and run update-desktop-database.