====== Slackware Installation ====== My Slackware installation notes. Some old notes have been [[linux:slack_archive|archived]]. Do note that Slackware also has a great [[https://docs.slackware.com/|documentation site]]. ===== Getting Slackware ===== The official way to do this is, of course, to get it from [[http://www.slackware.com/getslack/|slackware.com]]. Personally, I have [[https://codeberg.org/azman/my1shell/src/branch/master/getslack|getslack]], a bash script based on (more accurately, a trimmed-down version of) the excellent (he termed it //infamous//) [[http://www.slackware.com/~alien/tools/mirror-slackware-current.sh|mirror-slackware-current.sh]] by [[http://alien.slackbook.org/dokuwiki/doku.php|Alien Bob]]. When going down this path, the next step would be to prepare the installation media. ++++ Slackware Installer ISO Image | ==== Slackware Installer ISO Image ==== I no longer need an ISO image (refer to USB installer below). But, I have [[https://codeberg.org/azman/my1shell/src/branch/master/slack2iso|slack2iso]] script (also based on Alien Bob's script) can help in creating one using the tree downloaded by ''getslack''. ++++ ++++ Slackware USB Installer | ==== Slackware USB Installer ==== [[http://alien.slackbook.org/dokuwiki/doku.php|Alien Bob]] has provided a [[http://alien.slackbook.org/blog/installing-slackware-using-usb-thumb-drive/|script]] to make/setup/configure a USB-based Slackware installation media. I wanted to do something simpler using the existing files in the Slackware tree that I mirrored using ''getslack'' (mentioned above). So, here is how I got that working. - Create a FAT32 partition * use ''fdisk'' and make sure it is bootable (bootable flag enabled) * use ''mkdosfs'' (e.g. ''mkdosfs -F 32 /dev/sdb1'') - Use syslinux to provide bootloader * create a ''/linux/boot/syslinux'' folder on the USB * type syslinux -d /linux/boot/syslinux /dev/sdb1 **Note**: On newer syslinux, use ''-i'' to indicate new installation * a file ''ldlinux.sys'' should appear in ''/linux/boot/syslinux'' - Copy boot facilities from Slackware tree to the media * copy a kernel from slackware tree to ''/linux/boot'' (I used ''huge.s'') * copy ''initrd.img'' and ''message.txt'' to ''/linux/boot'' * copy ''isolinux.cfg'' to ''/linux/boot/syslinux'' as ''syslinux.cfg'' * edit ''syslinux.cfg'' accordingly (initrd, kernel params, etc.) - Copy slackware<64> in the Slackware tree (I used a shorter folder name like slack on the USB) And... we're done! Now we have a simple Slackware USB Installer and install it on every computer we can get our hands on! 8-) **Note**: When running lilo, the installer will detect the USB FAT32 partition as a Windows partition and create an entry for it in ''/etc/lilo.conf''. What I did was just chroot into ''/mnt'', edit ''/etc/lilo.conf'' accordingly and re-run ''lilo''. **OR** you can just do this AFTER you've logged into the system - just don't select that Windows partition at lilo boot menu. ++++ ++++ Note: GPT Disks and EFI | ==== Note: GPT Disks and EFI ==== Things moving to (U)EFI and GPT... slowly leaving legacy BIOS and MBR. Instead of MBR, we use GPT partitioning scheme: * supports bigger disk * supports EFI booting (easier to maintain actually :p) Partition codes are 2-bytes instead (only 1-byte on MBR's partition table). Among the common ones: * EF00 (EFI System Partition): this is what EFI boot look for * format FAT32 mkdosfs -F 32 -n MY1EFI /dev/sdxx * 0700 (MS Basic Data): Windows Partition * format NTFS mkntfs -f -L MY1WIN /dev/sdxx * 8300 (Linux filesystem): Linux Partition * format EXT4 mkfs.ext4 -L MY1LIN /dev/sdxx Once boot using EFI, ''efibootmgr'' tool can be used (available on Slackware 14.2) * to create an entry labelled ''Slackware'' with loader file named ''\efi\slackware\elilo.efi'' located on first partition of first disk (''/dev/sda1'') efibootmgr -c -d /dev/sda -p 1 -L "Slackware" -l "\efi\slackware\elilo.efi" * to delete an entry xxxx (bootnum) efibootmgr -b xxxx -B * to re-order boot sequence efibootmgr -o xxxx,yyyy,zzzz ++++ ===== Using Slackware-current ===== //**Note:** I have removed a section on DE-less installation since my current slackware installations ARE, in fact, DE-less.// //**Note:** I have also removed a section on hijacking other Linux system - this, here, turned out to be VERY similar to what needed to be done.// **[LastUpdated20210620]** I need to use GTK3 version that is newer that the one on 14.2, so I tried the development version (**slackware64-current**). I have done the same once (pre-11), so I am aware that there can be some issues when doing this. I am happy to say that I AM writing this on a slackware64-current (15.0 beta?) installation on my laptop. So, this is a little note to my future self (or anybody that may be find this useful //**DISCLAIMER: Use this at your own risk!**//). I am doing this while still using Devuan and I want to keep that for backup, in case things go wrong. (On a side note, the reason I use Devuan was because of the GTK3 version.) So, I have an extra partition that I have reformatted and prepared to download the stuffs I need. * download official packages (''getslack'') * create download path: ''/home/share/slackware'' * create custom getslack config ''.getslack'' * set ''VERS=current'' * exclude kde & xfce * setup EFI boot * ''bzImage'' in kernels/huge.s (rename to ''vmlinuz'') * ''initrd.img'' in isolinux/ (this has the slackware setup) * boot and run installation as usual * DO NOT format partition (packages are there!) * pick packages from mounted path * manually set kernel to boot (i use huge - generic needs initramfs) * boot newly installed slackware * remove ''gnuchess'' and ''xaos'' packages * make sure vim does not create backups (edit ''/usr/share/vim/vimrc'') * allow ''dmesg'' for user * edit ''/etc/rc.d/rc.local'' <- ''echo 0 > /proc/sys/kernel/dmesg_restrict'' * just for personal reference, some useful info on using nmcli nmcli r[adio] wifi nmcli r[adio] wifi on nmcli d[evice] wifi list nmcli d[evice] wifi connect password ifname nmcli c[onnection] show nmcli c[onnection] down nmcli c[onnection] up * customize ''/etc/xdg/user-dirs.defaults'' (standard default paths) * create user * **things to note!** * elogind conflicts with my acpi scripts (lid, to be exact) * edit ''/etc/elogind/logind.conf'' * insert HandleLidSwitch=ignore * pm-utils not available * use loginctl instead (e.g. ''loginctl suspend'' instead of ''pm-suspend'') * on the plus side, does not need root * to lock xsession when suspending, create sleep-hook (script) * e.g. edit /lib64/elogind/system-sleep/xlock #!/bin/bash case "$1" in pre) upid=$(pgrep dbus-launch) user=$(ps -o user --no-headers $upid) export XAUTHORITY=/home/$user/.Xauthority export DISPLAY=":0.0" su $user -c 'xlock -mode matrix' & sleep 1 ;; esac * make it executable (''chmod a+x'') * get additional packages (''getslackpack'') * luckily, alienBob's repo 'supports' current * create custom getslackpack config ''.getslackpack'' * (alien) openjdk libreoffice libreoffice-dict-en" * //note: ffmpeg already on current!// * get additional packages (''getslackbuild'') * run as ''VERS=14.2 getslackbuild fetch '' * pkgs: ''dmenu geany rox-filer slackware-xdm-theme'' * pkgs: ''slock st wmname pmount unrar'' * pkgs: ''nss-mdns avahi libdaemon'' * //note: rox-filer cannot be compiled, needed patching ([[https://bugs.gentoo.org/710330|this]])// * i have gathered all the scripts from slackbuilds.org that i use and keep them [[https://codeberg.org/azman/my1slackbuilds|here]] * i want to use [[https://dwm.suckless.org|dwm]] * using my own custom [[https://codeberg.org/azman/my1slackbuild/src/branch/master/dwm.SlackBuild|build script]] (which has personalized patches) * my dwm xinitrc will run loginctl hibernate when battery<30% (-> what i need on my current laptop) To maintain: //**note:** my ''libmy1slack'' library will detect current when ''/etc/slackware-version'' has '+' suffix. this sign will disappear when -current is near to a stable release.// * run [[https://codeberg.org/azman/my1shell/src/branch/master/slack-update|slack-update]] as usual * when ''-current'' going stable, use ''SLACKVERS=current slack-update'' * run [[https://codeberg.org/azman/my1shell/src/branch/master/slack-current|slack-current]] instead of ''slackpatch'' * when ''-current'' going stable, use ''-f'' switch * to see removed packages, use [[https://codeberg.org/azman/my1shell/src/branch/master/slackview|slackview]] (i.e. ''SLACKVERS=current slackview find --alien'') * update those installed using getslackbuild if needed ===== Lean Installation ===== This is what I do for a ''lean'' (not necessarily minimal, but trimmed to my liking) installation. Will continuously update this based on my latest experience. **LastUpdated20230322** * official packages (''getslack'') * without kde & xfce (checkout my ''getslack'' config file below) * removepkg: ''gnuchess, xaos, xsnow'' * removepkg: ''joe, nano, vim-gvim, slackpkg'' * setup/config * make sure vim does not create backups (edit ''/usr/share/vim/vimrc'') * or, run ''vimstart'' (from my1shell repo) * dmesg no longer allowed for user * edit ''/etc/rc.d/rc.local'' <- ''echo 0 > /proc/sys/kernel/dmesg_restrict'' * or, run ''setup_slack'' (from my1shell repo) * setup acpi from my personal script * additional packages (''getslackpack'') * (alien) openjdk libreoffice libreoffice-dict-en" * additional packages (''getslackbuild'') * ''dmenu slock st wmname'' * ''slackware-xdm-theme'' * ''geany rox-filer pmount unrar'' * ''nss-mdns avahi libdaemon'' * scripts from slackbuilds.org all gathered [[https://codeberg.org/azman/my1slackbuilds|here]] * custom [[https://dwm.suckless.org|dwm]] build * using my own [[https://codeberg.org/azman/my1slackbuild/src/branch/master/dwm.SlackBuild|build script]] (which has personalized patches) To maintain: * run [[https://codeberg.org/azman/my1shell/src/branch/master/slack-update|slack-update]] * this actually runs 3 scripts (''getslack'',''getslackpack'',''getslackbuild'') * run [[https://codeberg.org/azman/my1shell/src/branch/master/slackpath|slackpatch]] (if required) * run [[https://codeberg.org/azman/my1shell/src/branch/master/getslackbuild|getslackbuild build -x -i]] (if required) ++++ Configuration file for getslack | # repo selection RSYNCURLROOT="slackware.mirrors.tds.net::slackware/" #RSYNCURLROOT="mirrors.kernel.org::slackware/" #RSYNCURLROOT="rsync.osuosl.org::slackware/" #RSYNCURLROOT="bear.alienbase.nl::mirrors/slackware/" # allow VERS to be overridden at command line VERS=${VERS:="current"} # include info for extra packages INCLUDES="$INCLUDES --include=extra/ --include=extra/PACKAGES.TXT" # exclude non-essentials EXCLUDES="$EXCLUDES --exclude=extra/*" # exclude non-standard EXCLUDES="$EXCLUDES --exclude=pasture/ --exclude=testing/" # exclude extra installers EXCLUDES="$EXCLUDES --exclude=usb-and-pxe-installers/" # exclude source EXCLUDES="$EXCLUDES --exclude=source/" # exclude unwanted packages EXCLUDES="$EXCLUDES --exclude=slackware*/e/ --exclude=slackware*/f/" EXCLUDES="$EXCLUDES --exclude=slackware*/kdei/ --exclude=slackware*/y/" # exclude kde EXCLUDES="$EXCLUDES --exclude=slackware*/kde/" # exclude xfce EXCLUDES="$EXCLUDES --exclude=slackware*/xfce/" ++++ ++++ Configuration file for getslackpack | # always execute OPT_CHECK="NO" # always sweep old packages OPT_SWEEP="YES" # allow VERS to be overridden at command line VERS=${VERS:="current"} # bare necessities THIS_CONF="--alien openjdk" # office suite THIS_CONF="$THIS_CONF --alien libreoffice libreoffice-dict-en" # running java applet? #THIS_CONF="$THIS_CONF --alien icedtea-web rhino" # java build tool? #THIS_CONF="$THIS_CONF --alien apache-ant" # chromium stuff #THIS_CONF="$THIS_CONF --alien chromium" #THIS_CONF="$THIS_CONF chromium-pepperflash-plugin" #THIS_CONF="$THIS_CONF chromium-widevine-plugin" # miscellaneous #THIS_CONF="$THIS_CONF --alien p7zip xdialog" # torrent-stuff #THIS_CONF="$THIS_CONF --alien qbittorrent libtorrent-rasterbar" # my video-tool need this THIS_CONF="$THIS_CONF --alien ffmpeg" # requirements for simple screen recorder? #THIS_CONF="$THIS_CONF --alien ffmpeg jack opus" # nice pdf reader THIS_CONF="$THIS_CONF --rwork evince" # dvd/cd burning on xfce #THIS_CONF="$THIS_CONF --rwork xfburn libburn libisofs" ++++ ++++ Configuration file for slackpatch | # check these extra package paths as well? #PKG_EXTPATH="${SLACKRELPATH}-multilib" # ignoring these standard packages => multilib! #PKG_IGNORED="glibc glibc-i18n glibc-profile glibc-solibs" #PKG_IGNORED="$PKG_IGNORED gcc gcc-g++ gcc-gfortran" #PKG_IGNORED="$PKG_IGNORED gcc-gnat gcc-go gcc-java gcc-objc" ++++ Listing for ''my1live-root''... ++++ Core list for Slackware-15.0 (Current) | #core_system a!aaa_base a!aaa_glibc-solibs a!aaa_libraries a!aaa_terminfo a!bash a!bin a!coreutils a!devs a!e2fsprogs a!elvis a!etc a!eudev a!grep a!kernel-modules a!kmod a!libgudev a!procps-ng a!sed a!shadow a!sysklogd a!sysvinit a!sysvinit-scripts a!tar a!util-linux a!xz ++++ ===== chroot Installation ===== **20110621** I want to have a 32-bit system running in chroot environment on my Slackware64. I've used such system on Debian using schroot... **20110906** I managed to do this as published [[https://my1azman.blogspot.com/2011/11/installing-slack32-on-slack64-chroot.html|here]]... **20120518** Minor change to the fstab entry for dev, which needs an rbind option so that the pty inside can be valid! Discussed [[https://my1azman.blogspot.com/2012/05/su-in-chroot-linux-stuff.html|here]]. **20120524** This is now part of my slackstuff collection (now known as [[https://github.com/azman/my1shell|my1shell]])... in form of a script called slackroot. **20121031** The path to the chroot installation MUST ALL BE owned by root - or else, users will get a ''Write failed: Broken pipe'' error. //**TODO** A how-to on creating 32-bit chroot on 64-bit Slackware using ''slackroot'' script.// - on my pure slack64 (maintained using getslack/getslackpack) $ ARCH=i686 getslack - create root filesystem using 32-bit packages # slackroot /opt/chroot32 --arch x86 --desk -x - copy user/group info from 64-bit system to chroot32 = will maintain its own login info! # preproot --init /opt/chroot32 - mount bind 'system' paths # preproot /opt/chroot32 - ssh into system to use 32-bit chroot # ssh user@127.0.0.1 - unmount bind 'system' paths # preproot --done /opt/chroot32 ===== Extra Notes ===== Some things to note... **20210620** Slackware's CPU frequency scaling works (checkout ''/etc/rc.d/rc.cpufreq'') - just to remind myself, no need to look into this! ==== Admin-stuff for non-root user ==== To allow non-root users basic admin (poweroff,reboot,etc.), insert the following to ''/etc/sudoers'' (obviously, through ''sudo''). **Note**: Actually, only to users in group ''power''. %power ALL=(ALL) NOPASSWD:/sbin/poweroff %power ALL=(ALL) NOPASSWD:/sbin/reboot %power ALL=(ALL) NOPASSWD:/usr/sbin/pm-suspend %power ALL=(ALL) NOPASSWD:/usr/sbin/pm-hibernate %power ALL=(ALL) NOPASSWD:/usr/sbin/pm-powersave //**Note:** The pm-* binaries (pm-utils) are no longer available on Slackware 15.0// ==== Multicast DNS @ Zeroconf ==== * install nss-mdns (requires avahi (requires libdaemon)) * save nss config * ''mv /etc/nsswitch.conf /etc/nsswitch.conf-orig'' * use provided nss config * ''cp /etc/nsswitch.conf-mdns /etc/nsswitch.conf'' * run daemon at startup script="/etc/rc.d/rc.avahidaemon" [ -x "$script" ] && $script start script="/etc/rc.d/rc.avahidnsconfd" [ -x "$script" ] && $script start ===== Multilib Setup ===== Main references are [[http://alien.slackbook.org/dokuwiki/doku.php?id=slackware:multilib|here]] and [[http://www.slackware.com/~alien/multilib/|here]]. - Basically, need to have C library and compiler capable of multilib. I use ''getslackpack'' to download required packages from [[http://www.slackware.com/~alien/multilib/|Eric's multilib site]]. Install as instructed. - I already have a 32-bit Slackware tree downloaded using ''getslack'' which I use for my 32-bit chroot installation. I use ''massconvert32.sh'' script on this tree. The ''massconvert32.sh'' script can be used to update as well (built packages are not rebuilt). Install as instructed. - My ''slackpatch'' script has been updated to handle 'blacklisted' 64-bit versions and 'upgraded' compat32 packages **Update20180903** Read [[http://www.slackware.com/~alien/multilib/|here]]. I now have a more specific script to get multilib stuff (previously part of getslackpack script), * use [[https://github.com/azman/my1shell/blob/master/getslack-multilib|getslack-multilib]] to download alien_bob's multilib stuff * compat32-tools glibc(&friends) gcc(&friends) * compat32 library packages * upgrade pure-64 glibc/gcc packages counterparts * upgradepkg --reinstall --install-new *.t?z * install compat32-tools * some useful helper scripts * install 32-bit layer support libraries * upgradepkg --install-new slackware64-compat32/*-compat32/*.t?z * obviously, can be used to upgrade as well ===== Upgrading 14.1 to 14.2 ===== ++++ A bash shell script I used to upgrade from 14.1 to 14.2 | #!/bin/bash # - upgrade 14.1 to 14.2 SLACKVERS="14.2" # setup path to slackware tree SLACKROOT=${SLACKROOT:="$(pwd)"} [ -z "$SLACKARCH" ] && [ -n "$ARCH" ] && SLACKARCH=$ARCH SLACKARCH=${SLACKARCH:="$(uname -m)"} SLACKSUFX=${SLACKSUFX:=""} [ "$SLACKARCH" == "x86_64" ] && SLACKSUFX="64" SLACKFULL=${SLACKFULL:="slackware${SLACKSUFX}"} [ -z "$SLACKVERS" ] && [ -n "$RELEASE" ] && SLACKVERS=$RELEASE SLACKVERS=${SLACKVERS:="current"} SLACKRELS=${SLACKFULL}-${SLACKVERS} SLACKPATH=${SLACKROOT}/${SLACKRELS} # step 1 upgradepkg ${SLACKPATH}/${SLACKFULL}/a/glibc-solibs-*.txz # step 2 upgradepkg ${SLACKPATH}/${SLACKFULL}/a/pkgtools-*.txz upgradepkg ${SLACKPATH}/${SLACKFULL}/a/tar-*.txz upgradepkg ${SLACKPATH}/${SLACKFULL}/a/xz-*.txz upgradepkg ${SLACKPATH}/${SLACKFULL}/a/findutils-*.txz # step 3 for dir in a ap d k l n t tcl x xap xfce ; do do_path=${SLACKPATH}/${SLACKFULL}/$dir [ ! -d $do_path ] && continue ( cd $do_path ; upgradepkg --install-new *.t?z ) done # step 4 removepkg ConsoleKit apmd bluez-hcidump cxxlibs foomatic-filters \ gnome-icon-theme imlib kdeadmin kdenetwork kdesdk kdetoys kwallet \ lesstif libelf libjpeg libxfcegui4 networkmanagement obex-data-server \ obexfs open-cobol oxygen-gtk3 phonon-mplayer phonon-xine pil portmap \ procps qca-cyrus-sasl qca-gnupg qca-ossl udev xchat xf86-input-aiptek \ xf86-video-modesetting xfce4-mixer xfce4-volumed xfwm4-themes # step 5 # - run chknew # step 7 # - check boot config ++++ ===== Building Custom Kernel ===== * run shell script ([[https://codeberg.org/azman/my1shell/src/branch/master/getlinux|getlinux]]) * select version, download source * extract at ''/usr/src/'' (e.g. linux-4.4.199) * copy a config from ''/boot'' # cp /boot/config-generic? > .config * use that config # make oldconfig * configure build # make menuconfig * build the kernel # make -j4 bzImage * build/install modules # make -j4 modules && make modules_install * ''modules_install'' requires root, obviously! * copy (as root) kernel cp arch/x86/boot/bzImage /boot/vmlinuz-generic-4.14.12 cp System.map /boot/System.map-generic-4.14.12 cp .config /boot/config-generic-4.14.12 * generate initrd if using genericmkinitrd -c -k 4.14.12 -f ext4 -r /dev/sda3 -m ext4 -u -o /boot/initrd.gz * a useful initrd generator script IS available * run ''/usr/share/mkinitrd/mkinitrd_command_generator.sh'' * then run the generated/recommended command * checkout the ''-P'' option if required ===== Listing Packages ===== Run ls -l output on /var/log/packages # ls -l /var/log/packages Get package full name ONLY # ls -l /var/log/packages | sed 's|^.* \(.*\)$|\1|g' Get package name ONLY # ls -l /var/log/packages | sed -e 's|^.* \(.*\)$|\1|g' -e 's|^\(.*\)-[^-]*-[^-]*-[^-]*$|\1|g' Find package files for installed packages for pkg in `ls /var/log/packages/` ; do pkg_file=`find /home/share/slackware/slackware64-14.2/ -name "${pkg}.txz"` ; [ -f "$pkg_file" ] && continue ; echo "Cannot find file for $pkg" ; done Find installation log for standard packages for pkg in `find /home/share/slackware/slackware64-14.2/slackware64 -name "*.txz" | sort` ; do base=`basename $pkg` ; name=${base%.*} ; test="/var/log/packages/$name" ; [ -f "$test" ] && continue ; echo "Cannot find file for $test" ; done To list currently installed packages (to be used in my1live) * get all installed packages # slackview file --name pkgs.txt --installed --insert * sort based on software sets # slackview file --name pkgs.txt --sort * remove those already selected for my1live slackview file --name pkgs.txt --dups curr.list * rename pkgs.txt to my1live list (e.g. XXmore.list) ====== Slackware/Linux Desktop ====== Little tips for better Slackware/Linux desktop experience. ===== Mplayer (gmplayer) runs without video window ===== Double-clicking in file manager (Thunar) shows no video (audio is ok, so program is running). Running mplayer from command line is fine. Turns out gui version is gmplayer - running from console shows this error message Failed to open VDPAU backend libvdpau_va_gl.so So, just edit ''~/.mplayer/gui.conf'', find the line for ''vo_driver'' and set it to ''gl''. Show be ok after that... at least in my case it is. ===== Login issue ===== When using xdm, login fails sometimes with error message ''... Unable to establish ICE listener...'' * edit ''/etc/rc.d/rc.local'' <- ''rm -rf /tmp/.ICE-unix/*'' ===== Mplayer and Xscreensaver ===== //Note: **NOT** tested... just found this :-P// Although the mplayer setting to disable xscreensaver has been selected, xscreensaver still runs! Possible Solution: Edit ''~/.mplayer/config'' heartbeat-cmd="xscreensaver-command -deactivate >/dev/null 2>&1" ===== Audio issue when using ALSA ===== The solution is [[http://docs.slackware.com/howtos:hardware:sound_problems_on_slackware|here]] * in short, ALSA using the HDMI output as default * use alsamixer, [F6] select the card (the one that is NOT HDMI) and make sure output is not muted * use aplay -l to identify the card/slot# and device# * use ''aplay -D plughw:, '' to test * edit ''/etc/asound.conf'' or ''~/.asoundrc'' to fix this (sample below) pcm.!default { type hw card } ctl.!default { type hw card } ===== Low volume when using ALSA ===== As seen [[http://alien.slackbook.org/blog/adding-an-alsa-software-pre-amp-to-fix-low-sound-levels/|here]]... Check ''/etc/asound.conf'' pcm.!default { type plug slave.pcm "softvol" } pcm.softvol { type softvol slave { pcm "dmix" } control { name "Pre-Amp" card 0 } min_dB -5.0 max_dB 20.0 resolution 6 } Sometimes need ''type'' in ''pcm.!default'' to be ''hw'' ====== Slackware Application ====== Setting up application(s) on Slackware... but, most are applicable to all distributions. ===== 'Hidden' Application ===== There are a couple (a few?)of applications that I thought have great features but relatively unknown (I only knew about them after looking for specific solution). Here they are: * xfig - nice app to create figures for use with latex * xpaint - can do screen capture (''xpaint -snapshot'') ===== Apache Setup ===== Editing /etc/httpd/httpd.conf * change document root to a folder my main user have full access * also create a link to it from my user account * allow php to be indexed => add to directory index in dir_module * enable php (towards the end of the file) => include mod_php.conf * enable mod_rewrite (API server?) => LoadModule ... mod_rewrite.so * optional: set serveradmin email and servername * optional: to only serve locally, set listen localhost:80 ??? Setting up SSL: (for HTTPS!) * modify /etc/httpd/httpd.conf: * enable loadmodule mod_ssl.so * enable loadmodule mod_socache_shmcb.so * include httpd-ssl.conf * generate private key: * openssl genrsa -out privkey.pem 2048 * rsa private key with 2048-bit long modulus written to file * generate cert: * openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095 * edit /etc/httpd/httpd-ssl.conf * acordingly... ===== mariadb/mysql Setup ===== * run mysql_install_db * make sure permision given to user //mysql// chown -R mysql:mysql /var/lib/mysql * start daemon sh /etc/rc.d/rc.mysqld start * run /usr/bin/mysql_secure_installation * create specific database for specific app create database app_db; * create specific user for specific app and grant all access grant all privileges on app_db.* to 'user_app'@'localhost' identified by 'pass_app'; * just formality, run flush privileges; * to additionally create specific user for specific app create user 'user_app'@'localhost' identified by 'pass_app'; * recover root password: # /etc/rc.d/rc.mysqld stop # mysqld_safe --skip-grant-tables & # mysql -u root $ mysql -uroot -p mysql> use mysql; mysql> update user set password=PASSWORD('') where User='root'; mysql> flush privileges; mysql> exit * reset auto_increment primary key: alter table my1vehicle AUTO_INCREMENT=1; * remove foreign key from table (start with checking for key name) select table_name,auto_increment from information_schema.tables; alter table my1data_use drop foreign key my1data_use_ibfk_2; * backup db mysqldump -p -u user userdb > userapp-`date +%Y%m%d%H%M%S`.sql ===== TeXLive Install/Setup ===== The default tetex is usable, but it is no longer maintained and some new packages are not available. {{page>linux:app_texlive&noheader}} ===== rsync server ===== * create ''/etc/rsyncd.conf'' max connections = 2 log file = /var/log/rsync.log timeout = 300 [share] comment = Shared Stuff path = /home/share read only = yes list = yes hosts allow = 192.168.3.0/24 uid = nobody gid = nobody #auth users = pub #secrets file = /etc/rsyncd.secrets * modify subnet mask address for host allow accordingly * in ''/etc/inetd.conf'' * insert this linersync stream tcp nowait root /usr/bin/rsync rsync --daemon * in ''/etc/services'' * insert this linersync 873/tcp * maybe create ''/etc/rsyncd.secrets'' pub:pub * start rsync daemon/usr/bin/rsync --daemon --config=/etc/rsyncd.conf ===== Steam on Slack64 (in chroot32) ===== on an x86_64 machine, * install libtxc_dxtn package from slackbuilds.org (64-bit) * use 'slackroot' to create 32-bit chroot environment (chroot32) * target for desktop * ssh into localhost to enter chroot32 as normal user * remember to run 'preproot' (as root) prior to that * ... and 'preproot --release' when done * install packages * install alien_bob's steamclient package * install libtxc_dxtn package from slackbuilds.org (32-bit) * run 'linux32' to create an official 32-bit environment * run 'steam -tcp' ====== Slackware Miscellaneous ====== Some personal notes... ===== Libreoffice ===== * alien_bob's libreoffice cannot run * got ''unspecified application error'' * found a fix in lq forum * look for graphic driver used $ lspci -vv | sed -n '/VGA compatible/,/^$/ p' * in my case i915 * have a export MESA_LOADER_DRIVER_OVERRIDE=i915