LinuxQuestions.org
Latest LQ Deal: Latest LQ Deals
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 10-16-2010, 01:26 AM   #1
x111
Member
 
Registered: Jul 2010
Distribution: Slackware
Posts: 49

Rep: Reputation: 7
My minimal Slackware 13.1 system with X


As a minimalist, I've always been looking for ways to setup a minimal system for every Linux distribution I use. Thing is, however, I have only used 2 distributions so far: Debian Lenny and Slackware. With Debian, I used the 'base system' installation, and after that, I began to build the whole system up with just software packages I wanted to use. Most of the time, I'd been using aptitude with the option '-R' to ignore recommended packages. Although for many in the minimalist world, the use of a package manager is not the 'preferred' kind of minimal approach, but it has helped me a lot by resolving dependencies automatically.

Now when it comes to setting up a minimal Slackware box, things are harder. Slackware is minimal by design, with a minimal package manager named slackpkg, which does its job very well: installing, removing, searching for files in packages, etc... except for one thing: It doesn't resolve dependencies for you. After many tried-and-miserably-failed attempts, I've found these two valuable resources. Among many others, they're very good starting points for a newbie in a world of packages without package managers.

Samac's Super Slimline Speedy Slackware:
http://www.linuxquestions.org/questi...ckware-704866/
Elfo's Slackware-minimal:
http://cybercenter.com.pt/?p=15

Elfo's setup has helped me out a lot with an up-to-date 13.1 minimal Slackware. But it comes without X, and IMHO I don't think that OpenPGP and SSH are essential at this stage. Great thing about Elfo's setup is that after installing Slackware with the tagfiles provided, you have a minimal box running, with network connection. I have to admit that I've never been successful in installing Samac's "slim" Slackware. From Slackware 12.2 to 13.1, the packages has changed just enough for a newbie to feel that adapting this setup to 13.1 is rather too hard for his knowledge. But Samac's done a good job sorting out the necessary packages for X, which saved me lots of efforts to have X up and running in 13.1.

So, after having gathered the result of their work, I removes the unneeded packages, add some new ones for 13.1 and here is the result: Slackware 13.1 with X. Since I have mixed the setups and after having experimenting for a while, all I can do is provide a mixed tagfiles set without being able to tell which packages are needed for the base system and which packages are just for X.
You can have a look at the file list online in the attachment.
Or you can refer to this article on my blog to download the tagfile tarball.

Please also notice that:

- For the sake of convenience I added vim as a text file editor. If this not your preference, please 'SKP' it in the tagfile in 'ap'.
- For X to work, 'glibc-i18n' has to be included. This package has locales for very many languages and costs us about 100MB (~20% total space needed). Please let me know if you have any ideas of an alternative yet official package that can replace it.
- Only the bare bone of X is included. If you want to really "see" X running, install your window manager as well as the packages needed to run it. For example, install d > gcc-g++ and xap > fluxbox if you want to use fluxbox as your window manager.

And yes, your suggestions are more than warmly welcome. Thank you.
Attached Files
File Type: txt filelist.txt (1.9 KB, 109 views)

Last edited by x111; 10-20-2010 at 08:15 AM. Reason: correct typos
 
Click here to see the post LQ members have rated as the most helpful post in this thread.
Old 10-16-2010, 03:16 AM   #2
samac
Senior Member
 
Registered: Mar 2004
Location: Westray, Orkney
Distribution: Linux Mint 17.1
Posts: 1,424

Rep: Reputation: 138Reputation: 138
For the super paranoid security freaks out there here is the list from the previous post
Quote:
Packages in A:

aaa_base: ADD
aaa_elflibs: ADD
aaa_terminfo: ADD
acpid: ADD
apmd: ADD
bash: ADD
bin: ADD
bzip2: ADD
coreutils: ADD
cpio: ADD
dbus: ADD
dcron: ADD
devs: ADD
dialog: ADD
e2fsprogs: ADD
etc: ADD
findutils: ADD
gawk: ADD
glibc-solibs: ADD
grep: ADD
gzip: ADD
kernel-huge-smp: ADD
kernel-modules-smp: ADD
lilo: ADD
logrotate: ADD
module-init-tools: ADD
openssl-solibs: ADD
pciutils: ADD
pkgtools: ADD
procps: ADD
sed: ADD
shadow: ADD
slocate: ADD
sysfsutils: ADD
sysklogd: ADD
sysvinit: ADD
sysvinit-functions: ADD
sysvinit-scripts: ADD
tar: ADD
udev: ADD
utempter: ADD
util-linux-ng: ADD
which: ADD
xz: ADD


Packages in AP:

diffutils: ADD
nano: ADD
slackpkg: ADD
vim: ADD

Packages in L:

dbus-glib: ADD
glibc: ADD
hal: ADD
hal-info: ADD
ncurses: ADD

Packages in N:

dhcpcd: ADD
iputils: ADD
net-tools: ADD
network-scripts: ADD
wget: ADD

Packages in X:

font-alias: ADD
font-cursor-misc: ADD
font-misc-misc: ADD
font-util: ADD
fontconfig: ADD
libICE: ADD
libSM: ADD
libX11: ADD
libXScrnSaver: ADD
libXTrap: ADD
libXau: ADD
libXaw: ADD
libXcomposite: ADD
libXcursor: ADD
libXdamage: ADD
libXdmcp: ADD
libXevie: ADD
libXext: ADD
libXfixes: ADD
libXfont: ADD
libXfontcache: ADD
libXft: ADD
libXi: ADD
libXinerama: ADD
libXmu: ADD
libXp: ADD
libXpm: ADD
libXprintAppUtil: ADD
libXprintUtil: ADD
libXrandr: ADD
libXrender: ADD
libXres: ADD
libXt: ADD
libXtst: ADD
libXv: ADD
libXvMC: ADD
libXxf86dga: ADD
libXxf86misc: ADD
libXxf86vm: ADD
libdrm: ADD
libfontenc: ADD
libpciaccess: ADD
libxcb: ADD
libxkbfile: ADD
pixman: ADD
x11-skel: ADD
xauth: ADD
xcursor-themes: ADD
xdg-utils: ADD
xdm: ADD
xev: ADD
xf86-input-evdev: ADD
xf86-input-keyboard: ADD
xf86-input-mouse: ADD
xf86-video-intel: ADD
xf86-video-vesa: ADD
xhost: ADD
xinit: ADD
xinput: ADD
xkbcomp: ADD
xkbevd: ADD
xkbprint: ADD
xkbutils: ADD
xkeyboard-config: ADD
xmessage: ADD
xmodmap: ADD
xorg-server: ADD
xproto: ADD
xrdb: ADD
xsetmode: ADD
xsm: ADD
xterm: ADD
Looks good but what are you using for your desktop. I used Blackbox as it had no dependencies. At the moment it seems only to be X ready rather than bootable to X.

samac
 
1 members found this post helpful.
Old 10-16-2010, 07:50 AM   #3
sahko
Senior Member
 
Registered: Sep 2008
Distribution: Slackware
Posts: 1,041

Rep: Reputation: Disabled
This is absolutely fantastic...not!
Not only this setup is barely usable for the majority of work case scenarios,
for example you cant even browse the web even with links, send email even with mutt,
so i am wondering what kind of desktop are we talking about here.
You skip all of d/, so you cant really build any additional packages, with this
kind of setup you cant really count on prebuilt packages to work, so you cant really
add any additional packages to it.
This is further insane, cause even if its so streamlined, it manages to include many
uneeded duplicate packages!
I got a question. So you got a machine with X and network (maybe). WTF NOW?
 
Old 10-16-2010, 02:00 PM   #4
Richard Cranium
Senior Member
 
Registered: Apr 2009
Location: Carrollton, Texas
Distribution: Slackware64 14.2
Posts: 3,719

Rep: Reputation: 2067Reputation: 2067Reputation: 2067Reputation: 2067Reputation: 2067Reputation: 2067Reputation: 2067Reputation: 2067Reputation: 2067Reputation: 2067Reputation: 2067
Quote:
Originally Posted by sahko View Post
This is absolutely fantastic...not!
Not only this setup is barely usable for the majority of work case scenarios,
for example you cant even browse the web even with links, send email even with mutt,
so i am wondering what kind of desktop are we talking about here.
You skip all of d/, so you cant really build any additional packages, with this
kind of setup you cant really count on prebuilt packages to work, so you cant really
add any additional packages to it.
This is further insane, cause even if its so streamlined, it manages to include many
uneeded duplicate packages!
I got a question. So you got a machine with X and network (maybe). WTF NOW?
Did you even read the original post? The OP specifically stated what he was doing and why, even mentioning that you'd need to choose whatever WM that you would want to use. The setup provides networking and an editor to change config files. Anything above the minimal system is for you to add.

Sheesh.
 
Old 10-16-2010, 02:02 PM   #5
T3slider
Senior Member
 
Registered: Jul 2007
Distribution: Slackware64-14.1
Posts: 2,367

Rep: Reputation: 841Reputation: 841Reputation: 841Reputation: 841Reputation: 841Reputation: 841Reputation: 841
Unless my brief calculations are incorrect (note that I made these based on 13.0's packages and not 13.1's, but I would suspect they would be similar in size), this installation would only take up about 487M. That's a pretty lean system, and even adding other packages that you may need you may be able to keep it under 700MB. I haven't tried it to make sure it works properly but it's a nice base system upon which customizations can be added, assuming it works.
 
Old 10-16-2010, 03:33 PM   #6
sahko
Senior Member
 
Registered: Sep 2008
Distribution: Slackware
Posts: 1,041

Rep: Reputation: Disabled
Quote:
Originally Posted by Richard Cranium View Post
Did you even read the original post? The OP specifically stated what he was doing and why, even mentioning that you'd need to choose whatever WM that you would want to use. The setup provides networking and an editor to change config files. Anything above the minimal system is for you to add.

Sheesh.
Thats what i said too. You have X (with a WM) and maybe network. What do you do with that without ANY applications?
 
Old 10-17-2010, 02:15 AM   #7
x111
Member
 
Registered: Jul 2010
Distribution: Slackware
Posts: 49

Original Poster
Rep: Reputation: 7
@sahko: Yes, a minimal system like this is exactly useless. It is built with the only purpose of being a base on which you can add more software packages to suit your specific needs, without worrying about any redundant packages. You can see an example here, where elfo added some packages via tagfiles and turn his minimal setup into a LAMP server.
http://cybercenter.com.pt/?p=86

My minimal setup here mainly added X server and packages it requires so that if you want the box to be graphical, you won't have to resolve the dependencies for X-server yourself. (But you will have to do so for the applications of your choice).

@samac: xinit is included therefore if we have a window manager and adjust the xinitrc script accordingly, we can have X with startx. AFAIK, fluxbox need gcc-g++ to run and they two add about 40MB to the hard drive. I've just tested that.

@T3slider: I've just checked again and the initial space required is 544MB. Hope this is not bad

Many thanks to all of you. I'd love to know if there are some packages I can remove and still leave the system as well as X-server up and running. As most slackers build some packages from source, do you think that it'll be more convenient to include some or all packages in 'D' in the setup?

Last edited by x111; 10-20-2010 at 08:17 AM. Reason: correct typos
 
2 members found this post helpful.
Old 10-17-2010, 03:37 AM   #8
w1k0
Senior Member
 
Registered: May 2008
Location: Poland
Distribution: Slackware, Mint
Posts: 1,276

Rep: Reputation: 229Reputation: 229Reputation: 229
Well done, x111! I think each user has his or her own preferences. Your minimal system is a bare bone. The other Slackware users can add to it some flesh here and there.

Here's my Minimal system – Slackware jukebox. Since I published that post I removed useless flac (moc doesn't recognize that format) and I added openssh (now I can control my jukebox through the local network). As for A series I was too lazy to precisely select necessary packages so I just omitted a few biggest ones.
 
Old 10-18-2010, 08:04 AM   #9
Slax-Dude
Member
 
Registered: Mar 2006
Location: Valadares, Portugal
Distribution: Slackware
Posts: 451

Rep: Reputation: 208Reputation: 208Reputation: 208
Quote:
Originally Posted by x111 View Post
I don't think that OpenPGP and SSH are essential at this stage.
OpenPGP?
SSH is there because since we have network, it's useful to remote control our box, and it doesn't take much room
I had a purpose when I made "my idea of a minimal slackware system": have hardware detection + network + slackpkg + ssh, with a minimum package count as possible.
Of course that things like a logger were added because it's useful and don't take much space.

Quote:
Originally Posted by sahko View Post
This is absolutely fantastic...not!
That's a bit harsh
Quote:
Originally Posted by sahko View Post
Not only this setup is barely usable for the majority of work case scenarios,
for example you cant even browse the web even with links, send email even with mutt,
so i am wondering what kind of desktop are we talking about here.
Like the OP said, this is not a desktop system, but rather a bare-bones system where you can add one (or more) window manager(s).

Quote:
Originally Posted by sahko View Post
You skip all of d/, so you cant really build any additional packages
"slackpkg install d" will take care of that "problem"
Quote:
Originally Posted by sahko View Post
with this
kind of setup you cant really count on prebuilt packages to work, so you cant really
add any additional packages to it.
Why not?

Quote:
Originally Posted by sahko View Post
I got a question. So you got a machine with X and network (maybe). WTF NOW?
Now you "slackpkg install WTF_else_you_want"
 
Old 10-18-2010, 03:31 PM   #10
sahko
Senior Member
 
Registered: Sep 2008
Distribution: Slackware
Posts: 1,041

Rep: Reputation: Disabled
OK, my sincere apologies for the quite tempered writing of my above post in this thread.

I will post the duplicates i found in the above package list and be done with it.

aaa_terminfo files are also provided by ncurses
apmd is abolutely useless for any modern machine (more recent than ~ 2000 AD)
devs is useless is you use udev
glibc-solibs files are also provided by glibc
sysvinit-functions is useless if you dont need stuff like vmware (and other mostly proprietary applications, but i have no idea which)
theres the obvious duplication of editors in ap/
xf86-input-{keyboard,mouse} are useless if you run a hal (or udev) enabled xorg-server which uses input hotplugging using xf86-input-evdev for all of them.
 
1 members found this post helpful.
Old 10-19-2010, 01:44 AM   #11
gnashley
Amigo developer
 
Registered: Dec 2003
Location: Germany
Distribution: Slackware
Posts: 4,899

Rep: Reputation: 579Reputation: 579Reputation: 579Reputation: 579Reputation: 579Reputation: 579
You can save about 150MB by using glibc-solibs instead of the full glibc package. glibc includes all the files from all the different glibc-* packages -the files in glibc-i18n make up the bulk of the glibc package.
 
1 members found this post helpful.
Old 10-19-2010, 05:34 AM   #12
x111
Member
 
Registered: Jul 2010
Distribution: Slackware
Posts: 49

Original Poster
Rep: Reputation: 7
Slax-Dude: You must be elfo
Sorry, I meant GnuPG, GnPG2, and SSH, which are convenient for managing a remote system. I would exchange them for 'man', 'groff' and 'less' to have man pages available, but you have your point. That's fine.

sahko, gnashley: Thanks for your valued inputs. I think I'll go experiment around with the packages now, and will post back the result here to keep you informed.
 
Old 10-19-2010, 07:59 AM   #13
Slax-Dude
Member
 
Registered: Mar 2006
Location: Valadares, Portugal
Distribution: Slackware
Posts: 451

Rep: Reputation: 208Reputation: 208Reputation: 208
Quote:
Originally Posted by x111 View Post
Slax-Dude: You must be elfo
Yes I am
Quote:
Originally Posted by x111 View Post
Sorry, I meant GnuPG, GnPG2, and SSH, which are convenient for managing a remote system.
GnuPG and GnuPG2 are used by slackpkg to check the authenticity of the downloaded packages. You can, of course, turn off this feature on the slackpkgs.conf file and you will no longer need these packages.
Quote:
Originally Posted by x111 View Post
I would exchange them for 'man', 'groff' and 'less' to have man pages available, but you have your point. That's fine.
Well, you can always use slackpkg to install additional packages to make your particular setup work.
That's why wanted a fully functional slackpckg: so anyone can easily extend the base system and turn it into whatever they like, from a simple web-server to a full install
 
Old 10-19-2010, 12:40 PM   #14
gnashley
Amigo developer
 
Registered: Dec 2003
Location: Germany
Distribution: Slackware
Posts: 4,899

Rep: Reputation: 579Reputation: 579Reputation: 579Reputation: 579Reputation: 579Reputation: 579
I used to maintain a minimal-install webpage. What I did was try to refine the definition of minimal to the lowest common denominator and then show additional lists which would add X-functionality etc.
To me, minimal means that the thing will boot 'cleanly' on normal loacl hardware. This means that a full evaluation of the init scripts will show you just waht is needed to get you from lilo/grub through to login. Such a list does not even include elvis! Of course, unless you are building a Linux 'appliance', you'll want to include the basic tools necessary to expand the installation -pkgtools, tar and gzip or xz. Again, assume that you have a CD with additional packages.

The point is that *nobody* will be satisfied with such a minimal system and will want to expand it accorsing to their own needs/desires. I developed my lists as a way of learning what makes the system tick, so my very narrow definition of minimal was the only one that made sense. Back then (slackware-9.1 or so), such a minimal system consisted of just over 30MB installed -and the version with pkgtools & Co, was 42MB. That was using only complete standard packages. Of course any system could be further reduced by removing individial programs, man-pages or docs, but my goal was not really to create the smallest possible system -I simply wanted to know how it all fit together -what was really essential.

I guess I learned what I wanted to as I've never since done a 'full' install. Even today, I'm sure that a bootable/log-innable system could be created in around 100MB -on a small unjournalled file system -remember that journals and block sizes will have an effect on what 'df' reports as being used.

To the OP, your list of X packages is way more than what is even close to minimal, but fo course your list is quite rational for most users.
You don't need top install g++ to use fluxbox -you need the runtime libs from cxx-libs.

As for cutting down the size of glibc-i18n, I created a build script for glibc which breaks the i18n package into about 400 packages -each containing just one locale. If you like the sound of that, I'll send you a copy of the script -you install any chosen locale plus one or two which contain the general parts of i18n which are used by any locale.

If what you really want is to cut down the size of installation regardless of how many packages are used and you don't mind more 'brutal' methods, you can install this package:
http://distro.ibiblio.org/pub/linux/...3-noarch-1.tgz
localepurge will remove all locale files and 'foreign' man-pages except for those locales you specify in the conf file. The last time I checked the results, it removed over 150MB from a 900MB base+X+devel system.

You can also do like Pat used to do for zipslack and remove all static libs (*.a) and header files (under /usr/include).

Happy hunting!
 
1 members found this post helpful.
Old 10-20-2010, 07:58 AM   #15
x111
Member
 
Registered: Jul 2010
Distribution: Slackware
Posts: 49

Original Poster
Rep: Reputation: 7
I've removed these packages and am still OK:

Code:
aaa_terminfo
apmd
sysvinit-functions
xf86-input-keyboard
xf86-input-mouse
libXScrnSaver
libXcomposite
glibc
glibc-i18n
Of which, the last two saved 130MB. Great!
I could start fluxbox with cxxlibs, which needed only 3MB instead of gcc-g++, which costs about 19MB.
sahko, sadly I couldn't remove devs as 'startx' compained about missing some '/dev/tty1' stuff.

Thank you for the useful insights, gnashley. I think I'll stick to the official packages because the idea is: if a user happens to have these tagfiles, he can easily use them with an official Slackware installation CD he's obtained somewhere else.

I have added these new packages: groff, man, less, cxxlibs (needed for groff) and gnupg.
@Slax-Dude: I found that only gnupg is needed for slackpkg and have addded it back. I mistook it for a dependency for ssh, which I didn't include. Thank you very much.
@w1k0: Nice and lean music box. I've bookmarked it.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Slackware minimal system Lexus45 Slackware 11 08-12-2011 05:48 PM
Create a minimal Slackware LiveUSB system. MysticalGroovy Slackware 4 11-07-2009 04:11 AM
Minimal Slackware training system Fritz_Monroe Slackware 12 06-18-2005 06:00 PM
Basic (Minimal) System adriandaz Linux - Software 6 06-13-2004 02:18 PM
Minimal Linux system from current system tgardner Linux - Software 1 04-07-2003 08:37 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 02:56 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration