void was good, but i didn't find it was practical for me to get an idea of where things were going. i'm not willing to rely solely on irc as it appears it is a requirement to give away one's ip address to all participants of a channel (or server) and that's not really something i'm comfortable with.
mint is something i've used before (though quite a while back). unfortunate that it uses systemd, but one can't have everything i suppose.
-
on existing ssd with void, make a partition that has enough space to hold user directories, say stuff under
/home
. this was doable in my case due to the way i tend to not fill up storage devices -
copy home directories to new partition
-
optionally backup entire ssd somewhere (initially i did this to figure out subsequent steps, but i came back to work on the original ssd once i was comfortable that things would work)
-
remove efs and void partitions (can do this a bit later too)
-
prepare / get ventoy boot usb media
-
get and verify iso for linux mint (22.1 and 22.2 both worked) and put on ventoy usb
-
boot machine from ventoy usb, choosing one of the mint isos, and follow the directions until ending up at a desktop
-
start the installer via the icon on the desktop
-
follow the appropriate steps until reaching the partitioning step
-
choose the last option -- "something else" -- then make efs and ext4fs partitions. i gave efs 1024 mb and the rest to the ext4fs. choose
/
as the mount point for the ext4fs partition. there should be some button to press that indicates continuing the installation...press it -
continue until installation has finished. some of the steps took quite long...perhaps there was a fair bit of network congestion or retrying? who knows...
with the ventoy media not plugged in, reboot / turn the machine on
somehow i kept getting hash checksum errors during apt get update
. one
thing that seemed to work was doing:
sudo rm -rf /var/lib/apt/lists/*
sudo apt-get update -o Acquire::CompressionTypes::Order::=gz
and then proceeding as normal.
various other methods are described here.
historical note: it may have been that the timing was unlucky.
disable ipv6 via grub. edit /etc/default/grub
so it has:
GRUB_CMDLINE_LINUX="ipv6.disable=1"
then sudo update-grub
to update grub.
note that update-grub2
is a symlink to update-grub
-- either should give
the same results
make the ~/.local
directory available for per-user software installation (to be done
later): mkdir ~/.local
nicer to do now because logging back in / rebooting makes things more straight-forward
-
add additional users if neceesary via
users-admin
(or "Users and Groups" via the text field that comes up when the mint logo at the left of the panel is clicked) -
use
vigr
andvigr -s
to add users to thesudo
group if needed (forsudo
use) -- possibly might want to add to other groups too. depends on one's uses.
-
follow steps here to disable unwanted network services.
use
sudo netstat -tunlp
to check what is running:$ sudo netstat -tunlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 576/systemd-resolve tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 966/cupsd tcp 0 0 127.0.0.54:53 0.0.0.0:* LISTEN 576/systemd-resolve udp 0 0 0.0.0.0:5353 0.0.0.0:* 666/avahi-daemon: r udp 0 0 0.0.0.0:53118 0.0.0.0:* 666/avahi-daemon: r udp 0 0 127.0.0.54:53 0.0.0.0:* 576/systemd-resolve udp 0 0 127.0.0.53:53 0.0.0.0:* 576/systemd-resolve
-
reboot and check via
sudo netstat -tunlp
to see:$ sudo netstat -tunlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
-
sudo apt install vlc handbrake gimp qemu-kvm
-
sudo apt remove firefox thunderbird transmission-gtk hypnotix rhythmbox
mint is nice but some of the software is not recent enough. not too hard to compile own bits or fetch from elsewhere.
may want to sudo apt install git gcc make autoconf cmake
and add some
deb-src
entries via "System -> Software Sources" (just toggle the
"Source code repositories" option)
cd ~/src
git clone https://github.com/tree-sitter/tree-sitter
cd tree-sitter
git checkout v0.25.8
# you did create ~/.local earlier, right?
make PREFIX=$HOME/.local clean
make PREFIX=$HOME/.local
make PREFIX=$HOME/.local install
# there is even an uninstall target, nice -- though PREFIX
# may need to be specified for that to work well as well
# as having the appropriate tag checked out (e.g. here
# we did `git checkout v0.25.8` -- we'll want the same
# if using the uninstall target)
# get emacs build dependencies -- this is what the deb-src stuff above was for
sudo apt build-dep emacs-gtk
# don't want these though -- they are too old
sudo apt remove libtree-sitter-dev libtree-sitter0
cd ~/src
git clone https://github.com/emacs-mirror/emacs/
cd emacs
git checkout emacs-30.1
# needs autoconf -- used apt get earlier, right?
bash autogen.sh
TREE_SITTER_CFLAGS=-I$HOME/.local/include TREE_SITTER_LIBS="-L$HOME/.local/lib -ltree-sitter" \
./configure \
--prefix=$HOME/.local \
--with-tree-sitter \
--with-cairo
LD_LIBRARY_PATH=$HOME/.local/lib make
LD_LIBRARY_PATH=$HOME/.local/lib make install
put export LD_LIBRARY_PATH=$HOME/.local/lib
into ~/.profile
.
this is for things that want to use our local libraries to work, emacs is one such thing.
this is kind of a work-around. may be there's a better method...
already had these bits (also linked to from under ~/.emacs.d
), but fwiw:
cd ~/src
git clone https://github.com/casouri/tree-sitter-module
cd tree-sitter-module
bash batch.sh
cd ~/src
git clone https://github.com/neovim/neovim
cd neovim
# you did install cmake via apt, right?
make CMAKE_BUILD_TYPE=RelWithDebInfo CMAKE_INSTALL_PREFIX=$HOME/.local
make install
cd ~/src
git clone https://github.com/janet-lang/janet
cd janet
make clean && PREFIX=$HOME/.local make && PREFIX=$HOME/.local make install
sudo apt install openjdk-21-jdk curl rlwrap
curl -L -O https://github.com/clojure/brew-install/releases/latest/download/linux-install.sh
bash linux-install.sh --prefix $HOME/.local
things copied over (cp -a
may be good) so far:
~/.config/nvim
and~/.local/share/nvim
~/src
~/.emacs.d
~/.ssh
~/.gitconfig
need to do while not logged in (or xfconfd
not running...)
~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
- for keyboard shortcuts
perhaps not...
https://librewolf.net/installation/debian/
XXX: may be better to not use...the scrcpy-server building seems to require android sdk to build. multiple distributions seem to just be using the "prebuild" scrcpy-server...who knows whether the content is ok...
XXX: packaged version seems too old
XXX: instructions in progress - some details here
# gets the adb bits
sudo apt install scrcpy
# remove the old bits that don't appear to work
sudo apt remove scrcpy scrcpy-server
# runtime dependencies
sudo apt install ffmpeg libsdl2-2.0-0 adb libusb-1.0-0
# client build dependencies
sudo apt install gcc git pkg-config meson ninja-build libsdl2-dev \
libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev \
libswresample-dev libusb-1.0-0-dev
# server build dependencies -- trying with 21
sudo apt install openjdk-17-jdk
# https://developer.android.com/studio/index.html#command-line-tools-only
cd ~/src
git clone https://github.com/Genymobile/scrcpy
cd scrcpy
# building scrcpy-server from source seems quite involved
- turn off microphone at boot
- "policy checker" to confirm that things like "microphone is off" hold