Debian applications installation¶
Introduction¶
This page describes most of the installations I do on my Debian GNU/Linux machines just after the base installation and in my first Openbox session.
The first section is about Debian GNU/Linux packages installations, the second one is about third party applications installations.
Some of the applications I install have a dedicated page on this site (please see the home page) and are not mentionned here.
Debian GNU/Linux packages installation¶
Installation command¶
The command to be run (as root) to perform the Debian GNU/Linux packages installation is:
apt-get install \
rsyslog \
apt-rdepends \
curl \
firefox-esr \
webext-ublock-origin-firefox webext-ublock-origin-chromium \
w3m \
chromium \
smartmontools \
fonts-inconsolata \
ccrypt \
rsync \
zip unzip \
vorbis-tools \
alsa-utils \
moc \
cdtool \
cdparanoia \
cdrskin \
wodim \
genisoimage \
vlc \
ffmpeg \
sox \
wkhtmltopdf \
default-jre default-jdk \
taskwarrior \
gcal \
gftp \
ghostwriter \
xpdf \
evince \
librsvg2-bin \
lyx texlive-lang-* \
pandoc \
catdoc \
octave \
shellcheck \
gnat gprbuild libaunit22-dev \
ada-reference-manual-2012 \
libxmlada-dom12-dev libxmlada-input12-dev libxmlada-sax12-dev \
libxmlada-schema12-dev libxmlada-unicode12-dev \
libgtkada-bin libgtkada-doc libgtkada22 libgtkada22-dev \
gdb gdb-doc gdbserver \
valgrind \
lcov \
libncurses5 \
libb-lint-perl \
gimp gimp-plugin-registry jhead imagemagick \
libimage-exiftool-perl \
xsane \
xzgv \
rawtherapee \
irssi \
pan \
claws-mail \
claws-mail-themes \
vim \
unaccent \
psmisc \
sudo \
pwgen \
time \
tree \
mmv \
bc \
network-manager \
openconnect \
freerdp2-x11 \
whois \
wireshark \
tcpdump \
ncat \
nmap \
openssh-server \
colortest \
mesa-utils \
lm-sensors \
hwloc \
zbar-tools \
meld \
hexedit \
python3-sphinx \
ruby-nokogiri \
sakura \
foobillardplus # As root.
Short description¶
Here’s a short description of the packages:
rsyslog |
System and kernel logging daemon |
apt-rdepends |
Package dependencies listing tool |
curl |
Data transfer tool |
firefox-esr |
Graphical Web browser |
webext-ublock-origin-firefox, webext-ublock-origin-chromium |
Ads, malware, trackers blocker |
w3m |
Text-based Web browser |
chromium |
Graphical Web browser |
smartmontools |
Storage systems control and monitoring tools using S.M.A.R.T. (see this good smartmontools tutorial by Random Bits) |
fonts-inconsolata |
Monospace font |
ccrypt |
Encryption and decryption tool |
rsync |
File-copying tool |
zip, unzip |
Archiver and de-archiver for .zip files |
vorbis-tools |
ogg123, vorbiscomment, … |
alsa-utils |
amixer, alsamixer, … |
moc |
Music On Console |
cdtool |
Includes cdown (CD tracks info extraction) |
cdparanoia |
CD ripper |
cdrskin, wodim |
CD writing tools |
genisoimage |
ISO-9660 CD-ROM filesystem images creation |
vlc |
Multimedia player |
ffmpeg |
Multimedia files transcoding, playing, … |
sox |
Audio files manipulation programs |
wkhtmltopdf |
HTML to PDF conversion tool |
default-jre, default-jdk |
Java runtime, Java development kit |
taskwarrior |
Console based todo list manager |
gcal |
Calendar program |
gftp |
FTP client |
ghostwriter |
Markdown editor |
xpdf |
PDF reader |
evince |
Document viewer (can fill in forms in PDF files) |
librsvg2-bin |
Command-line utility to convert Scalable Vector Graphics (SVG) file |
lyx texlive-lang-* |
Document processor (almost WYSIWYG-frontend for LaTeX) |
pandoc |
General markup converter |
catdoc |
Text extractor for MS-Office files |
octave |
GNU Octave language (similar to Matlab) |
shellcheck |
Shell script analysis tool |
gnat, gprbuild, libaunit22-dev |
Ada programming tools |
ada-reference-manual-2012 |
Ada 2012 reference manual |
libxmlada-dom12-dev, libxmlada-input12-dev, libxmlada-sax12-dev, libxmlada-schema12-dev, libxmlada-unicode12-dev, libgtkada-bin libgtkada-doc, libgtkada22, libgtkada22-dev |
Ada libraries (XML/Ada and GtkAda) |
gdb, gdb-doc, gdbserver |
GNU debugger (including remote server) |
valgrind |
Program profiling tools |
lcov |
Test coverage report generation tools |
libncurses5 |
Libraries for terminal handling (legacy version), needed to run GNAT Programming Studio as provided with GNAT Community 2018 and 2019. |
libb-lint-perl |
Perl code checker |
gimp, gimp-plugin-registry, jhead, imagemagick |
Image manipulation programs |
libimage-exiftool-perl |
Includes exiftool (image metadata extraction) |
xsane |
Frontend for SANE (Scanner Access Now Easy), includes Gimp plugin (the Gimp plugin may not work, on Debian Bookworm at least, but there is a fix) |
xzgv |
Image viewer |
rawtherapee |
Raw image converter |
irssi |
IRC client |
pan |
Usenet newsreader |
claws-mail |
Mail client (MH mailbox format) |
claws-mail-themes |
Claws Mail themes |
vim |
Vim text editor |
unaccent |
Tool to replace accented letters by unaccented equivalent |
psmisc |
killall, … |
sudo |
Privilege escalation |
pwgen |
Password generator |
time |
CPU resource usage measurement |
tree |
Indented directory listing tool |
mmv |
Tool to move/copy/append/link multiple files by wildcard patterns |
bc |
Calculator language, to be used in scripts or interactively |
network-manager |
Network management framework |
openconnect |
Client for GlobalProtect VPN (among others) |
freerdp2-x11 |
X11 based Remote Desktop Protocol client (On Debian Buster, I have to
append options |
whois |
Command-line WHOIS client |
wireshark |
Graphical network traffic analyzer |
tcpdump |
Command-line network traffic analyzer |
ncat |
Utility to read / write data across networks from the command line |
nmap |
Network mapper |
openssh-server |
Secure shell (SSH) server |
colortest |
Terminal color test graphs |
mesa-utils |
glxgears and other programs |
lm-sensors |
Utilities to read temperature/voltage/fan sensors (Run |
hwloc |
Hardware Locality tool suite |
zbar-tools |
Bar code / QR-code related utilities |
meld |
Graphical tool to show differences between text files |
hexedit |
Hexadecimal editor |
python3-sphinx |
Documentation generator |
ruby-nokogiri |
HTML, XML, SAX, and Reader parser for Ruby |
sakura |
Terminal emulator |
foobillardplus |
3D OpenGL billiard game |
Configuration, preferences¶
Firefox ESR¶
At about:config, set the following options to true:
browser.quitShortcut.disabled
browser.tabs.warnOnClose
browser.tabs.warnOnCloseOtherTabs
browser.warnOnQuit
At about:preferences#search, set DuckDuckGo as default search engine.
At about:preferences#privacy, uncheck “Ask to save logins and passwords for websites”.
Chromium¶
In Settings | Search engines, set DuckDuckGo as the search engine used in the adress bar.
In Settings | Autofill | Passwords, disable “Offer to save passwords” and “Auto sign-in”.
Irssi¶
Set personal information (real name, user name, nickname) in
~/.irssi/config
.
Many Irssi themes are available. I chose the rolle theme.
To install and use the theme, just copy the theme file to ~/.irssi
and
issue a /SET theme <theme_name>
command in Irssi.
Claws Mail¶
When starting Claws Mail for the first time, you’re welcomed with the setup
wizard which helps you setting up an E-Mail account asks you in which folder
the messages should be stored. This is the “Mailbox name” which defaults to
“Mail” which means that the messages are stored in directory ~/Mail
.
The “Mailbox name” ends up in configuration file
~/.claws-mail/folderlist.xml
.
The E-Mail account parameters ends up in configuration file
~/.claws-mail/accountrc
.
Claws Mail stores the address book related files in directory
~/.claws-mail/addrbook
.
I keep my signature in ~/.signature
. (You can provide the signature file in
the “Compose” tab of the “Account preferences” dialog box.)
Other settings:
In Preferences, Themes: orbit-claws.
In Preferences, Other, Miscellaneous: Confirm on exit.
-
In Preferences, Message View, External Programs: Uncheck “Use system defaults when possible”. Enter external programs as follows:
Web browser: firefox ‘%s’
Text editor: gvim ‘%s’
Command for ‘Display as text’: gvim ‘%s’
Pan¶
In Edit News Servers, add a news server. I use news.free.fr, with my Free E-Mail login. This works even when connecting through an ISP other than Free.
In Edit Preferences, Applications: * Web browser: Custom Command: firefox * Text editor: gvim
The two settings are saved in ~/.pan2/servers.xml
and
~/.pan2/preferences.xml
respectively.
GIMP¶
In Preferences, Interface, Theme: System.
In Preferences, Interface, Icon Theme: Color.
In Keyboard Shortcuts, View: Set Zoom in shortcut to ‘=’.
Music On Console¶
I use Music On Console in shuffle mode. I’ve set the shuffle mode in the ~/.moc/config file.
Note also in the same file the ShowTime
setting. It avoids a huge delay
when quitting mocp
(due to the program reading the tags in the files).
Taskwarrior¶
By default, Taskwarrior stores the data in ~/.task
, but it is possible to
set another directory. See my ~/.taskrc file.
xzgv¶
Such a ~/.xzgvrc file ensures that the program starts in “fit to window” mode for high resolution images or in 100% mode for images smaller than the window. For high resolution images, switching between “fit to window” mode and 100% mode is possible with the Z key.
Vim¶
Check that /usr/bin/vim.gtk3
is the selected editor in the Debian
alternatives system with
update-alternatives --display editor
(as root). If not, use
update-alternatives --config editor
(as root).
Restore file ~/.vimrc
.
my ~/.vimrc file is
heavily commented. The most “interesting” thing may be the affectation of the
backupdir
and directory
options (the directories where the backup files
and the swap files are written respectively). They are affected to
~/.vim/backup
and ~/.vim/swap
respectively (assuming ~/.vim
is the
first entry of the runtimepath
option and ~/.vim/backup
and
~/.vim/swap
are writable directories or can be created as writable
directories).
The point of this is to avoid having backup and swap files in the working
directories and having them in dedicated directories ~/.vim/backup
and
~/.vim/swap
instead. You may be interested by this page by Xilin Sun
(which also covers the undo files).
Here is the code (with comments removed) of my ~/.vimrc
that makes the
affectation of the backupdir
and directory
options:
function s:CanWriteToDir(path_to_dir)
if !isdirectory(a:path_to_dir) && exists("*mkdir")
silent! call mkdir(a:path_to_dir, "p", 0700)
endif
return (filewritable(a:path_to_dir) == 2)
endfunction
let s:DotVimPath = split(&runtimepath,",")[0]
let s:BackupDir = s:DotVimPath . "/backup"
if s:CanWriteToDir(s:BackupDir)
set backup
let &backupdir = s:BackupDir . "," . &backupdir
endif
let s:SwapDir = s:DotVimPath . "/swap"
if s:CanWriteToDir(s:SwapDir)
let &directory = s:SwapDir . "//" . "," . &directory
endif
You may also be interested in using the Base16 color schemes.
Sakura¶
Set font to Inconsolata Medium 12.
Wireshark¶
When installing Wireshark (Debian package wireshark), you’re prompted to choose
whether non-superusers should be able to capture packets. I answer “Yes”. It
causes the wireshark
group to be created. Then you just have to add a user
to the wireshark
group to grant this user the right to capture packets with
Wireshark. Use a command like the one below (as root) to add a user a user
to the wireshark
group:
usermod -aG wireshark user_name # As root.
If you have answered “No” and have changed your mind, run dpkg-reconfigure
wireshark-common
.
Lyx¶
The lyx
package should preferably be installed along with the
librsvg2-bin
package, otherwise Lyx could fail to compile the
splash.lyx
file (located in /usr/share/lyx/examples
). This is due to a
missing converter (the “SVG (compressed)” to “PDF (graphics)” converter).
You can also install librsvg2-bin
later and then add the “SVG (compressed)”
to “PDF (graphics)” converter manually via the Tools | Preferences menu dialog
box, File Handling | Converters section. The converter command line must be:
rsvg-convert -f pdf -o $$o $$i
(See this Stackoverflow answer.)
If you want to change the configured PDF viewer, you can do it via the Tools | Preferences menu dialog box, File Handling | File formats section. I choose “evince” as the viewer for the “PDF (pdflatex)” file format.
Third party applications installation¶
Google Chrome installation¶
I downloaded the 64 bit .deb Debian package from https://www.google.com/chrome and installed it as root with:
dpkg -i google-chrome-stable_current_amd64.deb # As root.
The installation was not successful. I had to issue the following command to fix the system:
apt install -f # As root.
I didn’t want Google Chrome to be the default browser, so I reselected Firefox
ESR in the Debian alternatives system with update-alternatives
--config x-www-browser
(as root).
I then tweaked Google Chrome’s settings as for Chromium.
GNAT Community Edition 2021¶
GNAT Community Edition is available on Adacore’s download page. Download the binary executable archive gnat-2021-20210519-x86_64-linux-bin and execute it as root to perform the installation. Before that, you probably have to make sure that the executable can connect to the X server using the following commands:
xhost +local: # As "normal" user.
and:
export DISPLAY=:0.0 # As root.
Alire (Ada LIbrary REpository) installation¶
The Alire distribution is available as a Zip
archive on Github. I download it using wget
(example for version 1.2.1):
cd Downloads
wget https://github.com/alire-project/alire/releases/download/v1.2.1/alr-1.2.1-bin-x86_64-linux.zip
Then I extract it using unzip
as root:
cd <directory_containing_the_archive> # As root.
mkdir -p /opt/alire # As root.
unzip alr-1.2.1-bin-x86_64-linux.zip -d /opt/alire # As root.
Finally I add /opt/alire/bin
to my path, via a line in my ~/.profile
file:
signal-desktop installation and linking to a “dumb phone”¶
Here are the commands I issued (as root) to install signal-desktop (you may want to check the Signal official site):
wget https://updates.signal.org/desktop/apt/keys.asc -O - | apt-key add
echo "deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main" \
> /etc/apt/sources.list.d/signal-xenial.list
apt-get update
apt-get install signal-desktop
chmod 4755 /opt/Signal/chrome-sandbox
If your phone is not able to read QR codes (like my “dumb phone”), you can link it using signal-cli. You will also need a QR code decoder program. zbarimg (provided by Debian package zbar-tools) is an example of such a program.
First, download signal-cli (as a normal user, and check the latest version number on https://github.com/AsamK/signal-cli/releases):
cd ~/Downloads
wget https://github.com/AsamK/signal-cli/releases/download/v0.7.4/signal-cli-0.7.4.tar.gz
Then install it as root:
cd /opt
tar -xvf /home/<username>/Downloads/signal-cli-0.7.4.tar.gz
Then, as a normal user (substitute +336xxxxxxxx with your real phone number):
# Request a verification code (you'll receive it in an SMS).
/opt/signal-cli-0.7.4/bin/signal-cli -u +336xxxxxxxx register
# Verify your account.
/opt/signal-cli-0.7.4/bin/signal-cli \
-u +336xxxxxxxx verify <verification_code_received_by_sms>
# Launch signal-desktop.
signal-desktop &
You’re presented with a QR code. You need to save the QR code image to a file (say, ~/qr.png):
Open developer tools (menu View | Toggle Developer Tools).
Go to Network tab.
Click All.
Type
data:image/png
in the filter text box.Hit Ctrl-R if you don’t see any
data:image/png
entry appear.Click the
data:image/png
entry.Save the image (right click on it, save to ~/qr.png).
Finally, use zbarimg to extract the tsdevice link and link your computer with your phone:
zbarimg ~/qr.png 2>/dev/null|head -1|sed "s/^[^:]\+://"
/opt/signal-cli-0.7.4/bin/signal-cli -u +336xxxxxxxx \
addDevice --uri "<tsdevice_link>"
Session for desktop installation¶
Here is how I currently install and use Session for desktop. I download the Appimage file for Linux from https://www.getsession.org/linux and place it in my home directory. Then I give the file executable permission with a command like:
chmod +x session-desktop-linux-x86_64-1.5.2.AppImage
I launch Session for desktop with a command like:
session-desktop-linux-x86_64-1.5.2.AppImage --no-sandbox &
(See https://github.com/oxen-io/session-desktop/issues/1418 for a discussion
about the use of the --no-sandbox
flag).