====== Bookworm (12) Basics ====== ===== Apt ===== ==== Desktop machine ==== apt install git curl screen build-essential pkg-config ruby ruby-dev rubygems \ libmagickwand-dev jhead exiftool linux-headers-$(uname -r) make zsh \ perl libwww-perl libxml-perl libxml-simple-perl atomicparsley rtorrent \ dolphin vlc python-pip net-tools gem install rmagick mini_exiftool pry awesome_print ==== Headless ==== Somewhat bloated, with system ruby: apt install git curl screen build-essential pkg-config ruby ruby-dev rubygems \ linux-headers-$(uname -r) make zsh perl libwww-perl libxml-perl libxml-simple-perl atomicparsley rtorrent \ python-pip net-tools gem install rmagick pry awesome_print ==== Web-accessible ==== [[https://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-10|DO recommend]] installing ''ufw''. As root: apt install ufw ufw app list ufw allow OpenSSH ufw enable ufw status And to add Apache access (80 + 443): ufw allow WWW Full ==== Windows 10 ==== Also headless: sudo passwd apt install git curl screen build-essential pkg-config ruby ruby-dev \ make zsh perl libwww-perl libxml-perl libxml-simple-perl atomicparsley rtorrent \ python-pip net-tools gem install rmagick pry awesome_print pip install cheat mkdir ~/.screen && chmod 700 ~/.screen ===== Networking without X ===== ''/etc/network/interfaces'' seems to be deprecated on Raspbian so that dhcpcd has overall control. Edit ''/etc/dhcpcd.conf'', which is well commented and self-explanatory (start by uncommenting ''interface eth0''). Reboot to update dhcpcd. ===== Config ===== Clone ''bin'' and ''config''. for w in .bashrc .profile .bash_profile .zshrc; do mv "$w" "$w".default done # .promptrc no longer shell-independent for x in .porridge .aliases .bash_profile .bashrc .cheat .dircolors .get_iplayer .gitconfig .gitignore .hints .ispell_british .lftprc .profile .rspec .rtorrent .rtorrent.rc .screenrc .shellrc .zshrc .pry .pryrc; do ln -s config/"$x" "$x" done for y in .screenrc.local; do cp config/"$y" "$y" done ===== Keymap ===== Keymap configuration (as root): export CONFIG=/home/slack/config cd /usr/share/X11/xkb/symbols mv gb gb.default ln -s "$CONFIG/gb" . cd ../rules for f in evdev.xml base.xml do mv "$f" "$f.default" ln -s "$CONFIG/$f" . done ===== Host ===== Edit ''/etc/hosts''; automation of this never really worked, it changes too much and is too rooty. ===== Oh my zsh ===== sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" cd .oh-my-zsh/custom mkdir themes cd themes ln -s ../../../config/zsh-custom/slack.zsh-theme cd rm .zshrc mv .zshrc.pre-oh-my-zsh .zshrc git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions ===== Mount ntfs ===== UUID=blah /huge ntfs uid=1000,gid=1000,umask=022,auto 0 0