SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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.
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.
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.
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.
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?
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.
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.
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?
@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
Distribution: Slackware (personalized Window Maker), Mint (customized MATE)
Posts: 1,309
Rep:
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.
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
This is absolutely fantastic...not!
That's a bit harsh
Quote:
Originally Posted by sahko
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
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
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
I got a question. So you got a machine with X and network (maybe). WTF NOW?
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.
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.
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.
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
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
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).
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.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.