The goal is still the same: how to install the programs I use regularly on several computers such that they appear and function exactly the same.
Using docker to clone the installation (across the ARM - AMD divide) was not successful: the construction of a single image to include all the software required with all configuration demonstrated the limits of the technology for the task. The very powerful Raspberry Pi 4 64-bit Single Board Computer demonstrated some differences making it hard to install an XFCE deskto with docker.
The goal is to achieve the same GUI experience on any computer automatically -- as far as possible.
Prefer simpler installation methods whenerver possible: - install from debian repositories with apt-get install - allow some preparatory steps for each target - sync or copy configuration files - use docker for particular programs (not for the desktop)
Target hardware is only - AMD (laptop and desktop) - ARM (Raspberry Pi 4, if feasible the Odroid XU4)
footnote: the odroids will be used for special tasks, especially syncthing and related. Raspi 2B will remain as music clients.
The installation is necessarily broken into two steps: an initial installation and then later a maintenance step to keep the installation up-to-date and in sync.
The initial installation must achieve: - a running Debian plattform (not necessarily with a GUI) - linux with a single partition or with a root and a /home partition; - a hostname (used as hostname.local) - an account for frankadmin (on uid 1000) with sudo (not account
frank) - installed - sudo - python3 - openssh - /etc/ssh/sshd_config: - Port NN (unique for the host) - no root login / no root login with password ?? - ssh key
TODO how to make individual port numbers? (list mapped to
installing with deb installer in tasksel with MATE and ssh-client gives all the required packages.
it puts hostname in /etc/hostname and /etc/hosts
for ansible: put into hosts: [test] deb10test.local ansible_user=frankadmin then ssh-copy-id firstname.lastname@example.org
footnote: install for rpi4 on ssd does not work consistently; the old usb-sata bridge seems ok, the new enclosure not. Different chips - may work with an upgrade of the firmware in the USB-Sata bridge!
Then run the firstTime playbook with ansible to - apt full-upgrade - tasksel MATE -- better done with debian-installer d-i (faster, safer) - add users (at least frank with sudo) - copy the initial syncthing/config.xml to /home/frank/.config/syncthing/confix.xml (but no other files) - for user frank run syncthing - add entry to .ssh/config for the host on the master
- sudo - python2 - openssh - /etc/hostname and /etc/hosts
change manually - the Port in /etc/ssh/sshd_config - add "hostname" to ~/.ssh/config with port and hint for pw
run once: - syncthing install and start
a ansible role
ansible roles for each addition - syncthing (used in once only) [https://github.com/escaped/ansible-syncthing] -- 6 years old. I write my own.
Dconf is the tool in MATE to maintain the configuration. A broad approach is to load all of an example configuration with
dconf dump \ and a corresponding
dconf load \.
Eventually a dump and load for each application may be better.
What configurations are not included in the full dump?
before load, make a dump and name it with host and date.
footnote: for a complete dump dconf dump / > someFile for just the mate configurations: dconf dump /org/mate/ > someFile
All the MATE applications seem to store their configuration in dconf, leaves to find solutions for others: - vscode: keeps configuration synced (proprietary solution of MS) - email: currently trying
balsa - ghc: - latex:
In dconf is more: /org/gnome/geary/ /org/gnome/meld/ /org/gnome/Disks/ /org/gtk/settings/
Not used anymore: fileroller, gedit, evolution, nemo
TODO: - what else?
TODO: test compiz apt install compiz compiz-mate compiz-plugins compiz-plugins-default compiz-plugins-extra compiz-plugins-experimental compizconfig-settings-manager
MOVE: Set-up required: - screen saver: never - keyboard US int alt-gr dead - filemanager: show hidden files, columns owner protection remove apps: xterm, uxterm, mousepad (pluma), thunar
Then access with ssh and do local ssh-copy-id nnn
mkdir .config cd .config mkdir syncthing cd syncthing scp london:Data/install2/files2copy/.config/syncthing/config.xml . # scp london:Data/ . # cd Data/install2/files2copy/.config # ln -s xfce4 ~/.config/ # install the MATE config with dconf
check! ln -s geary ~/.config/geary # check cd ../.local/share # ln -s nemo ~/.local/share/
and install the rest
MOVE: sudo apt-get install dconf-editor
task in instalBasicDeb
task in installDesktopTools
sudo apt-get install synaptic apt-xapian-index \ gparted baobab \ avahi-ui-utils avahi-discover \ meld git-gui cups \ raptor2-utils \ xournal gdebi dos2unix \ geany gnome-disk-utility borgbackup system-config-printer \ syncthing
input keyboard remove: nautilus xournal raptor2-utils lightdm gedit gedit-plugins file-roller nautilus sound-juicer ario
move: libicu-dev icu-devtools should go to ghc? cd
and xfce desktop
footnote: for debian, I used tasksel and then added the rest
old: unfortunately in buster this is only version 12; bullseye will give 14 which seems to have some support for backup of configuration. but we go now for MATE
sudo tasksel # MATE sudo apt install firefox-esr jabref
OLD: sudo apt-get install \ xfce4 xfce4-goodies xfce4-whiskermenu-plugin tango-icon-theme gnome-icon-theme lightdm \ xorg synaptic apt-xapian-index \ xrdp network-manager-gnome \ gparted gnome-disk-utility gedit gedit-plugins baobab \ avahi-ui-utils \ meld file-roller git-gui cups \ firefox-esr nemo geary jabref
remove thunar thunderbird (if geary works) duplicated remove avahi-daemon avahi-utils avahi-discover jabref should perhaps be installed separately
OLD: do_aptget.sh removed (duplicated) xfce4-terminal added to check: thunar-gtkhash (version 1.2-1) will be installed xfce4-indicator-plugin (version 2.3.4-2) will be installed xfce4-mount-plugin (version 1.1.3-2) will be installed xfce4-mpc-plugin (version 0.5.1-1) will be installed xfce4-statusnotifier-plugin (version 0.2.1-1) will be installed xfwm4-theme-breeze (version 0.1.0-4) done on hallwil london10
To use newer versions, add backport and upgrade with apt upgrade -t buster-backports is required for each upgrade!
seems not to give anything useful
muhen all done!
must have scp install2 (to have the syncthing config.xml) on target make the dir .conf/synthing then
scp config.xml target:.config/syncthing/config.xml
instructions curl -s https://syncthing.net/release-key.txt | sudo apt-key add - echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt update; sudo apt install syncthing
set up sudo su echo "fs.inotify.maxuserwatches=401001" >> /etc/sysctl.conf dann sudo sysctl -p -- muss 401001 zeigen
for arm64 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - curl -sSL https://get.docker.com | sh -- problem with ubuntu sudo adduser frank docker docker login andrewufrank # g5docker --fails?
# curl -fsSL https://get.docker.com -o get-docker.sh # sudo sh get-docker.sh sudo add-apt-repository "deb https://download.docker.com/linux/debian buster stable" sudo apt-get install docker-ce docker-ce-cli containerd.io sudo usermod -aG docker !your-user! sudo docker run hello-world # (nur ein test)
done seon, not done muhen
curl -fsSL https://raw.githubusercontent.com/mviereck/x11docker/master/x11docker | sudo bash -s -- --update
done on hallwil london10 seon
for AMD # sudo apt install software-properties-common apt-transport-https curl curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - add to /etc/apt/rep sudo add-apt-repository "deb https://packages.microsoft.com/repos/vscode stable main"
(code stored in Data/install2)
OLD: copy files in .vscode (all) from Data/install2/files2copy
turn on settings sync (preferences->settings->sync) or from Manage button (gear at bottom) - authorize with github account andrewufrank (g5github) - sync all (merger if the machine is not a new install)
The installed RP14 installed
lightdm is setup to boot only the Raspberry OS.
apt install slim
The problem remains, that to shutdown/power-off must use the CLI shutdown 0
Values must be set individually for - /etc/hostname, e.g. hallwil
raspi requires: - sudo systemctl enable ssh - sudo systemctl start ssh
User accounts must be created for - AMD debian: if required for during installation: 1000 - frankadmin or pi - frank (1010), andrew (1014), christine (1012), giorgio (1016), auf(1018) - add frank to sudo and docker
done frank on hallwil,seon,muhen
Should work; needs apt install network-manager network-manager-gnome
Assure that the NetworkManger.conf says
managed=false and the directory
/etc/network/interfaces.d is empty and the file
interfaces does not include anything on the interfaces of interest.
# interfaces(5) file used by ifup(8) and ifdown(8) # Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d # The loopback network interface auto lo iface lo inet loopback
/etc/hosts contains 127.0.0.1 localhost 127.0.1.1 seon.local seon
# The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
The file .config/syncthing/config.xml is copied to user. Start
syncthing (not root!). Opens automatically browser (user giorgio pw gg).
Open browser on source computer (London) and allow connection for all folders. Should sync!
TODO: needs cleanup: no afhome, install -- some unused devices
Missing: sudo systemctl enable syncthing@frank to start automatically on next boot.
hallwil ORP73VM-V5GSOJE-6PKT3PC-XFKGNAQ-FCGKGIH-DFUIQLY-VFZH2HV-JKV3SQG seon BTAX5R4-IELZCH7-CT7GICE-VR2PVYZ-G6PWBKH-PNBVPRU-AE3EBXB-5KLGBAB
copied only the config file from london10 (which has minimal). do not copy other files which were created by running syncthing initially in the user's directory.
starts with the problem to try to connect to itself. needs edit?
check that connected to proper servers. hallwil must be connected to london10 (VKRDW), seon the same.
TODO: fix connections for syncthing
TODO: some issue when upgrading in apt to version from syncthing
get all the configuration with regular start then cd Data/install2/ dconf dump /org/mate/ > Data/dconfDumpNNN1 dconf load /org/mate/ < Data/dconfDumpLondon4
The existing dumps are visible; select the number for a dump one higher than the dump loaded! I.e. when loading last was
dconfDumpSeon5 then save
dconfDumpLondon6 (and not one higher than the last dump from london).
TODO: what is not copied? color of mate terminal?
The installation of the desktop is per user.
xfce-panel-switch deb package; install with gdebi (stored in Data/install2)
install the stored configuration. The configuration is in
~/.conv/xfce4 directory. logout of user (xfce overwrites configuration when stopping!). Details
install xfce4-panel-profiles deb. Install with
gdebi. Allows to store a profile and restore it.
Current best: londonDeb10. Not yet proper switch
## Filemanager: rejected: Thunar
There are many filemanagers available; XFCE comes with Thunar. It is extensible with
actions. They are stored in the
Add action for
meld. Do not automatically mount.
How to sync the installations? `.conf/xfce is a link into the synchronized Data folder.
This is a fork from Nautilus. It stores its addons separately in .local/share/Nemo. see
add - caja-open-terminal - caja-admin - caja-sendto - caja-image-converter - caja-gtkhash - caja-rename
apt install caja-open-terminal caja-admin caja-sendto caja-image-converter caja-gtkhash caja-rename
see this on dconf
meld is triggered with 'open with' when selecting two or more files, then make that meld is not default!
added clipit and diodon - unclear how xfce-clipman could be installed
Instead of Thunderbird, which I have used for years, I try to install
Geary. Thunderbird has a very complex data structure and I do not see where the minimal profile is stored (and not all sorts of current state, email etc); the Thunderbird profile file is 6 GB, because it includes the current email.
Install with synaptic (apt install) and force version 3.34 from backports.
add 3 emails: gerastree, geoinfo.tuwien.ac.at, email@example.com. For gmail I have to allow less secure devices in google account login. (google.com)
seems not too simple; some problems with duplicating. seems not to work when a configuration is copied, but not the mail folder. should be required only initially.
required new installation of accounts,probably some confusion in the copy process (only 2 of 3 accounts were there)
needs to test - use of older archives - spam filter
Geary seems not to work for my way of doing things; I have very large mailboxes and I most search. Geary blochs (hangs) when searching in large collections. It seems not to deal with archiving.
TODO: clean up mailbox
Evolution is GNOME based and uses dconf for the configuration data. It uses seahorse and the GNOME keystore for the passwords etc. (same as the passwords for ssh, pgp). The application seems to be much more mature than Geary (to bad for Geary) and has a modern GUI.
try mailpiler, mailarchive, offlineIMAP
The simples is to store mails per year (as I did so far) and quarter, received (in) and sent (out) as berkley mailbox
When the current desktop should be in 120 .. 240 GB then additional data storage is on the syncservers and accessed with NFS: - archive - amd/ard software - photos: several directories - music
borg --exclude /media/*, /sys, /proc df -h du -hd1 | sort -h
panel where problem with switch workspaces
some similar stuff at the bottom issue xfce is not the newest?
ueber server mit caldav
should I use catfish or is the search in thunar ok?
TODO: set up
I have 3 accounts: - firstname.lastname@example.org for private (non-GIS professional) mail; avoid lists!
email@example.com - professional email, many lists
gmail - lists, recovery
TODO: move recovery to another list?
have a folder listsYEAR in tuwien and move all much traffic stuff there. what can be automated?
remove lists which i am not interested anymore: atom removed, to remove: couchdb
Produced with SGG on with master5.dtpl.