After installing Slackware: a checklist

From Notes to self
Revision as of 18:37, 4 January 2018 by Verbovet (talk | contribs)
Jump to navigation Jump to search

Should be done during installation:

  • partitions
  • /etc/fstab
  • /etc/mdadm.conf
  • /etc/mkinitrd.conf
  • /boot/grub/grub.cfg
  • /etc/hosts
  • /etc/rc.d/rc.inet1.conf
  • Software series:
    • server: a ap d e f k l n t tcl x y (i.e., all except for kde kdei xap xfce)
    • desktop: add xap and removet (to be replaced with TeX Live)

After installation

  • # chmod -x /etc/profile.d/bsd-games-login-fortune.sh
  • # ln -sf /usr/bin/vim /usr/bin/vi or # ln -sf /usr/bin/gvim /usr/bin/vi
  • .vimrc, .vim/
  • /etc/profile.d/lang.sh: comment out export LANG=en_US and add
LANG=ru_RU.UTF-8
LC_MESSAGES=en_US.UTF-8
LC_TIME=en_GB.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_MONETARY=en_US.UTF-8
export LANG LC_MESSAGES LC_TIME LC_NUMERIC LC_MONETARY

Preserve "export LC_COLLATE=C"

  • Replace /etc/termcap with the termcap file from the xterm source because it has the xterm-256color entry
Change the last line :kb=^H: to :kb=\177:
  • /etc/resolv.conf
  • /etc/profile.d/man.sh
alias man='LANG=C /usr/bin/man'
  • Set ENCRYPT_METHOD SHA512 in /etc/login.defs and re-create password for root
  • If the machine is not always on change the root crontab to
# root crontab
# DO NOT EDIT THIS FILE MANUALLY! USE crontab -e INSTEAD
#
# If you don't want the output of a cron job mailed to you, you have to direct
# any output to /dev/null.  We'll do this here since these jobs should run
# properly on a newly installed system.  If a script fails, run-parts will
# mail a notice to root.
#
# man 1 crontab for acceptable formats:
#    <minute> <hour> <day> <month> <dow> <tags and command>
#    <@freq> <tags and command>

# SYSTEM DAILY/WEEKLY/... FOLDERS
#
@hourly   ID=sys-hourly  /usr/bin/run-parts /etc/cron.hourly 1> /dev/null
@daily    ID=sys-daily   /usr/bin/run-parts /etc/cron.daily 1> /dev/null
@weekly   ID=sys-weekly  /usr/bin/run-parts /etc/cron.weekly 1> /dev/null
@monthly  ID=sys-monthly /usr/bin/run-parts /etc/cron.monthly 1> /dev/null
  • # cp /usr/doc/dcron-X.X/extra/prune-cronstamps /etc/cron.d/
  • /etc/cron.daily/fstrim:
#!/bin/sh
/sbin/fstrim /
  • Create users (using adduser script)
  • # usermod -a -G wheel user
  • ~/.bashrc:
source /etc/profile
[ -f "$HOME/.bash_profile" ] && source "$HOME/.bash_profile"
  • ~/.bash_profile:
# add user's private bin to PATH
[ -d "$HOME/bin" ] && PATH="$PATH:$HOME/bin"

EDITOR=/usr/bin/vi
VISUAL=$EDITOR

export PATH EDITOR VISUAL

# don't put duplicate lines or lines starting with space in the history.
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

PS1="\[\e]0;\w\a\]$PS1"  # set the xterm title to show the directory
echo -e -n "\x1b[\x36 q"  # make the cursor a bar instead of a box

# Aliases and functions.
for f in .bash_aliases .bash_functions; do
  [ -f "$HOME/$f" ] && source "$HOME/$f"
done

# Stop if not invoked by login
shopt -q login_shell || return

# start X
[[ -z "$DISPLAY" && $EUID -ge 1000 && $(tty) =~ ^/dev/tty[12]$ ]] && /usr/bin/startx
  • .bash_logout
# Clear the screen.
# To clear the scroll-back buffer, we change the foreground virtual terminal
# to another terminal and then back to the original terminal

if [[ -z "$DISPLAY" && $SHLVL = 1 && $(tty) =~ ^/dev/tty[0-9]+$ ]]; then
  clear
  tty_num=$(echo $(tty) | grep -oE '[0-9]+$')
  if [ $tty_num = 1 ]; then
    chvt 2;
    chvt 1;
  else
    chvt 1
    chvt $tty_num
  fi
fi
  • $ ssh-copy-id -i ~/.ssh/id_rsa.pub
  • /etc/ssh/ssh_config
AddressFamily inet
  • /etc/ssh/sshd_config
AddressFamily inet
PermitRootLogin no
PasswordAuthentication no
PrintMotd no
PrintLastLog no
  • Remove lilo
  • Upgrade kernel; /etc/rc.d/rc.modules.local, blacklist unneeded modules
  • # iucode_tool --scan-system --overwrite --write-earlyfw=/boot/ucode.cpio microcode.dat
  • Disable unneeded rc-files, e.g., # chmod -x rc.acpid rc.alsa rc.bluetooth rc.cgmanager rc.cgproxy rc.consolekit rc.gpm-sample rc.wireless
  • Configure a mirror and install all patches
  • # slackpkg install bash-completion
  • # cp /usr/doc/git-*/contrib/completion/git-completion.bash /etc/bash_completion.d/
  • ~/.bash_completion
  • Install and configure slackpkg+
  • # /usr/doc/slackpkg+-*/setupmultilib.sh to configure and install multilib
  • # sensors-detect. Add modules for lm_sensors to /etc/rc.d/rc.modules.local
  • /etc/rc.d/rc.local
# Set all sensors limits as specified in the configuration file
if [ -x /usr/bin/sensors ]; then
  /usr/bin/sensors -s
fi

# Ensure the existence of /var/lib/dbus/machine-id
if [ -x /usr/bin/dbus-uuidgen -a ! -x /etc/rc.d/rc.messagebus ] ; then
  echo "Ensure that /var/lib/dbus/machine-id exists: /usr/bin/dbus-uuidgen --ensure"
  /usr/bin/dbus-uuidgen --ensure
fi
  • # slackpkg install ipmitools
  • /etc/rc.d/rc.modules.local
# IPMI modules
/sbin/modprobe ipmi_msghandler
/sbin/modprobe ipmi_devintf
/sbin/modprobe ipmi_si
  • /etc/smartd.conf. For HDD:
/dev/disk/by-id/ata-...  -a -o on -S on -I 9 -I 190 -I 194 -m root -s (S/../.././04)

For SSD, substitute "S" in parentheses with "L".

To start smartd uncomment the corresponding lines in /etc/rc.d/rc.M. If the machine is not always on, add the option --savestates=/var/tmp/smartd.

  • Creat /etc/X11/xinit/xserverrc
#!/bin/sh
exec /usr/bin/X -dpi 94
  • Creat /etc/sysctl.conf
# The Slackware default value is 98304; decreased here to avoid wine's warning
# The value 65536 is suggested by the config help for
# SECURITY_DEFAULT_MMAP_MIN_ADDR
vm.mmap_min_addr=65536

# Increase the maximum number of inotify watches per user
fs.inotify.max_user_watches=1048576
  • To disable mtp-probe create (and chmod +x) file /etc/profile.d/mtp-no-probe.sh:
#!/bin/sh
export MTP_NO_PROBE="1"