device=/dev/sda
sudo wipefs --all $device
sudo dd if=/dev/zero of=$device bs=102400 count=2000
sudo parted $device --script mklabel gpt
sudo parted --script $device mkpart --align optimal efi fat32 4MiB 1GiB
sudo parted --script $device set 1 esp on
sudo parted --script $device print
I'm having a hard time understanding btrfs. I'm going to create a single logical volume and let Fedora do its thing inside of it.
Destroy lvm:
sudo vgchange -an $VGNAME
sudo lvremove -f -y $VGNAME
sudo vgremove $VGNAME
sudo vgreduce --removemissing $VGNAME
sudo pvremove -y -ff /dev/nvme0n1p2
sudo pvremove -y -ff /dev/nvme1n1p2
sudo wipefs --all /dev/nvme1n1
sudo wipefs --all /dev/nvme0n1
sudo dd if=/dev/zero of=/dev/nvme1n1 count=1000 bs=1MiB
sudo dd if=/dev/zero of=/dev/nvme0n1 count=1000 bs=1MiB
Setup LVM Before Install
sudo lsblk
sudo wipefs --all /dev/nvme0n1
sudo parted --script /dev/nvme0n1 mklabel gpt
sudo parted --script /dev/nvme0n1 mkpart lvm0 btrfs 2048s 100%
sudo parted --script /dev/nvme0n1 set 1 lvm on
sudo wipefs --all /dev/nvme1n1
sudo parted --script /dev/nvme1n1 mklabel gpt
sudo parted --script /dev/nvme1n1 mkpart lvm0 btrfs 2048s 100%
sudo parted --script /dev/nvme1n1 set 1 lvm on
#sudo fdisk -l /dev/nvme1n1
#sudo lsblk -o name,mountpoint,label,size,uuid
#sudo parted --script /dev/nvme1n1 --list
sudo pvcreate /dev/nvme0n1p2 /dev/nvme1n1p2
VGNAME=vostok
sudo vgcreate $VGNAME /dev/nvme0n1p1 /dev/nvme1n1p1
Ok, using the installers with a pre-configured LVM is super hard, here's how to rename volumes after install Ubuntu
sudo vgrename /dev/vgubuntu /dev/baikal
sudo mkfs.ext4 /dev/vostok/dropbox
# i.e.
# sudo mkfs.ext4 /dev/volume_group/logical_volume_name
This is from when I thought I could set up something like LVM with btrfs and then install Fedora into it. I didn't really understand it and Anaconda is totally arcane.
sudo wipefs --all /dev/nvme0n1
sudo wipefs --all /dev/nvme1n1
sudo dd if=/dev/zero of=/dev/nvme0n1 bs=10240 count=100000
sudo dd if=/dev/zero of=/dev/nvme1n1 bs=10240 count=100000
sudo parted /dev/nvme0n1 --script mklabel gpt
sudo parted /dev/nvme1n1 --script mklabel gpt
sudo mkfs.btrfs -m single -d single -L vostok /dev/nvme0n1 /dev/nvme1n1 -f
sudo rm -rf /mnt/vostok
sudo mkdir /mnt/vostok
sudo mount -t btrfs /dev/nvme0n1 /mnt/vostok
sudo btrfs subvolume create /mnt/vostok/root
#sudo chown $(id -u $(whoami)):$(id -g $(whoami)) /mnt/nvme
Destroy lvm:
sudo vgchange -an $VGNAME
sudo lvremove -f -y $VGNAME
sudo vgremove $VGNAME
sudo vgreduce --removemissing $VGNAME
sudo pvremove -y -ff /dev/nvme0n1p2
sudo pvremove -y -ff /dev/nvme1n1p2
sudo wipefs --all /dev/nvme1n1
sudo wipefs --all /dev/nvme0n1
sudo dd if=/dev/zero of=/dev/nvme1n1 count=1000 bs=1MiB
sudo dd if=/dev/zero of=/dev/nvme0n1 count=1000 bs=1MiB
Setup LVM Before Install
sudo lsblk
sudo wipefs --all /dev/nvme0n1
sudo parted /dev/nvme0n1 --script mklabel gpt
sudo parted --script /dev/nvme0n1 mkpart --align optimal efi fat32 1MiB 600MiB
sudo parted --script /dev/nvme0n1 set 1 esp on
sudo mkfs -t vfat /dev/nvme0n1p1
sudo parted --script /dev/nvme0n1 mkpart --align optimal linux0 ext4 600MiB 100%
sudo parted --script /dev/nvme0n1 set 2 lvm on
sudo parted --script /dev/nvme0n1 print
WINDOWS_SIZE=170GiB
sudo wipefs --all /dev/nvme1n1
sudo parted /dev/nvme1n1 --script mklabel gpt
sudo parted --script /dev/nvme1n1 mkpart --align optimal windows ntfs 1MiB $WINDOWS_SIZE
sudo parted --script /dev/nvme1n1 mkpart --align optimal linux1 ext4 $WINDOWS_SIZE 100%
sudo parted --script /dev/nvme1n1 set 2 lvm on
sudo parted --script /dev/nvme1n1 print
#sudo fdisk -l /dev/nvme1n1
#sudo lsblk -o name,mountpoint,label,size,uuid
#sudo parted --script /dev/nvme1n1 --list
sudo pvcreate /dev/nvme0n1p2 /dev/nvme1n1p2
#VGNAME=somename
sudo vgcreate $VGNAME /dev/nvme0n1p2 /dev/nvme1n1p2
sudo lvcreate --name swap --size 64g $VGNAME
sudo lvcreate --name root --size 750g $VGNAME
sudo lvcreate --name home --size 750g $VGNAME
sudo lvcreate --name vms --size 750g $VGNAME
sudo lvcreate --name dropbox --size 750g $VGNAME
# If you want to use the free space on a device
# sudo lvcreate --name root --extents 100%FREE $VGNAME /dev/nvme0n1
When I tried to do the above steps without formatting the efi partition, the installer reported:
The attempt to mount a file system with type vfat in /dev/nvme0n1p1 at /boot/efi failed.
You may resume partitioning from the partitioning menu.
sudo apt update && \
sudo apt install -y \
apt-transport-https \
build-essential \
cmake \
curl \
git \
glances \
gparted \
libssl-dev \
lm-sensors \
openssh-server \
terminator \
tree \
vim \
zsh \
p7zip-full \
lz4 \
jq
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' | sudo tee /etc/apt/sources.list.d/google-chrome.list
sudo apt-get update
sudo apt-get install google-chrome-stable
If necessary:
cd ~
mkdir repos
cd repos
git clone [email protected]:webern/shell.git
sudo apt install -y zsh
zsh
cd $HOME
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
ln -s $HOME/repos/shell/mjb.zsh-theme $HOME/.oh-my-zsh/custom/themes/mjb.zsh-theme
mv $HOME/.bash_profile $HOME/.bash_profile.old
mv $HOME/.bashrc $HOME/.bashrc.old
mv $HOME/.zshrc $HOME/.zshrc.old
rm -f ~/.gitconfig && ln -s $HOME/repos/shell/linux/gitconfig ~/.gitconfig
cd $HOME/repos/shell
./install.sh
source ~/.zshrc
rm -rf $HOME/.alacritty $HOME/.config/alacritty/
mkdir -p $HOME/.config/alacritty/
ln -s $HOME/repos/shell/linux/alacritty.toml $HOME/.config/alacritty/alacritty.toml
if [ -d $HOME/.cinnamon ]; then mv $HOME/.cinnamon $HOME/.cinnamon.backup; fi
ln -s $HOME/repos/shell/linux/.cinnamon $HOME/.cinnamon
Do this after dot files have already been set up (so that CARGO_HOME and PATH are ready):
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo install cargo-make
rustup override set stable
rustup update stable
# sudo apt-get install -y cmake pkg-config libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev libxkbcommon-dev python3 libxkbcommon-x11-0
sudo dnf install cmake freetype-devel fontconfig-devel libxcb-devel libxkbcommon-devel g++
cd $HOME/repos
git clone [email protected]:alacritty/alacritty.git
cd alacritty
git checkout v0.13.1
# this needs to return without error
infocmp alacritty
# if it didn't...
# sudo apt-get install -y libncurses5-dbg
# sudo tic -xe alacritty,alacritty-direct $REPOS/alacritty/extra/alacritty.info
cd $REPOS/alacritty
cargo build --release
sudo cp $REPOS/alacritty/target/release/alacritty /usr/local/bin
sudo cp $REPOS/alacritty/extra/logo/alacritty-term.svg /usr/share/pixmaps/Alacritty.svg
sudo desktop-file-install $REPOS/alacritty/extra/linux/Alacritty.desktop
sudo update-desktop-database
sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator /usr/local/bin/alacritty 50
sudo update-alternatives --config x-terminal-emulator
gsettings set org.cinnamon.desktop.default-applications.terminal exec /usr/local/bin/alacritty
deb
cd /tmp
curl -L https://www.dropbox.com/download?dl=packages/ubuntu/dropbox_2020.03.04_amd64.deb -o dropbox.deb
sudo dpkg -i dropbox.deb
rm dropbox.deb
rpm
cd /tmp
curl -Lo dropbox.rpm https://www.dropbox.com/download?dl=packages/fedora/nautilus-dropbox-2020.03.04-1.fedora.x86_64.rpm
sudo dnf install -y ./dropbox.rpm
rm dropbox.rpm
RPM
curl -Lo gdu.rpm https://github.com/dundee/gdu/releases/download/v5.13.2/gdu-5.13.2-1.x86_64.rpm
sudo dnf install -y ./gdu.rpm
rm gdu.rpm
sudo apt-get remove docker docker-engine docker.io containerd runc || true
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
sudo sh -c "echo '{\"experimental\": true, \"bip\": \"240.10.0.1/24\",\"fixed-cidr\": \"240.10.0.0/24\"
}' | jq > /etc/docker/daemon.json"
sudo docker run -it --rm hello-world
sudo groupadd docker || true
sudo usermod -aG docker $USER
newgrp docker
docker run -it --rm hello-world
Recommendations from a smart engineer to make Fedora work:
❯ cat /etc/docker/daemon.json
{
"experimental": true,
"features": {
"buildkit": true
},
"selinux-enabled": false
}
❯ cat /etc/sysconfig/docker
# /etc/sysconfig/docker
BUILDKIT_STEP_LOG_MAX_SIZE=100000000
BUILDKIT_STEP_LOG_MAX_SPEED=100000000
# Modify these options if you want to change the way the docker daemon runs
OPTIONS=" \
--log-driver=journald \
--live-restore \
--default-ulimit nofile=1024:1024 \
--init-path /usr/libexec/docker/docker-init \
--userland-proxy-path /usr/libexec/docker/docker-proxy \
"
sudo apt install hddtemp lm-sensors
sudo sensors-detect
# after adding the modules to /etc/modules
cat /etc/modules
sudo systemctl restart systemd-modules-load.service
Then you need to add an option to the kernel start command. https://askubuntu.com/a/1145982/825042
sudo vim /etc/default/grub
- Then set the GRUB_CMDLINE_LINUX option to the following:
# This allows fan usage to be read by lm-sensors
GRUB_CMDLINE_LINUX="acpi_enforce_resources=lax"
Save the file and close, then update your GRUB settings:
sudo update-grub
cd /tmp
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
rm -rf aws
rm -rf awscliv2.zip
cd ~
aws configure
Also add this line to your ~/.aws/config
profile to turn off paging:
cli_pager=
SSM Session Manager plugin:
curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" -o "session-manager-plugin.deb"
sudo dpkg -i session-manager-plugin.deb
curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/linux_64bit/session-manager-plugin.rpm" -o "session-manager-plugin.rpm"
sudo dnf install ./session-manager-plugin.rpm
IAM Authenticator
curl -o aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.21.2/2021-07-05/bin/linux/amd64/aws-iam-authenticator
chmod +x ./aws-iam-authenticator
sudo install -o root -g root -m 0755 ./aws-iam-authenticator /usr/local/bin/aws-iam-authenticator
rm -f ./aws-iam-authenticator
curl -Lo docker-credential-ecr-login https://amazon-ecr-credential-helper-releases.s3.us-east-2.amazonaws.com/0.6.0/linux-amd64/docker-credential-ecr-login
sudo install -o root -g root -m 0755 ./docker-credential-ecr-login /usr/local/bin/docker-credential-ecr-login
rm -f ./docker-credential-ecr-login
Default Kubeconfig is the worst idea ever. Avoid ever using a default kubeconfig file by placing a read-only directory where the file would normally go.
mkdir -p $HOME/.kube/config
sudo chown 1000:1000 $HOME/.kube
sudo chown 1000:1000 $HOME/.kube/config
sudo chmod 0000 $HOME/.kube/config
cd /tmp
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo rm /usr/local/bin/kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
rm kubectl
cd ~
KUBECONFIG=$(mktemp) kubectl version
cd /tmp
VERSION_WITH_V=v1.0.4
curl -L "https://github.com/kubernetes-sigs/cluster-api/releases/download/${VERSION_WITH_V}/clusterctl-linux-amd64" -o clusterctl
sudo rm -f /usr/local/bin/clusterctl
sudo install -o root -g root -m 0755 clusterctl /usr/local/bin/clusterctl
rm -f clusterctl
cd ~
clusterctl version
Go here to find out what the latest version is: https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/
KIND_VERSION=v0.20.0
cd /tmp
curl -Lo ./kind https://kind.sigs.k8s.io/dl/$KIND_VERSION/kind-linux-amd64
sudo rm -f /usr/local/bin/kind
sudo install -o root -g root -m 0755 kind /usr/local/bin/kind
rm kind
cd ~
kind version
cd /tmp
curl --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo rm -f /usr/local/bin/eksctl
sudo install -o root -g root -m 0755 /tmp/eksctl /usr/local/bin/eksctl
rm eksctl
cd ~
eksctl version
# Version without the "v"
SBVERSION=0.56.16
SBURL="https://github.com/vmware-tanzu/sonobuoy/releases/download/v${SBVERSION}/sonobuoy_${SBVERSION}_linux_amd64.tar.gz"
cd /tmp
curl -L -o sonobuoy.tar.gz "${SBURL}"
tar xz -f sonobuoy.tar.gz
rm sonobuoy.tar.gz
sudo install -o root -g root -m 0755 /tmp/sonobuoy /usr/local/bin/sonobuoy
rm sonobuoy
sonobuoy version
VER=1.17.9
sudo rm -rf "${GOROOT}"
curl -L "https://go.dev/dl/go${VER}.linux-amd64.tar.gz" -o go.tar.gz
rm -rf /tmp/goroot && mkdir /tmp/goroot
sudo tar -C /tmp/goroot -xzf go.tar.gz
sudo mv /tmp/goroot/go "${GOROOT}"
rm go.tar.gz
go version
# You cannot curl this one so I have a copy in dropbox
sudo apt install -y fuse
cd /tmp
curl -L https://www.dropbox.com/scl/fi/y0m8sjmbbblx98oj1ik7q/jetbrains-toolbox-2.2.2.20062.tar.gz?rlkey=jpexwt09e9efbj8rbhzw0ql4w&dl=0\?dl\=0 -o jetbrains-toolbox.tar.gz
tar xf jetbrains-toolbox.tar.gz
rm jetbrains-toolbox.tar.gz
cd *jetbrains-toolbox-*
chmod +x jetbrains-toolbox
./jetbrains-toolbox
cd ..
rm -rf *jetbrains-toolbox-*
deb
curl -Lo /tmp/vscode.deb https://go.microsoft.com/fwlink/?LinkID=760868
sudo apt install /tmp/vscode.deb
rm -f /tmp/vscode.deb
sudo apt --only-upgrade install code
rpm
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
dnf check-update
sudo dnf install code
deb
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
sudo apt install apt-transport-https
echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
sudo apt update
sudo apt install sublime-text
subl /tmp/foo
# merge
sudo apt-get install sublime-merge
smerge --version
rpm
sudo rpm -v --import https://download.sublimetext.com/sublimehq-rpm-pub.gpg
sudo dnf config-manager --add-repo https://download.sublimetext.com/rpm/stable/x86_64/sublime-text.repo
sudo dnf install sublime-text
sudo dnf install sublime-merge
subl --version
smerge --version
Currently unknown how to install vmware modules in Fedora 38
This doesn't fucking work
VMWARE_VERSION=16.2.5
rm -rf /tmp/vmware_fix
mkdir -p /tmp/vmware_fix
cd /tmp/vmware_fix
wget https://github.com/mkubecek/vmware-host-modules/archive/workstation-$VMWARE_VERSION.tar.gz
tar -xzf workstation-$VMWARE_VERSION.tar.gz
cd vmware-host-modules-workstation-*
kernel=$(cd /usr/src/kernels && ls | head -n 1)
export CPATH=/usr/src/kernels/$kernel/include/linux
make
This also doesn't fucking work
VMWARE_VERSION=16.2.5
rm -rf /tmp/vmware_fix
mkdir -p /tmp/vmware_fix
cd /tmp/vmware_fix
wget https://github.com/mkubecek/vmware-host-modules/archive/workstation-$VMWARE_VERSION.tar.gz
tar -xzf workstation-$VMWARE_VERSION.tar.gz
cd vmware-host-modules-workstation-*
tar -cf vmmon.tar vmmon-only
tar -cf vmnet.tar vmnet-only
sudo cp -v vmmon.tar vmnet.tar /usr/lib/vmware/modules/source/
Ummm, it doesn't work on Fedora 35? Edit: Ok, this was obscure but finally found the answer here:
The key is to set CPATH
to the correct linux headers directory:
This was the part causing pain:
sudo CPATH=/usr/src/kernels/$(uname -r)/include/linux vmware-modconfig --console --install-all
The complete steps look like:
sudo dnf install -y kernel-devel-$(uname -r) kernel-headers
# maybe reboot?
# now loadload VMware Workstation Pro using a web browser:
# https://www.vmware.com/go/getworkstation-linux
cd ~/Downloads
sudo chmod 700 VMware-Workstation-Full-*.bundle
sudo ./VMware-Workstation-Full-*.bundle
sudo CPATH=/usr/src/kernels/$(uname -r)/include/linux vmware-modconfig --console --install-all
Pain in the ass, it needs to happen after each reboot. https://confluence.jaytaala.com/display/TKB/Recompile+VMWare+Workstation+%28or+player%29+kernel+modules+on+boot+with+systemd+service
Write this to /etc/systemd/system/vmware-modules-rebuild.service
[Unit]
Description=Recompiles vmware modules
[Service]
Type=oneshot
ExecStart=/bin/bash -c 'CPATH=/usr/src/kernels/$(/usr/bin/uname -r)/include/linux exec /usr/bin/vmware-modconfig --console --install-all'
[Install]
WantedBy=multi-user.target
I saw kcompactd0
on the host, and when I did, the guest was impossible to use.
This solution worked: https://communities.vmware.com/t5/VMware-Workstation-Pro/VMWare-workstation-in-a-fistfight-with-Linux-Memory-Compactor/td-p/2876992
Specifically, as root, turn off the compaction like this:
sudo sh -c 'echo 0 > /proc/sys/vm/compaction_proactiveness'
The VMWare modules are not compatible with newer kernels. This awesome person patched the necessary files https://github.com/mkubecek/vmware-host-modules/ This awesome pull request gives me the codez https://github.com/mkubecek/vmware-host-modules/pull/1/files
Save the patch files, edit to your version of VMWare workstation:
PATCH_DIR="/usr/lib/vmware_patch/"
REPOSITORY_URL="https://github.com/mkubecek/vmware-host-modules"
VMWARE_PRODUCT="workstation-16.2.4"
sudo mkdir -p "${PATCH_DIR}"
sudo rm -rf "${PATCH_DIR}/${VMWARE_PRODUCT}.zip"
sudo curl -L "${REPOSITORY_URL}/archive/${VMWARE_PRODUCT}.zip" -o "${PATCH_DIR}/${VMWARE_PRODUCT}.zip"
Save this script to, e.g. /usr/local/bin/fix_vmware.sh
and chmod +x
it.
#!/bin/bash
PATCH_DIR="/usr/lib/vmware_patch/"
MODULE_ROOT="/usr/lib/vmware/modules/source/"
REPOSITORY_URL="https://github.com/mkubecek/vmware-host-modules"
VMWARE_PRODUCT="workstation-16.2.4"
############
## fix_vmware.sh
##
## This script expects be run as root or equivalent.
##
## This script will replace the source code of your VMWare Product's Modules with patched
## versions from github:mkubecek/vmware-host-modules.
##
## Set the VMWARE_PRODUCT variable above to the workstation- or player-version you are
## using, and run this script. In extreme cases, a reboot may be necessary to get the
## updated modules loaded in.
############
mkdir -p "${PATCH_DIR}"
rm -rf "${PATCH_DIR}/vmware-host-modules-${VMWARE_PRODUCT}"
rm -rf $MODULE_ROOT/{vmmon-only,vmnet-only}
rm -rf $MODULE_ROOT/{vmmon-only.tar,vmnet-only.tar}
rm -f $MODULE_ROOT/{vmmon.tar,vmnet.tar}
## Unpack the Patched Files ##
unzip "${PATCH_DIR}/${VMWARE_PRODUCT}.zip" -d "${PATCH_DIR}"
## Repack (tar) and Install the Upstream Patched Files to the VMWare Modules Folder ##
pushd "${PATCH_DIR}/vmware-host-modules-${VMWARE_PRODUCT}"
tar cf vmmon.tar vmmon-only
tar cf vmnet.tar vmnet-only
mv vmmon.tar $MODULE_ROOT/
mv vmnet.tar $MODULE_ROOT/
popd
## Invoke the VMWare Module Configuration tool
vmware-modconfig --console --install-all
Then write this to /etc/systemd/system/vmware-modules-rebuild.service
[Unit]
Description=Recompiles vmware modules
[Service]
Type=oneshot
ExecStart=/bin/bash /usr/local/bin/fix_vmware.sh
[Install]
WantedBy=multi-user.target
sudo dnf -y install bridge-utils libvirt virt-install qemu-kvm libvirt-devel virt-top libguestfs-tools guestfs-tools
lsmod | grep kvm
sudo systemctl start libvirtd
sudo systemctl enable libvirtd
sudo dnf -y install virt-manager
GHVERSION=2.31.0
GHURL="https://github.com/cli/cli/releases/download/v${GHVERSION}/gh_${GHVERSION}_linux_amd64.tar.gz"
cd /tmp
curl -L -o gh.tar.gz "${GHURL}"
tar xz -f gh.tar.gz
rm gh.tar.gz
sudo install -o root -g root -m 0755 /tmp/gh_${GHVERSION}_linux_amd64/bin/gh /usr/local/bin/gh
rm gh
gh version
cd $HOME/repos
git clone [email protected]:webern/bottlerocket.git
cd bottlerocket
git remote add upstream [email protected]:bottlerocket-os/bottlerocket.git
#
cd $HOME/repos
git clone [email protected]:webern/bottlerocket-test-system.git
cd bottlerocket-test-system
git remote add upstream [email protected]:bottlerocket-os/bottlerocket-test-system.git
#
cd $HOME/repos
git clone [email protected]:webern/testsys-mcm.git
git clone [email protected]:webern/mx.git
#
rm -rf $HOME/repos/mybr
cd $HOME/repos
git clone [email protected]:webern/mybr.git
#
cd $HOME/repos
git clone [email protected]:d15989de37d0b78948f17fb68050571a.git
mv d15989de37d0b78948f17fb68050571a linux-is-hard
- Best answer: https://askubuntu.com/a/1042413/825042
- Also discussed here: https://askubuntu.com/a/380461/825042
I want to use control-alt-left and control-alt-right for JetBrains back/forward navigation. Turns out not all key commands are shown in the Gnome settings UI. I need to remove Ubuntu/Gnome default commands.
First we can see the problem:
gsettings get org.gnome.desktop.wm.keybindings switch-to-workspace-left
gsettings get org.gnome.desktop.wm.keybindings switch-to-workspace-right
If we unmap these then the key combo becomes available for other uses.
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-left "[]"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-right "[]"
To set a color, for example "Dark Aubergine" from here https://design.ubuntu.com/brand/colour-palette/
gsettings set org.gnome.desktop.background picture-uri ""
gsettings set org.gnome.desktop.background primary-color '#2C001E'
Clock:
gsettings set org.gnome.desktop.interface clock-format 12h
This is a horror show, but this blog gave some very clear instructions: https://reckoning.dev/blog/airpods-pro-ubuntu/
Unfortunately, though. The instructions above did not solve the problem for me. The Airpods do not show up as a microphone that I can select even when they are in "Headset Head Unit (HSP/HFP)" configuration.
Actually these instructions left me in a state where my Sony bluetooth headphones could no longer be used as a headset, so I rolled back to an LVM snapshot to undo these changes. Then the Sony headphones worked again.
Check this out for inspiration, or maybe even use it? https://github.com/rbreaves/kinto
Errors:
-p 3
means priority err, -x
provides extra message information, and -b
means since last boot and --no-pager
prevents truncating and using less
journalctl -p 3 -xb --no-pager
Get something from a host named sourcehost
:
scp mjb@sourcehost:/source/file/path /local/file/path
Push something to a host using a key
scp -i ~/.ssh/some.pem ~/Downloads/some.file [email protected]:/home/username
To enable a service for a wireguard configuration, if the configuration is /etc/wireguard/blah.conf
, then:
sudo systemctl enable --now wg-quick@blah
To stop and disable:
sudo systemctl disable wg-quick@blah
sudo systemctl stop wg-quick@blah
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
chmod 600 ~/.ssh/id_rsa
Extracting things from PEM
To get an RSA public key from some.pem
:
openssl rsa -in some.pem -pubout > id_rsa.pub
To get the ssh-rsa
public key thingy:
ssh-keygen -f some.pem -y
To get the RSA private key:
openssl rsa -in some.pem -out id_rsa