alpine-wiki/tutorials/community-way/alpine-tutorial-desktop-xfc...

11 KiB

Alpine XFCE4 quick FF

===========================================================

Real machine Pentium Dual Core E5500

hardware used

item minimal feature we need more?
CPU intel Dual Core Not necesary
GPU intel G41 Radeon X1200 For web browsers and modern apps will be need
RAM CPU 2Mb (L2) 4kb/L1
RAM GPU 256Mb 1Gb For web browsers and modern apps will be need
Sotrage 500Gb HDD WD 256Gb SSD are mandatory for speed
ARCH 32bits (i386) 64bits (i386) mandatory for most modern apps unfortunatelly
Audio AC 97 HD audio and HDMI audio are a mess

services

item port software expuesto-ip objetivo
vnc 15000 vnc SI, to use remote desktop unfortunatelly trhere's no anydesk for alpine working
ssh 19226 openssh NO, only to be used once for admin management only

usernames

item name password
remote daru daru
admin root toor
user general general

XFCE4 over alpine linux

================================================

preparation Xfce4 Alpine

booting alpine

  1. download the iso image: any alpine iso from 3.9 to 3.16 are valid, for olders 3.10 are best: https://dl-4.alpinelinux.org/alpine/v3.10/releases/x86_64/alpine-extended-3.10.5-x86_64.iso
  2. burn iso to usb or DVD/CD disk to load into the machine to boot or virtual machine, you must boot the CD/DVD or USB from BIOS/UEFI or from the virtual machine
  3. at boot the alpine will ask login just type root, this will permit to run commands to install the operatinig system

instalation

export BOOT_SIZE=500

export SWAP_SIZE=8182

export BOOTLOADER=grub

setup-alpine
  • teclado y variante, ejemplo para latino es es y depues es-winkeys
  • hostname: escribir venenux-desktop, es el nombre de la computadora.
  • Opciones de red: seleccione eth0 porque asumimos una sola interfaz
  • Opciones de red (ip): contestar none despues contestar no a manual
  • Opciones de DNS: (dominio) escriba fusilsystem.com y enter
  • Opciones de DNS: (nameserver) se recomienda usar 8.8.8.8
  • Opcion de clave root, escribir "root" las dos veces, despues se mejorara!
  • Opciones de zona horaria: solo use UTC
  • Opciones de proxy: use none y si uso dhcp en red ya tendra internet.
  • Opciones de repo mirror: cuando pregunte escriba done
  • Opciones de SSH: use openssh el paquete que ya viene en el medio.
  • Opciones de NTP: use chrony el paquete que ya viene en el medio.
  • Opciones de disco: use "sda" ya que se usara todo el disco duro presente.
  • Modo: seleccione "sys" para instalar el sistema en el disco.
  • Confirmacion de borrado: pedira confirme borrar el disco conteste y
  • Confirmacion de particiones: solo sale si tiene previas, conteste y

configuracion OS

sed -i -r 's|#PermitRootLogin.*|PermitRootLogin no|g' /etc/ssh/sshd_config

service sshd restart

rc-update add sshd default

hostname venenux-desktop
echo 'hostname="venenux-desktop"' > /etc/conf.d/hostname 
echo "venenux-desktop" > /etc/hostname

cat > /etc/hosts << EOF
127.0.0.1 venenux-desktop localhost.localdomain localhost
::1 localhost localhost.localdomain
EOF

cat > /etc/network/interfaces << EOF
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

iface eth0 inet6 dhcp
    pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra
EOF

rc-service networking restart

rc-update add networking boot

cat > /root/.cshrc << EOF
unsetenv DISPLAY || true
HISTCONTROL=ignoreboth
EOF

cp /root/.cshrc  /root/.bashrc  /root/.profile

 echo "root:toor" | chpasswd

apk add tcsh

add-shell '/bin/csh'

adduser -D -g "" -u 998 -h /opt/daru -s /bin/csh daru

 echo "daru:daru" | chpasswd

rm -f /opt/daru/*

mkdir /opt/daru

cat > /opt/daru/.cshrc << EOF
unsetenv DISPLAY
set autologout = 6
set prompt = "$ "
set history = 0
set ignoreeof
EOF
cp /opt/daru/.cshrc /opt/daru/.bashrc

configuration programs and repositories

cat > /etc/apk/repositories << EOF
http://dl-4.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/main
http://dl-4.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/community
EOF

apk update

apk add sed sed-doc attr attr-doc dialog dialog-doc lsof less less-doc groff groff-doc

apk add man-pages nano nano-doc binutils binutils-doc coreutils coreutils-doc readline readline-doc

apk add wget wget-doc curl curl-doc bash bash-doc bash-completion terminus-font

apk add acpi 

export PAGER=less

apk add musl-locales musl-locales-lang man-db

setup system users

apk add shadow shadow-doc shadow-uidmap bash bash-doc bash-completion bash-dev doas doas-doc

cat > /tmp/tmp.tmp << EOF
set history = 10000
if (\$?prompt) then
    set prompt = "$ "
    set history = 10000
endif
EOF

for i in $(ls /home);do cat /tmp/tmp.tmp > /home/$i/.cshrc;done
for i in $(ls /home);do cat /tmp/tmp.tmp > /home/$i/.bashrc;done

mkdir /etc/skel
cat /tmp/tmp.tmp > /etc/skel/.cshrc
cat /tmp/tmp.tmp > /etc/skel/.bashrc

cat > /etc/skel/.Xresources << EOF
Xft.antialias: 0
Xft.rgba:      rgb
Xft.autohint:  0
Xft.hinting:   1
Xft.hintstyle: hintslight
EOF

cat > /etc/default/useradd << EOF
# useradd defaults file
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
EOF

cat > /etc/login.defs << EOF
USERGROUPS_ENAB yes
#MAIL_DIR        /var/mail
#MAIL_FILE      .mail
#FAILLOG_ENAB		yes
LOG_OK_LOGINS		no
SYSLOG_SU_ENAB		yes
SYSLOG_SG_ENAB		yes
SULOG_FILE	/var/log/sulog
SU_NAME		su
ENV_SUPATH	PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH	PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
UMASK		022
UID_MIN			 1000
UID_MAX			60000
SYS_UID_MIN		  100
SYS_UID_MAX		  999
GID_MIN			 1000
GID_MAX			60000
SYS_GID_MIN		  100
SYS_GID_MAX		  999
LOGIN_RETRIES		3
LOGIN_TIMEOUT		60
CONSOLE_GROUPS		floppy:audio:cdrom:users
EOF


useradd -m -U -c "" -G wheel,input,disk,floppy,cdrom,dialout,netdev,audio,video,lp,usb,users,ping general

for u in $(ls /home); do for g in disk lp floppy audio cdrom dialout video netdev games users; do addgroup $u $g; done;done

instalation audio and video alpine

apk add eudev eudev-doc eudev-rule-generator eudev-openrc

rc-update add udev

rc-update add acpid

setup-xorg-base xinit mesa-dri-gallium linux-firmware kbd xf86-input-evdev xf86-input-synaptics setxkbmap

apk add  libxinerama xrandr

apk add acpi dbus dbus-x11 elogind elogind-openrc elogind-lang polkit polkit-openrc polkit-elogind lightdm lightdm-lang lightdm-gtk-greeter 

dbus-uuidgen > /var/lib/dbus/machine-id

rc-update add dbus

rc-update add elogind

rc-update add polkit

apk add ttf-dejavu font-bitstream-type1 font-bitstream-100dpi font-bitstream-75dpi

apk add terminus-font font-noto font-noto-extra font-arabic-misc ttf-liberation ttf-linux-libertine 

apk add font-misc-cyrillic font-mutt-misc font-screen-cyrillic font-winitzki-cyrillic font-cronyx-cyrillic

apk add font-noto-arabic font-noto-armenian font-noto-cherokee font-noto-devanagari font-noto-ethiopic font-noto-georgian

apk add font-noto-hebrew font-noto-lao font-noto-malayalam font-noto-tamil font-noto-thaana font-noto-thai

setfont /usr/share/consolefonts/ter-132n.psf.gz

sed -i "s#.*consolefont.*=.*#consolefont="ter-132n.psf.gz"#g" /etc/conf.d/consolefont

rc-update add consolefont boot

apk add alsa-utils alsa-utils-doc alsa-plugins alsa-plugins-doc alsa-tools alsa-tools-doc alsaconf pipewire pipewire-doc pipewire-pulse pipewire-alsa sndio sndio-doc

rc-service dbus start

cat > /etc/security/limits.d/audio-limits.conf << EOF
@audio - memlock 256
@audio - nice -11
@audio - rtprio 88
EOF

apk add bluez bluez-openrc pipewire-spa-bluez

rc-update add bluetooth

rc-service bluetooth start

apk add cpufreqd

rc-update add cpufreqd

apk add gtk-update-icon-cache vte3 pcre2 udisks2 udisks2-lang udisks2-doc

apk add fuse fuse-exfat-utils archivemount fuse-exfat avfs

rc-service fuse start

rc-update add fuse

apk add gvfs gvfs-fuse gvfs-archive gvfs-dav gvfs-nfs gvfs-lang

instalacion Xfce4 Alpine


apk add xfwm4-themes hicolor-icon-theme paper-gtk-theme network-manager-applet

apk add xfce4 xfce4-terminal xfce4-screensaver xfce4-session xfce4-session-doc adwaita-icon-theme mate-themes

apk add xfce-polkit xfce4-skel xfce4-power-manager xfce4-power-manager-lang xfce4-settings xfce4-settings-lang

apk add xfce4-panel xfce4-panel-doc xfce4-panel-lang xfce4-clipman-plugin xfce4-clipman-plugin-lang xfce4-xkb-plugin xfce4-xkb-plugin-lang xfce4-xkb-plugin-doc

apk add xfce4-screenshooter xfce4-screenshooter-doc xfce4-screenshooter-lang xfce4-taskmanager xfce4-taskmanager-lang

apk add xfce4-whiskermenu-plugin xfce4-whiskermenu-plugin-lang xfce4-whiskermenu-plugin-doc xfce4-battery-plugin xfce4-battery-plugin-lang

rc-update add lightdm

rc-service lightdm start

sakura terminal

cat >> /etc/apk/repositories << EOF; $(echo)
http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/main
http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/community
http://dl-cdn.alpinelinux.org/alpine/edge/main
http://dl-cdn.alpinelinux.org/alpine/edge/community
EOF

apk update --allow-untrusted

apk add sakura --allow-untrusted

cat > /etc/apk/repositories << EOF; $(echo)
http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/main
http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/community
EOF

apk update --allow-untrusted

office suite

apk add libreoffice libreoffice-gnome evince evince-lang evince-doc

media and devices

apk add gst-plugins-base gst-plugins-bad gst-plugins-bad-lang gst-plugins-ugly gst-plugins-ugly-lang gst-plugins-good gst-plugins-good-gtk

apk add libcanberra-gtk2 libcanberra-gtk3 libcanberra-gstreamer wxgtk-media wxgtk3-media wxgtk-lang

apk add ffmpeg ffmpeg-doc ffmpeg-libs lame lame-doc rtkit rtkit-doc 

apk add mpv mpv-doc deadbeef deadbeef-lang deadbeef-doc

apk add gvfs gvfs-fuse gvfs-archive gvfs-afp gvfs-afp gvfs-afc gvfs-cdda gvfs-gphoto2 gvfs-mtp

apk add libxinerama xrandr wpa_supplicant dhcpcd chrony macchanger wireless-tools iputils

apk add network-manager-applet network-manager-applet-lang networkmanager networkmanager-lang networkmanager-elogind networkmanager-elogind-lang networkmanager-elogind-openrc networkmanager-openvpn networkmanager-openvpn-lang

rc-update add chrony

rc-update add wpa_supplicant

rc-update add networkmanager

for u in $(ls /home); do for g in plugdev; do addgroup $u $g; done;done

cat > /etc/network/interfaces << EOF
auto lo
iface lo inet loopback
EOF

service networking restart

service wpa_supplicant restart

service networkmanager restart