linux ubuntu 22.04

Зачем

Для компиляторов с С++17/С++20
Cygwin даёт clang-8, которого хватило бы, однако там проблемы с exceptions.
Ещё у меня Cygwin отвалился на моменте включения в проект mosquitto (его windows-версия не threading)
U20.04 имеет только gcc9. Кросс-тулчейн собрать можно, но это исключит сборку проекта и для таргета и для хоста если с++20.
U22.04 хочу попробовать build-essential-armhf а не собирать самому crosstool

Установка

Ставлю пока в виртуалку
.vmx << ulm.disableMitigations = "TRUE"

Разбивку диска автоматом делает норм: биосбуут 1Мб, efi 500Мб, остальное всё тупо в /
Свап сделало файлом 2Гб в корне.

sudo apt install open-vm-tools open-vm-tools-desktop
Для работы под рутом, sudo мне неоч
sudo passwd
Swap говорят очень нужен
А оно и сделает автоматом в корне /swapfile 2ГБ и ладно
если что, то делать так:

dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo /swapfile  none  swap  sw  0   0  >> /etc/fstab
swapon --show
cat /proc/sys/vm/swappiness

Либо в виртуалке лучше сделать новый диск, на сколько угордно, 16/32 etc,
mkswap /dev/sdXXX
И в /etc/fstab добавить строку
UUID=[ююид который выдало мксвап] none swap defaults,pri=1000 0 0
приоритет лучше сделать больше (1000 больше чем -2 вроде) чем у соданного при инсталле двухгигового файла

Моё всё в хроме

wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
sudo apt update
sudo apt install google-chrome-stable

Инструменты

sudo apt install build-essential cmake
sudo apt install git meld rabbitvcs-core rabbitvcs-cli rabbitvcs-gedit rabbitvcs-nautilus
sudo apt install mc nano vim openssh-server sshpass
sudo apt update
sudo apt upgrade

Для build-essentials возможно Либу придется даунгрейднуть

libc6-dev : Depends: libc6 (= 2.35-0ubuntu3) but 2.35-0ubuntu3.1 is to be installed
E: Unable to correct problems, you have held broken packages.
user@u22041:~$ sudo apt install libc6=2.35-0ubuntu3

Зависимости crosstool-ng
Сами они советуют смотреть в конфигах докеров в своей /testing

sudo apt install autoconf flex bison texinfo \
help2man gawk libtool libtool-bin \
libncurses-dev gperf \
meson ninja-build \
curl wget \
//bzip2 xz-utils unzip patch rsync

Чтобы запоминало пароли
git config --global credential.helper store
Mosquitto broker
sudo add-apt-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt search mosquitto
sudo apt install mosquitto mosquitto-dev mosquitto-clients mosquitto-dbg
sudo apt install libmosquitto1 libmosquitto-dev
dpkg -L mosquitto-dev

Кросс-компилятор

sudo apt install crossbuild-essential-armhf

$ arm-linux-gnueabihf-gcc --version
arm-linux-gnueabihf-gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0

Eclipse
sudo apt install default-jdk ставит 11, а eclipse просит 17+
качаю https://download.oracle.com/java/19/latest/jdk-19_linux-x64_bin.deb

sudo apt install ~/Downloads/jdk-19_linux-x64_bin.deb
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-19/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-19/bin/javac 1
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk-19/bin/jar 1

Запускаю инсталлятор, ставит в home, ладно

sudo apt install gdb gdb-multiarch

sudo apt install clang lldb lld
Для eclipse-cdt lldb нужно lldb-mi, который убрали из реп деб/уб. Собрать самому установленным клангом не удалось, советуют самособранным клангом. Это качать гигабайты сырцов, отложил пока.
Но даже в gdb многопоток, собранный клангом отлаживается поустойчивее, чем то же самое, собранное стоковым gcc.
Может понадобиться апдейтнуть альтернативы
https://azrael.digipen.edu/~mmead/www/mg/update-compilers/index.html

Либо clang может зацепиться к другой версии gcc, которая например установлена без плюсов вообще.

sudo apt install libreoffice-gnome libreoffice