LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   A minimal Slackware install (Slack64 14.2) (https://www.linuxquestions.org/questions/slackware-14/a-minimal-slackware-install-slack64-14-2-a-4175595495/)

slac-in-the-box 03-07-2020 11:11 AM

Here is an inverse minimal install: everything not listed is what's installed (except for kernels--there's a libre-linux kernel installed, but it's updated manually, so all the kernels are on the blacklist). It is the blacklist file from a nameserver, thus, though you could run slackware without bind, bind's not on the blacklist because it's used for dns; few other networking packages that got slackpkg working; it's headless so all of the X11 sets are on the blacklist; it's stale: there's already new packages that slackpkg install-new would pickup, like the new wayland xorg files, but wouldn't be needed on the headless setup, and I need to add them before I update this nameserver.
Code:

# This is a blacklist file. Any packages listed here won't be
# upgraded, removed, or installed by slackpkg.
#
# The correct syntax is:
#
# To blacklist the package xorg-server-1.19.4-x86_64-1 the line will be:
# xorg-server
#
# DON'T put any space(s) before or after the package name or regexp.
# If you do this, the blacklist will NOT work.

#
# Automated upgrade of kernel packages aren't a good idea (and you need to
# run "lilo" after upgrade). If you think the same, uncomment the lines
# below
#
kernel-generic
kernel-generic-smp
kernel-huge
kernel-huge-smp
kernel-modules
kernel-modules-smp
kernel-source

#
# aaa_elflibs should NOT be blacklisted!
#

# You can blacklist using regular expressions.
#
# Don't use *full* regex here, because all of the following
# will be checked for the regex: series, name, version, arch,
# build and fullname.
#
# This one will blacklist all SBo packages:
#[0-9]+_SBo

# libre kernel:  manually updated, so it's blacklisted
libre-headers-server-generic
libre-kernel-server-generic
libre-modules-server-generic

# blacklisted packages from the "a" set

acl
acpid
cpufrequtils
ed
efibootmgr
efivar
elilo
f2fs
genpower
gpm
gptfdisk
kernel-firmware
kernel-generic
kernel-huge
kernel-modules
lbzip2
lhasa
libcgroup
libgudev
lrzip
mcelog
mdadm
minicom
mlocate
mt-st
mtx
ncompress
ntfs
os-prober
patch
pciutils
pcmciautils
plzip
reiserfsprogs
rpm2tgz
sdparm
sharutils
smartmontools
tcsh
time
tree
udisk
unarj
upower
usb_modeswitch
usbutils
xfsprogs
zoo

# packages blacklisted from the "ap" set
a2ps
acct
alsa-utils
amp
at
bc
bpe
cdparanoia-III
cdrdao
cdrtools
cgmanager
cups
cups-filters
dash
dc3dd
ddrescue
diffstat
diffutils
dmapi
dmidecode
dvd+rw-tools
enscript
flac
ghostscript
gphoto2
gutenprint
hplip
ispell
itstool
ed
joe
jove
ksh93
libx86
linuxdoc-tools
madplay
mariadb
mc
moc
most
mpg123
normalize
opus-tools
pamixer
pm-utils
powertop
qpdf
radeontool
rpm
rzip
sc
seepeg
soma
sox
sqlite
squashfs
sudo
sysstat
terminus-font
texinfo
tmux
usbmuxd
vbetool
vim
vorbis-tools
xfsdump
xorriso

# packages blacklisted from the "d" set
Cython
autoconf
bison
ccache
check
cmake
cscope
cvs
dev86
distcc
doxygen
flex
gcc
gcc-brig
gcc-g++
gcc-gdc
gcc-gfortran
gcc-gnat
gcc-go
gcc-objc
gdb
gnucobol
gperf
guile
help2man
icecream
indent
intltool
kernel-headers
llvm
mercurial
meson
nasm
ninja
opencl-headers
oprofile
p2c
parallel
patchelf
perl
pkg-config
pmake
python3
python-pip
rcs
re2c
ruby
rust
scons
slacktrack
subversion
swig
vala
yasm

# pakages blacklisted from "f" set
linux-faqs
linux-howtos

# blacklisted packages from the "k" set
kernel-source

# blacklisted packages from the "kde" set
amarok
amor
analitza
ark
artikulate
audiocd-kio
baloo
baloo-widgets
blinken
bluedevil
bomber
bovo
calligra
cantor
cervisia
dolphin-plugins
dragon
filelight
granatier
gwenview
juk
k3b
kaccessible
kactivities
kajongg
kalgebra
kalzium
kamera
kanagram
kapman
kapptemplate
kate
katomic
kaudiocreator
kblackbox
kblocks
kbounce
kbreakout
kbruch
kcachegrind
kcalc
kcharselect
kcolorchoosear
kcron
kde-base-artwork
kde-baseapps
kde-dev-scripts
kde-dev-utils
kde-runtime
kde-wallpapers
kde-workspace
kdeartwork
kdeconnect-kde
kdegraphics-mobipocket
kderaphics-strigi-analyzer
kdegraphics-thumbnailers
kdelibs
kdenework-filesharing
kdenetwork-strigi-analyzers
kdepim
kdepim-runtime
kdepimlibs
kdeplasma-addons
kdesdk-kioslaves
kdesdk-strigi-analyzers
kdesdk-thumbailers
kdev-python
kdevelop
kdevelop-pg-qt
kdevelop-php
kdevelop-php-docs
kdevplatform
kdewebdev
kdf
kdiamond
kfilemetadata
kflopopy
kfourinline
kgamma
kgeography
kget
kgoldrunner
kgpg
khangman
kig
kigo
killbots
kio-mtp
kiriki
kiten
kjumpingcube
klettres
klickety
klines
kmag
kmahjongg
kmines
kmix
kmousetool
kmouth
kmplot
knavalbattle
knetwalk
kolf
kollision
kolourpaint
kompare
konquest
konsole
kopete
korundum
kpat
kplayer
kppp
kqtquickcharts
krdc
kremotecontrol
kreversi
krfb
kross-interpreters
kruler
ksaneplugin
kscreen
kshisen
ksirk
ksnakeduel
ksnapshot
kspaceduel
ksquares
kstars
ksudoku
ksystemlog
kteatime
ktimer
ktorrent
ktouch
ktuberling
kturtle
ktux
kubrick
kuser
kwalletmanager
kwebkitpart
kwordquiz
libkcddb
libkcompacdisc
libkdcraw
libkdeedu
libkdegames
likexiv2
libkipi
libkmahjongg
libkomparediff2
libksane
libkscreen
libktorrent
libmm-qt
libnm-qt
localize
lskat
marble
mplayerthumbs
nepomuk
okteta
okular
oxygen-gtk2
oxygen-icons
pairs
palepeli
parley
partitionmanager
perlkde
perlqt
picmi
plasma-nm
polkit-kde-agent
polkit-kde-kcmodules
poxml
print-manager
pykde4
qtruby
rocs
skanlite
smokegen
smokekde
smokeqt
step
superkaramba
svgpart
sweeper
umbrello
wicd-kde
zeroconf-ioslave

# blacklisted packages from the "kdei" set
calligra
kde-l10n

# blacklisted packages from the "l" set
GConf
LibRaw
M2Crypto
Mako
PyQt
QScintilla
SDL2
SDL2_gfx
SDL2_image
SDL2_mixer
SDL2_net
SDL2_ttf
a52dec
aalib
adwaita
akonadi
alsa-lib
alsa-oss
alsa-plugins
apr
apr-utils
argon2
aspell
at
atk
atkmm
attica
audiofile
automoc4
babl
boost
cairo
cairomm
chmlib
clucene
db42
db44
db48
dbus-glib
dbus-python
dconf
dconf-editor
desktop-file-utils
djvulibre
ebook-tools
eigen2
enchanr
esound
exiv2
expat
ffmpeg
fftw
fluidsynth
freetype
fribidi
gamin
gd
gdbm
gdk-pixbuf2
gegl
gexiv2
giflib
glade3
gmime
gmm
gnome-keyring
gnome-themes-extra
gnu-efi
gobject-introspection
grantlee
graphite2
gsettings-desktop-schemas
gsl
gst-plugins-base
gst-plugins-base0
gst-plugins-good
gst-plugins-good0
gst-plugins-libav
gstreamer
gtk+
gtk+2
gtk+3
gtkmm2
gtkmm3
gtkspell
gvfs
harfbuzz
hicolor-icon-theme
hunspell
icon-naming-utils
icu4c
id3lib
ilmbase
imagemagick
isl
iso-codes
jansson
jasper
jemalloc
jmtpfs
json-glib
judy
keybinder
keyutils
lame
libaio
libao
libarchive
libasyncns
libatasmart
libbluedevil
libbluray
libcaca
libcanberra
libcap
libcap-ng
libcddb
libcdio
libcdio-paranoia
libclc
libcroco
libdbusmenu-qt
libdiscid
libdvdnav
libdvdread
libevent
libexif
libfakekey
libglade
libgnome-keyring
libgphoto2
libgpod
libgsf
libical
libieee1284
libmobiledevice
libiodbc
libjpeg-turbo
libkarma
liblastfm
libmad
libmcrypt
libmng
libmpc
libmtp
libnih
libnjb
libnotify
libodfgen
libogg
liboggz
liboil
libopusenc
libplist
libpng
libproxy
libraw1394
librevenge
librsvg
libsamplerate
libsecret
libsigc++
libsigsegv
libsndfile
libsodium
libsoup
libtasn1
libtheora
libtiff
libunwind
libusb
libusb-ompa
libusbmuxd
libvisio
libvisual
libvncserver
libvorbis
libvpx
libwebp
libwmf
libwnck
libwpd
libwpg
libxklavier
libxslt
libyaml
libzip
lmdb
loudmouth
lzo
media-player-info
mhash
mm
mozilla-nss
mozjs52
mpfr
neon
netpbm
newt
ocl-icd
openexr
openjpeg
opus
opusfile
orc
pango
pangomm
parted
phonon
phonon-gstreamer
pilot-link
polkit
polkit-gnome
polkit-qt
poppler
poppler-data
popt
pulseaudio
pvcairo
pycups
pycurl
pygobject
pygtk
pyparsing
python-appdirs
python-certifi
python-chardet
python-docutils
python-idna
python-notify2
python-packaging
python-pillow
python-ply
python-requests
python-sane
python-six
python-urllib3
qca
qimageblitz
qjson
qt
qt-gstreamer
qtscriptgenerator
raptor2
rasqal
readline
redland
sbc
sdl
serf
sg3_utils
shared-desktop-ontologies
shared-mime-info
sip
slang
slang1
soprano
sound-theme-freedesktop
speex
speexdsp
startup-notification
strigi
svgalib
system-config-printer
t1lib
talloc
tango-icon-theme
tdb
tevent
urwid
utf8proc
v4l-utils
vte
wavpack
xapian-core
zlib
zstd

# n
ModemManager
NetworkManager
alpine
autofs
biff+comsat
bluez
bluez-firmware
bootp
bridge-utils
bsd-finger
cifs-utils
crda
curl
cyrus-sasl
dnsmasq
dovecot
elm
epic5
fetchmail
getmail
gpa
gpgme
htdig
httpd
icmpinfo
ipset
iputils
ipw2100-fw
irssi
iw
lftp
libassuan
libksba
libmbim
libmilter
libmnl
libndp
libnftnl
libqmi
libtirpc
links
mcabber
metamail
mobile-broadband-provider-info
mtr
mutt
nc
ncftp
netatalk
netdate-bsd4
netkit-bootparamd
netkit-ftp
netkit-ntalk
nkit-routed
nkit-rsh
netkit-rusers
netkit-rwall
netkit-rwho
netkit-timed
netpipes
netwatch
netwrite
newspost
nfacct
nn
npth
obexftp
openldap-client
openobex
p11-kit
php
pinentry
popa3d
postfix
ppp
procmail
proftpd
pssh
rdist
rp-pppoe
rpcbind
s-nail
samba
slrn
snownews
sshfs
stunnel
tcp_wrappers
tcpdump
telnet
tftp-hpa
tin
traceroute
ulogd
uucp
vlan
vsftpd
whois
wireless_tools
wpa_supplicant
yptools
ytalk
zd1211-firmware

# t
fig2dev
texlive
xfig

# tcl
expect
hfsutils
tcl
tclx
tix
tk

# x
anthy
appres
bdftopcf
beforelight
bitmap
compiz
dejavu
editres
encodings
font-adobe[0-9]
font-alilas
ont-arabic-misc
font-bh[0-9]
font-bitstream[0-9]
font-cronyx-cyrillic
font-cursor
font-daewoo-misc
font-dec-misc
font-ibm-type1
font-isas-misc
font-jis-misc
font-micro-misc
font-misc-cyrillic
font-misc-ethiopic
font-misc-meltho
font-misc-misc
font-mutt-misc
font-schumacher-misc
font-screen-cyrillic
font-sony-misc
font-sun-misc
font-util
font-winitzki-cyrillic
font-xfree86-type1
fontconfig
fonttosfnt
freeglut
fslsfonts
fstobdf
gccmakedep
glew
glu
iceauth
ico
igt-gpu-tools
imake
intel-vaapi-driver
libFS
libICE
libSM
libXfont2
libX
libdmx
libdrm
libepoxy
liberation-fonts-ttf
libevdev
libfontenc
libglvnd
libhangul
libinput
libmypaint
libpciaccess
libpthread
libva
libva-utils
libvdpau
libwacom
libxcb
libxkbfile
libxshmfence
listres
lndir
luit
m17n-lib
makedepend
mesa
mkcomposecache
mkfontscale
motif
mtdev
mypaint-brushes
oclock
pixman
pyxdg
rendercheck
rgb
sazanami-fonts-ttf
scim
scim-anthy
scim-hangul
scim-0input-pad
scim-m17n
scim-pinyin
scim-ables
sessreg
setxkbmap
showfont
sinhala_lklug-font-ttf
smproxy
tibmachuni-font-ttf
transset
ttf-indic-fonts
ttf-tlwg
twm
urw-core35-fonts-otf
util-macros
viewres
vulkan-sdk
wqy-zenhei-font-ttf
x11-skel
x11perf
xauth
xbacklight
xbiff
xbitmaps
xcalc
xcb-[0-9]
xclipboard
xclock
xcm
xcmsdb
xcompmgr
xconsole
xcursor-themes
xcursorgen
xdbedizzy
xdg-user
xdg-utils
xditview
xdm
xdpyinfo
xedit
xev
xeyes
xf86-input
xf86-video
xg86dga
xfd
xfontsel
xfs
xfsinfo
xgamma
xgc
xhost
xinit
xinput
xkbcomp
xkbevd
xkbprint
xkbutils
xkeyboard-config
xkill
xload
xlogo
xlsatoms
xlsclients
xlsfons
xmag
xman
xmessage
xxmh
xmodmap
xmore
xorgproto
xorg
xpr
xprop
xpyb
xrandr
xrdb
xrefresh
xscope
xset
xsetroot
xsm
xstdcmap
xterm
xtrans
xvidtune
xvinfo
xwd
xwininfo
xwud

# xap
Mplayer
audacious
blackbox
blueman
ddd
easytag
electricsheep
fluxbox
fvwm
geeqie
gftp
gimp
gkrellm
gnuchess
gnuplot
gparted
gucharmap
gv
hexchat
mozilla-firefox
mozilla-thunderbird
network-manager-applet
pan
pavucontrol
pidgin
rdesktop
rxvt-unicode
sane
seamonkey
seyon
vim-gvim
windowmaker
x11-ssh-askpass
x3270
xaos
xgames
xine
xine-ui
xlockmore
xmms
xpaint
xpdf
xsane
xscreensaver

# xfce
Thunar
exo
garcon
gtk-xfce-engine
libxfce4ui
libxfce4util
orage
thunar-volman
tumbler
xfce4
xfconf
xfdesktop
xfwm4

#y
bsd-games


Linuxant 03-29-2020 03:35 PM

When selecting the packages, you can skip, multilingual support if you are planning to use only English.
Games could be skipped.
If you do not need TeX you can remove it as well
If you are planning to use browser-based office apps, you can uninstall Calligra
You can do without GUI however, if you need one, you can select xinitrc.twm tab window manager or xinitrc.wmaker (window maker), they are minimal as compared with KDE or XFce.

If you do not use Emacs, you can remove it, you can also remove nano, pico, and rely on Vim
You can remove wither pine/alpine or mutt
You can do without mc, mcedit
You can also remove links or lynx
You can manage wireless without wicd, thought it would be a bit tricky it is still doable
You can remove either xpdf or okular

bassmadrigal 03-29-2020 04:06 PM

Quote:

Originally Posted by Linuxant (Post 6105688)
You can manage wireless without wicd, thought it would be a bit tricky it is still doable

wicd isn't included on a stock install of 14.2. You'd have to install that separately from extra/. Network Manager is installed by default and it is quite easy to connect to wireless networks without using it. I do it on all of my machines (simply using rc.inet1.conf and wpa_supplicant.conf).

bamunds 03-31-2020 01:44 PM

Quote:

Originally Posted by bassmadrigal (Post 6105695)
wicd isn't included on a stock install of 14.2. You'd have to install that separately from extra/. Network Manager is installed by default and it is quite easy to connect to wireless networks without using it. I do it on all of my machines (simply using rc.inet1.conf and wpa_supplicant.conf).

While I know that alienbob's firewall script can create iptable entries, if you know all the ports, services, interfaces. NetworkManager also will integrate with firewalld, a simpler way to manage ports, services, and application Internet access. Actually the memory used by both is minimal. firewalld 8324 and NetworkManager 7240, or about 15.5M.

bassmadrigal 03-31-2020 02:54 PM

I just don't like using Network Manager, so I just use rc.inet1.conf and wpa_supplicant.conf for my wireless config.

dalacor 05-23-2020 04:54 PM

I had some time this weekend to have a play with setting up a minimal Slackware install as I wanted to see if I could do it and how it would work etc. It was a fun and enjoyable project and I understand a bit more about the Slackware install process and what is required to get Slackware to run.

However, I have come to the conclusion (for me at least) that there is no benefit to me to run a minimal slackware install because even using the recommended files as listed by the OP (with a few of my own files), I found I had to do a lot of troubleshooting to get my Slackware system to boot, with no error messages and run the Internet so I could update Slackware. I encountered different errors as a result of either running elilo or running Slackware in a VM and I suspect because my Slackware install was too minimal.

Even at the stage I am at now, the keyboard doesn't seem to remember that it's UK and I can see that other things are missing although the system boots, upgrades etc.

Then on top of that, when I upgraded Slackware I got locked out of the system because of the recent need to install pam and dependencies including libtirpc (in the N series). Also if you are running Current, you are supposed to run slackpkg install-new to install any packages that may be required by packages that you have existing and that you upgraded running Slackpkg upgrade-all. So again it would require me having to wade through changelogs to see what I need to install and what can safely be ignored - which is one of the reasons why I got locked out, as I did not run slackpkg install-new. Having to constantly update the blacklist file to exclude files you don't need, makes it a bit like pushing back the tide I guess!

Perhaps when I have more time, I could try the list that Slack in the box created as I can see that more packages are installed on that system than the list recommended by the OP. This might go a long way to resolving my remaining issues as I really wanted to see how minimal I could get a working system. However I just think that if I stick to running A, L and N (everything in that) and just the four packages in AP, this would work better for me as I won't have to worry about dependencies when I upgrade Slackware or not being able to do basic Linux commands or run any given Slackware program.

I enjoyed working on this project and I actually would like to come back to this project one day when I have more time and interest again (as I have had enough of this project for the time being), just for pure interest just to see how minimal I can get the system. I probably had too minimal a system which has resulted in a high number of headaches.

However, I wonder whether it's really worth the effort to run a minimal system as you are very likely to break your system when you upgrade. It won't make my system safer as I only load the services that I want running so security is not a problem and hard drive space these days are simply not an issue. I suspect for relative novices like me, it just makes more sense to disable the x, xap, t etc series that I don't use and leave it at that, instead of trying to tweak the a, l and n series which just breaks functionality in the OS. I am still missing things that I should be seeing! Oh well.

Fun project, but I am not convinced that there is any benefit for me in terms of improving speed, security or anything that would make a difference. I just wanted to see if I could do it. Maybe I will succeed one day with the list that Slack in the box created!

dalacor 05-24-2020 12:35 PM

I decided to setup the system using the configuration recommended by Slac-in-the-box seeing as I had already done most of the troubleshooting yesterday just to see how this config works.

Using that configuration I was able to fix remaining error messages, my keyboard remembered it was UK and slackware was registering the entropy entries correctly on first install. I had no problems updating Slackware, connecting to the Internet. So I will try this configuration and see if it works for me as while it contains more files than the config provided by Bifferos or Deniro, it still gets rid of a lot of stuff I don't need. So it's a very good compromise in that I get rid of a lot of stuff I don't need without risking Slackware breaking.

I have added the following files to my config that is not listed in Slack-in-the-box config.

A Series

efibootmgr (needed for Elilo)
efivar (needed for Elilo)
elilo (needed for Elilo)
gpm (needed if you want to use mouse to copy/paste)
ntfs-3g (needed if you want to mount usb drives formatted with NTFS)

I did not install Openssl 1.0 as I think we should only be running openssl 1.1 now. Hopefully I won't have any issues with running only 1.1 version.

AP Series

Diffutils (when you run slackpkg upgrade slackpkg or slackpkg upgrade glibc-solibs) - it has an error because missing diffsutils

L Series

I removed Consolekit2 as I suspect it came out after this list was created and I don't see it as necessary and it creates an error message looking for polkit library.

N series

IpUtils (so ping etc worked)
libmnl (I could not connect to Internet to update slackware running slackpkg without this - maybe this is new since these lists were created?)
libtirpc (Now required for Slackware Current when you upgrade as Shadow now using PAM)

There are a couple of other files I added/removed eg grub as I use Elilo and I didn't want a couple of apps installed, but these ones listed are the important ones.

At this time, you have to install cracklib, libpwquality, nss-pam-ldapd, Pam and Pam-krb in slackpkg install-new as these files (including libtirpc) are now required when you upgrade Slackware - that is if you want to login again! So these files will need to be added to the list of mandatory files to be installed.

slac-in-the-box 05-24-2020 02:59 PM

Quote:

Originally Posted by dalacor (Post 6126431)
you are supposed to run slackpkg install-new to install any packages that may be required by packages that you have existing and that you upgraded running Slackpkg upgrade-all.

Adding the install-news to the slackpkg blacklist is one of the routine chores with this setup. A dns server's internals don't change that much; it's same package, bind, providing the service. I don't do too much wading through the change logs, but I probably should: if one of the install-news was a new dependency to a new version of bind, my name service would go down with an error, and my network would be screwed until I noticed and fixed it. I don't have any fancy error alerting software and should put some energy that way, instead of flying without a parachute. In this regards, I do benefit from slackware's relative consistency to these core packages.


Quote:

Originally Posted by dalacor (Post 6126431)
I am not convinced that there is any benefit for me in terms of improving speed, security or anything that would make a difference.

Security and storage concerns were my motives. In early 2017. I lost income from a compromised full-install of slackware64-14.2 running on Google Compute Engine. I had to pay for bandwidth for extra communications with china that had nothing to do with me! To mitigate that, I created minimal installs of Slackware64-14.2,each one customized to a specific server's function--like the dns service on the config I shared; on the mysql server, bind is not running, but mariadb is.

I don't consider myself a guru or a master of anything enough to see the complete picture, and viewed all the full-install's extra packages not needed by the specific dedicated service, as potential vectors of attack. So I took the time to eliminate them, so I don't have to experience anxiety about whether the system can be compromised from some extra package I'm ignorant about, which is most all of them!

I also created a minimal install for a reverse proxy server: the first one I tried was pound; but now I'm on nginx--and I've wised up to Google's ways, and switched to Linode.

I'm not sure if it's the introduction to my network of the reverse-proxy service, the minimal installs, the switch to Linode, or some combination thereof; but thankfully I have not had any security issues since.

Minimal installs are also helpful on ancient hardware, or on arm and arm64 architecture that are running on small microSD cards where space is an issue. On my x64 laptop, with the TB drive, I run full install; but on the arm64 pinebook pro with only 128GB, I skipped kde to conserve some space.

Being able to have custom slackpkg blacklists for its variety of deployments makes slackware tight!

elcore 05-24-2020 11:58 PM

Quote:

Originally Posted by slac-in-the-box (Post 6126813)
Being able to have custom slackpkg blacklists for its variety of deployments makes slackware tight!

Isn't blacklist designed to prevent upgrades of installed packages and not to prevent initial installation of packages?
I mean it can easily be used for both, but there is another feature called templates which is designed specifically for deployment:

Code:

        slackpkg [OPTIONS] {generate-template|install-template|remove-template}

dalacor 05-25-2020 04:28 AM

Looking at the manpage of slackpkg I would presume that the template is only used for deploying machines when you are setting them up. In the case of running slackware install-new, I think the blacklist would be more appropriate.

dalacor 05-25-2020 04:40 AM

When Slackware 15 is released, I might just run Slackware 15 stable instead of running current. This would negate the need to run install-new which I think would make running a minimal install much easier to maintain.

I am also in agreement with you in one way that removing packages that I don't need reduces my attack vector. However, someone else said unless the service is running, it can't be used as an attack vector. Simply installing the package doesn't create an attack vector. The service actually has to be running. So he does have a point there. On the other hand, if you are not installing loads of things you don't need, you are not installing libraries that could be "running" that could open up an attack vector.

I also just feel it is silly to install things like mail servers, dhcp servers etc if I am not using those programs.

I.G.O.R 05-25-2020 04:54 AM

There are two questions about definition of minimal:

1. Should network be considered as part of minimal? Is it enough to make it just bootable?

2. Minimal by number of packages or by real content? aaa_elflibs contains a lot of shared objects collected from other packages. Personally, I would not consider such configuration as a minimal.

ponce 05-25-2020 05:05 AM

1 Attachment(s)
everybody has his own definition of minimal based on his use case: what is minimal for one could be too much for someone else or too little for others.

dalacor 05-25-2020 05:27 AM

Minimal could in theory mean anything. The OP themselves said that minimal could mean a system that boots and runs init!

I think it would be pointless debating what minimal means. It would be more accurate to ask what people want to achieve by not running a full install. This would be a more relevant question to ask.

In most cases what people want to achieve, I think would be broadly similar. We want Slackware to work out of the box without error message on boot or being unable to use basic Linux commands. We need it to access the Internet (as almost all user cases would require internet access), we want to be able to update Slakware without issues and last but not least install only the applications that we would actually use!

So generally most users looking for a "minimal install" as described above, would be looking at a configuration similar to what Slack-in-the-box provided where you have a working functional install that can be used by almost everyone without running into dependencies issues and strange error messages etc and problems updating! Yes, you can get more minimal than this, but as my own research this weekend indicated there is a point where a minimal install becomes self defeating and more trouble than it's worth to update. I spent hours troubleshooting slackware using a very minimal install based on Bifferos and Deniro's suggestions and while Slackware booted, updated etc, there were things clearly wrong or missing with the system.

Most people like myself would prefer a compromise "minimal install" where everything works, but you can still eliminate a surprising amount of stuff that is not needed.

I.G.O.R 05-25-2020 06:04 AM

Yes, it's pointless. Even if this minimal system is not universal, but just for a particular machine, it's still possible to modify init scripts and throw away more packages. For example, disabling FS check on boot and removing e2fsprogs from the list (or xfsprogs etc.). Or removing hostname. Still bootable and working environment.

So, the most minimal system is absent system I guess.


All times are GMT -5. The time now is 05:17 AM.