X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=distro-begin;h=9a7a9adae33d41b3298d98e78971d2cba1556a0c;hb=3f437c0f6c11356451d5d739875eee2d4603d7ca;hp=71e2a56d80c7e26bda12ee316b7b433061730d97;hpb=f3e6a97425746ed185c28dcc03acf7e67a6af560;p=distro-setup diff --git a/distro-begin b/distro-begin index 71e2a56..9a7a9ad 100755 --- a/distro-begin +++ b/distro-begin @@ -20,7 +20,7 @@ # in case we need it, # to make ssh interactive shell run better, we run this first. -sudo bash -c 'source /a/c/repos/bash/.bashrc && source /a/exe/ssh-emacs-setup' +sudo bash -c 'source /a/c/.bashrc && source /a/exe/ssh-emacs-setup' # usage: $0 [-r] HOSTNAME @@ -30,7 +30,7 @@ sudo bash -c 'source /a/c/repos/bash/.bashrc && source /a/exe/ssh-emacs-setup' # set the scrollback to unlimited in case something goes wrong if [[ $EUID == 0 ]]; then - if getent passwd ian; then + if getent passwd iank || getent passwd ian ; then echo "$0: error: running as root. unprivileged user exists. use it." exit 1 else @@ -65,10 +65,10 @@ if [[ $1 ]]; then export HOSTNAME=$1 fi -for f in iank-dev htpc treetowl x2 frodo tp li lj demohost; do +for f in iank-dev htpc treetowl x2 frodo tp li lj demohost kw fz; do eval "$f() { [[ $HOSTNAME == $f ]]; }" done -has_p() { treetowl || x2 || frodo || tp || demohost; } +has_p() { ! linode; } # when tp is tracis, then not tp either has_x() { ! linode; } linode() { lj || li; } has_btrfs() { ! linode; } @@ -155,6 +155,7 @@ if isfedora; then sudo $sed -i 's/^Defaults *requiretty/#\0 # ian commented/' /etc/sudoers # turn on magic sysrq commands for this boot cycle echo 1 > sudo dd of=/proc/sys/kernel/sysrq + echo "kernel.sysrq = 1" > /etc/sysctl.d/90-sysrq.conf # selinux is not user friendly. Like, you enable samba, but you haven't run the magic selinux commands so it doesn't work # and you have no idea why. sudo $sed -i 's/^\(SELINUX=\).*/\1disabled/' /etc/selinux/config @@ -165,8 +166,8 @@ fi # already ran for pxe installs, but used for vps & updates distro=$(distro-name) case $distro in - ubuntu|debian) - sudo bash -c ". /a/bin/fai/fai-wrapper && /a/bin/fai/fai/config/scripts/GRUB_PC/11-ian" + ubuntu|debian|trisquel) + sudo bash -c ". /a/bin/fai/fai-wrapper && /a/bin/fai/fai/config/scripts/GRUB_PC/11-iank" ;; *) sudo bash -c ". /a/bin/fai/fai-wrapper && @@ -174,10 +175,8 @@ case $distro in ;; esac -if linode; then - sudo $sed -i '/^127\.0\.1\.1/d' /etc/hosts - echo "127.0.1.1 $HOSTNAME.lan $HOSTNAME" | sudo tee -a /etc/hosts -fi +sudo $sed -i '/^127\.0\.1\.1/d' /etc/hosts +echo "127.0.1.1 $HOSTNAME.b8.nz $HOSTNAME" | sudo tee -a /etc/hosts if [[ $EUID == 0 ]]; then @@ -186,20 +185,37 @@ if [[ $EUID == 0 ]]; then fi +#### begin link bashrc for root ###### +for x in /a/c/{.bashrc,brc,.bash_profile,.profile,.inputrc,path_add_function}; do + sudo -i </dev/null || sudo groupadd -r bind +fi # this needs to be before installing pacserve so we have gpg conf. conflink set +x errallow +source /etc/profile.d/environment.sh source ~/.bashrc $interactive || errcatch $interactive || set -x # passwordless sudo -tu /etc/sudoers <<'EOF' -ian ALL=(ALL) NOPASSWD: ALL +tu /etc/sudoers </dev/null <<<"$line" + sudo depmod -a + sudo update-initramfs -u + fi + ;; +esac +######## end fix evbug bug ###### -###### link files ########### -# convenient to just do all file linking in one place -# if it wasn't set already, we could set hostname here -#echo treetowl | s dd of=/etc/hostname -#s hostname -F /etc/hostname -#HOSTNAME=$(hostname) +###### begin link files ########### +# convenient to just do all file linking in one place s lnf -T /a/bin /b +s lnf -T /nocow/t /t if has_p; then lnf -T /p/News ~/News @@ -283,7 +322,7 @@ s lnf /q/root/.editor-backups /q/root/.undo-tree-history \ rootsshsync -s lnf /a/c/.inputrc /a/c/.vim /a/c/.vimrc /a/c/.gvimrc /root +s lnf /a/c/.vim /a/c/.vimrc /a/c/.gvimrc /root # machine is going away # if [[ $HOSTNAME == htpc ]]; then @@ -295,46 +334,25 @@ if has_p; then lnf -T /i/k/mboxes ~/mail fi +###### end link files ########### + + +##### basic needed packages -# basic needed packages +### begin setup for keyboard and redshift ### case $(distro-name) in - debian) + + trisquel|ubuntu|debian) if has_x; then - if isdebian-stable; then - pi firefox/$codename-backports + if isdebian-testing; then + pi xmacro/unstable # has no unstable deps else - # for a while, firefox/unstable did not have - # dependencies satisfied by testing packages, and i hit - # a conflict, it wanted a newer libfontconfig1, but - # emacs build-deps wanted an older one. In this case, - # I switch to using firefox-esr. note: They seem - # to release a new esr version every 9 months or so. - pi firefox/unstable - s dd of=/etc/apt/preferences.d/firefox <<'EOF' -Package: firefox -Pin: release a=unstable -Pin-Priority: 500 -EOF - fi - fi - # for hosts which require nonfree drivers - # i previously had extra packages listed here linux-image-amd64 - # firmware-linux-free linux-headers-amd64, but I - # don\'t see any reason why. seems to work in testing without. - # remove this note if it continues to work. - p=firmware-linux-nonfree - if apt-cache show $p &>/dev/null; then - pi $p - fi - ;;& - ubuntu|debian) - if has_x; then - if isdebian-stable; then pi xmacro - else - pi xmacro/unstable # has no unstable deps fi - pi gtk-redshift xinput + pi xinput + # recommends gets us geoclue (for darkening automatically at night i assume), + # which recommends modemmanager, which is annoying to fix for the model01 keyboard. + pi --no-install-recommends gtk-redshift fi ;;& fedora) @@ -496,25 +514,27 @@ EOF fi ;;& - ubuntu|debian|fedora) + ubuntu|trisquel|debian|fedora) if has_x; then - if isdebian-stable; then - pi xkbset - else + if isdebian-testing; then # xkbset was in testing for quite a while, dunno # why it\'s not anymore. Sometime I should check and # see if it\'s back in testing, but the unstable package # doesn\'t upgrade anything form testing, and it\'s tiny # so I\'m not bothering to automate it. pi xkbset/unstable + else + pi xkbset fi fi ;;& esac - if has_x; then pi xbindkeys fi +### end setup for keyboard and redshift ### + + pi cryptsetup lvm2 # enables trim for volume delete, other rare commands. sudo $sed -ri 's/( *issue_discards\b).*/\1 = 1/' /etc/lvm/lvm.conf @@ -527,9 +547,9 @@ if encrypted; then sudo systemctl enable fstrim.timer fi -dirs=(/mnt/{1,2,3,4,5,6,7,8,9}) +dirs=(/mnt/{1,2,3,4,5,6,7,8,9} /nocow/t) s mkdir -p "${dirs[@]}" -s chown ian:ian "${dirs[@]}" +s chown $USER:$USER "${dirs[@]}" tu /etc/fstab <<'EOF' @@ -540,17 +560,17 @@ EOF if ! mountpoint /kr; then s mkdir -p /kr - s chown ian:traci /kr + s chown $USER:traci /kr fi if home_network; then - if [[ $HOSTNAME == treetowl ]]; then + if [[ $HOSTNAME == frodo ]]; then tu /etc/fstab <<'EOF' /k /kr none bind,noauto 0 0 EOF else tu /etc/fstab <<'EOF' -treetowl:/k /kr nfs noauto 0 0 +frodo:/k /kr nfs noauto 0 0 EOF fi fi @@ -559,7 +579,7 @@ s mkdir -p /q /i/{w,k} for dir in /{i,w,k}; do if mountpoint $dir; then continue; fi # already mounted s mkdir -p $dir - s chown ian:ian $dir + s chown $USER:$USER $dir done # not needed for all hosts, but rather just keep it uniform @@ -591,15 +611,17 @@ done EOF s chmod +x /root/imount - s dd of=/etc/systemd/system/imount.service <<'EOF' + s dd of=/etc/systemd/system/imount.service <