Configuração pós-instalação do Slackware 14.2

Publicado por Ryuk Shinigami (última atualização em 17/02/2020)

[ Hits: 2.316 ]

Homepage: www.alem.com.br

Download slack-config.sh




Script que eu uso para configurar de modo prático e rápido o Slackware logo após a instalação. Publico aqui caso alguém queira adaptá-lo a sua necessidade.

  



Esconder código-fonte

#!/bin/bash
# Configuração pós-instalação do Slackware 14.2
# Autor: PauloHAC (costapha@outlook.com)

config_update() {
# Atualiza certificados (wget): depende de "perl"
update-ca-certificates -f
# atualiza o sistema
linha=$(grep -n "brasil" /etc/slackpkg/mirrors | grep -m1 "http" | cut -d: -f1)
sed -i "$linha s/^# //" /etc/slackpkg/mirrors
slackpkg update gpg
slackpkg update
slackpkg upgrade-all
}

config_sbopkg() {
# Instala sbopkg
ver=$(ls /var/log/packages/ | grep -c sbopkg)
if [ "$ver" -gt 1 ]; then
    echo "sbopkg já instalado."
else
    #wget https://github.com/sbopkg/sbopkg/releases/download/0.38.1/sbopkg-0.38.1-noarch-1_wsr.tgz
    #installpkg sbopkg-0.38.1-noarch-1_wsr.tgz
    sbover=$(lynx -dump https://sbopkg.org/downloads.php | grep -m1 -Eo 'https.*tgz$')
    wget $sbover
    installpkg sbopkg*.tgz
    sbopkg -r
fi
}

config_timezone() {
# Configurar relógio do sistema para UTC ou localtime
timeconfig
# Ajusta o relógio do hardware
#hwclock --systohc
}

config_locale() {
sed -i -e 's/^#//' -e 's/^/#/' /etc/profile.d/lang.sh
echo 'export LINGUAS=pt_BR.UTF-8
export LANGUAGE=pt_BR.UTF-8
export LANG=pt_BR.UTF-8
export LC_COLLATE=C' | tee -a /etc/profile.d/lang.sh
sed -i -e 's/^#//' -e 's/^/#/' /etc/profile.d/lang.csh
grep ^export /etc/profile.d/lang.sh | sed -e "s/export/setenv/g" -e "s/\=/\ /g" >> /etc/profile.d/lang.csh
# unicode
echo '# unicode
unicode_start' | tee -a /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
# MAN PAGES
sed -i '/^NROFF/c \
NROFF        /usr/bin/groff -Tlatin1 -mandoc' /etc/man.conf
}

config_keyboard() {
echo 'Section "InputClass"
        Identifier "keyboard-all"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
        Option "XkbModel" "abnt2"
        Option "XkbLayout" "br"
        Option "XkbVariant" "abnt2"
        Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection' | tee /etc/X11/xorg.conf.d/90-keyboard-layout.conf
}

config_touchpad() {
echo 'Section "InputClass"
        Identifier "touchpad"
        Driver "synaptics"
        MatchDevicePath "/dev/input/event*"
        MatchIsTouchpad "on"
        Option "TapButton1" "1"
        Option "TapButton2" "3"
        Option "TapButton3" "2"
        Option "VertTwoFingerScroll" "1"
        Option "VertEdgeScroll" "1"
        Option "TapAndDragGesture" "1"
EndSection' | tee /etc/X11/xorg.conf.d/50-synaptics.conf 
}

config_videotearingfix() {
echo 'Section "Device"
        Identifier "Intel Graphics"
        Driver "Intel"
        Option "AccelMethod" "sna"
        Option "TearFree" "true"
EndSection' | tee /etc/X11/xorg.conf.d/20-intel.conf
}

config_powerbuttonfix() {
# Evita o desligamento ao apertar o botão "power"
sed -i '/power/,+1s/^/#/' /etc/acpi/acpi_handler.sh
}

config_brigthness() {
echo '# Ajusta brilho da tela de acordo com o horário
Hora=$(date +%H)
case $Hora in
    0[6-9]|1[0-2])
        echo 1801 >/sys/class/backlight/intel_backlight/brightness ;;
    1[3-7])
        echo 1201 >/sys/class/backlight/intel_backlight/brightness ;;
    1[89]|2[0123]|0[0-5])
        echo 601 >/sys/class/backlight/intel_backlight/brightness ;;
esac' | tee -a /etc/rc.d/rc.local
}

config_firewall() {
# sbopkg
config_sbopkg
# ufw
sbopkg -i ufw
echo '# UFW start
if [ -x /lib/ufw/ufw-init ]; then
    /lib/ufw/ufw-init start
fi' | tee -a  /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
# Inetd
sed -i '$i All:    All' /etc/hosts.deny
}

config_ntpd() {
# Configura servers
sed -i '/list one/a \
server a.st1.ntp.br iburst \
server b.st1.ntp.br iburst \
server c.st1.ntp.br iburst \
server d.st1.ntp.br iburst' /etc/ntp.conf
# Ativa o serviço no boot
chmod +x /etc/rc.d/rc.ntpd
# sincroniza
ntpdate br.pool.ntp.org
}

config_user() {
# Cria usuario
adduser
# Configura sudo
read -p "Configurar SUDO para o usuario: " usuario
grupo=$usuario
groupadd -g 1000 $grupo
groupadd -r sudo
usermod -a -G ${grupo},sudo $usuario
sed -i '/%sudo\|secure_path/s/# //' /etc/sudoers
# xinit
#su -l $usuario -c 'xwmconfig'
# Desabilita "login-forturne"
if [ -e /etc/profile.d/bsd-games-login-fortune.sh ]; then
    chmod -x /etc/profile.d/bsd-games-login-fortune.*
fi
}

config_boot() {
# Inittab 
sed -i '/initdefault/s/3/4/' /etc/inittab
# Desabilitar tty[3-6]
sed -i '/^c[3-6]/s/^/#/' /etc/inittab
# Xinit
xwmconfig
# Cursor
mkdir -p /usr/share/icons/default/
echo '[icon theme] 
Inherits=Adwaita' | tee /usr/share/icons/default/index.theme 
# XDM 
echo "Personalizando XDM..."
sed -i '1 c Xcursor.theme: Adwaita' /etc/X11/xdm/Xresources
sed -i 's/SteelBlue/Black/' /etc/X11/xdm/Xsetup_0
}

config_kernelgeneric() {
/usr/share/mkinitrd/mkinitrd_command_generator.sh | bash
ln -sfv /boot/System.map-generic-$(uname -r) /boot/System.map
ln -sfv /boot/config-generic-$(uname -r)* /boot/config
ln -sfv /boot/vmlinuz-generic-$(uname -r) /boot/vmlinuz
rm -fv /boot/vmlinuz-huge /boot/vmlinuz-generic
mv -v /boot/vmlinuz-huge-$(uname -r) /boot/disabled-vmlinuz-huge-$(uname -r)
#grub-mkconfig -o /boot/grub/grub.cfg
#lilo
}

# Backups
if [ ! -d /root/backups ]; then
    mkdir /root/backups
    echo "Backup dos arquivos de configuração..."
    cp -v /etc/acpi/acpi_handler.sh /root/backups
    cp -v /etc/hosts.deny /root/backups
    cp -v /etc/inittab /root/backups
    cp -v /etc/ntp.conf /root/backups
    cp -v /etc/man.conf /root/backups
    cp -v /etc/profile.d/lang* /root/backups
    cp -v /etc/rc.d/rc.local /root/backups
    cp -v /etc/slackpkg/mirrors /root/backups
    cp -v /etc/sudoers /root/backups
fi

if [ ! -d /etc/X11/xorg.conf.d ]; then
    mkdir /etc/X11/xorg.conf.d
fi

# MENU
for f in \
config_update \
config_sbopkg \
config_timezone \
config_locale \
config_keyboard \
config_touchpad \
config_videotearingfix \
config_powerbuttonfix \
config_brigthness \
config_firewall \
config_ntpd \
config_user \
config_boot \
config_kernelgeneric
do
    while read -p "Deseja executar a função: $f? (S,n): " resp
    do
        case ${resp:=S} in
            S|s) $f ; break ;;
            N|n) break ;;
            *) echo "Resposta inválida!" ;;
        esac
    done
done

echo "Fim do script"

Scripts recomendados

Script para calcular o valor fatorial de um numero

Configuração Apache e DNS (bind)

Algoritmo Fisher-Yates shuffle

Exclusão de arquivos em massa por data

Tempo e temperatura local no terminal


  

Comentários
[1] Comentário enviado por Minions em 21/02/2021 - 18:36h

Pena que essas tarefas não ficam 100% automatizadas.
Não pode ser usada pelo cron e precisa de interação com o usuário.

slackpkg update
...
No changes in ChangeLog.txt between your last update and now.
Do you really want to download all other files (y/N)? N

slackpkg upgrade-all (Se tiver atualização fica na tela y/n)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts