Ask Slashdot: Creating a "Personal" Linux Distribution? 84
Craigthulu asks:
"I would like to install Linux from the ground
up without using a specific
(i.e. someone else's) distribution (except a
root/boot combination to get things initially
copied). I want to do this so that I become
intimately familiar with what exactly is on
my computer rather than rely on a bunch of
(probably extraneous) software packaged up by
someone else. Hopefully, this completely
DIY method will force me to learn
everything How do I go about finding out
what I need as a bare minimum? Is there a
distribution that would actually meet these
critieria?"
The Bare Minimum (Score:1)
i'd just like to point out (Score:1)
Take a look at man update-rc.d,
The basic concept is that the 'real' init script lives in
For something such as soundon, you don't need to run it with 'stop', so you can either make it have do nothing for stop, or not even look, such as in the
Regarding the printer configuration, the way I've done it in debian is to use the apsfilter package along with gs-aladdin. If your printer is supported by gs-aladdin, it should be relatively painless, as there are simple scripts that run to ask you about your printer & set things up.
Have Fun! (Score:1)
Linux has come a long way since the 0.99 days!
start with a full distro (Score:1)
Just a warning: I started doing this, and never finished. It takes a long time. There's just a lot of grunt work to do.
Yada (Score:1)
^~~^~^^~~^~^~^~^^~^^~^~^~~^^^~^^~~^~~~^
is this the best use of my time? (Score:1)
Besides, the question was not about you, it was about someone else.
---
Something like (Free)BSD Ports? (Score:1)
I'm thinking about trying that OS for the same purpose (learning more about basic OS things and the like, compiling all of your own stuff, so you know what you've got on your machine)
NO flamewars on this subject, *please*, it is just an idea......
Bootdisk HOWTO (Score:1)
Subborn as Hell (Score:1)
I'm tired of having unknown problems and not knowing where to start. Ivan for how extreme he is has a really good point. There is so much freedom from knowing everything that is going on. That to me embodies the concept of owning your own distribution, just like a well marked up textbook that you've gone over a hundred times means you finally own the textbook.
having said that I realize it would be the beginning of unknown problems but it would also be the beginning of the end. These are things my mother doesn't need to know, but for some reason i think i do. Just stubborn too I guess.
^~~^~^^~~^~^~^~^^~^^~^~^~~^^^~^^~~^~~~^~~
is this the best use of my time? (Score:1)
Try FreeBSD! :) (Score:1)
Case in point, we had a setup which needed a large collection of custom patches to work. I added these patches to the system, checked it built, then decided I'd like a CD (like the ones Walnut Creek sells) of the result so I could install it easily). Basically all I did was check in the source into a new cvs repo, then cd
*really* easy.
surprised to hear of this just now.. (Score:1)
ElecMoHwk
Here's how I did it (Score:1)
Create a partition, put in
Then have a look at ftp://ftp.gnu.org/pub/gnu/. You can get most of the packages you need there (including glibc). You don't need a boot disk, you can just use lilo. Lilo, things like mount, and a few other Linuxy packages are not on the GNU site, you need to find them on ftp://metalab.unc.edu/. I remember using util-linux and smallutils (hate GNU false, which returns true when given the --version option).
Build and install enough to get a development environment. This includes at least glibc, gcc, binutils, make, sed, sh-utils, bash, (diff?), fileutils(?), grep, gawk. I am surely forgetting some. But if I told you everything, there would be no challenge, would there?
As someone else pointed out, most GNU packages can be installed onto a new system whose root is not mounted on
If you do have a purely libc5 system to start with, you will have to figure out how to build packages that will work with your new glibc libraries. It is possible to figure out how to do this. The glibc2 faq is helpful. I did it by installing glibc2 under
Always worry about what permissions and ownership the files and directories have.
If you get lost along the way, give up. About three weeks after my installation, when I found myself mounting
My wants were somewhat different (Score:1)
// I have a shell account, which meant I could do away with almost everything related to networking and PPP; planned to use minicom. Anyhow, cleaned house in the DOS partition, backed up, defragged, and used (iirc) FIPS to keep DOS and create new partitions. FIPS has great docs, as I recall. Used DOS telecomm to d/l Debian Base images, and their root.bin and drivers disk images, and maybe their boot disk image as well. Lesson #1: Even though the sizes of the disk images seem to fit onto a floppy, *Don't* use DOS xcopy to transfer from HD to floppy! You *must* use a RaWrite! (RaWrite 3.0 didn't work on mine; there are several.) I think I kept the big Base file on HD, btw.
Followed the Debian installation instructions, and used dselect to remove and add things I wanted. dselect is a pain; also really slow on a 16MHz 386. Try to use apt (?), a new Debian installer. Nevertheless, dselect had one redeeming feature (no, not a bug): It keeps track of all dependencies: What you else you must get but don't have. Well, give it another pat on its huge back: It can actually find the packages you're looking for, even though you had to squeeze the devil out of the original filenames for the packages. Seems that keeping ".deb" will do it, and anything reasonable is OK if it fits the MS-DOS 8.3 format. (I tried to keep key letters as well as all digits if possible; also, of course, delete all dots except that before
Had an exhaustive look at the files (recommended!), and found what I had. I'd recommend installing Midnight Commander immediately, at this stage. Found tons of all-but-useless files in the localization area, some even in triplicate, more or less! Think I also reluctantly ditched all the man pages, saving those in
To get color ls, I snooped around and found the necessary stuff in root's
Debian apparently omitted the support code/files for vga=ask, which I found to be a Big Drag, because I really like 50-line VGA; I can see more at once. 25-line displays are great for 6 people at once, but I'm a loner. Had an exhaustive look at the console fonts, and got rid of those that I didn't want. Found that resizecons didn't work, because the necessary videomode files were missing, but setfont could give me more lines; mc still gave me a full screen's window, as did joe. Needed to do a ^L to clean house fairly often, but that was worth the extra lines.
Also (eventually) had good luck with gpm (mouse) and zgv, the image viewer. Didn't get minicom going yet...
Well, I got overzealous in my pruning, thinking that
i'd just like to point out (Score:1)
that i think this is a really good thread. i've noticed the degridation of the posts lately, and that i'm glad there are still pleasant, helpful people who think before they comment.
as to the problem at hand, i can't help much. i've been running debian for around six months now, and love it. i still haven't set up my printer for my system - it just works in WordPerfect under its HP LaserJet series II emulation (it's an old IBM 4019E, non postscript).
i also haven't figured out debian's boot scripting process. i don't get the different run levels. i want to put things like OSS 'soundon' in my boot scripts. that's why i was reading. sounded like people might know of resources to learn about this (starting basically, and working to more advanced info) - but alas, scripts seem to be a common weak point in the understanding of their systems...
Barebones Linux? Try NetBSD (Score:1)
a barebones distribution of BSD as an
example of what you need for a small
distribution. Other examples would include
going back and looking at the old MCC
distributions. otherwise consider
what tasks you need done:
* a shell (sh compatible preferably)
* shell utils (GNU)
* fdisk
* ext2 utils (mkfs, fsck)
* editor (vi and/or emacs)
* network utils (ifconfig, route, telnet, ping)
* inetd/xinetd/etc
* network server daemons (telnetd, samba, httpd,etc)
* mail system (qmail, sendmail, postfix)
* shared libraries (libc/glibc)
* compiler/linker/assembler (gcc+binutils+.a's)
* xwindows (xfree)
that would be roughly what i would start
with, and it shouldn't be that big.
tomsrtbt... (Score:1)
ME Too (Score:1)
devices.txt / mknod (Score:1)
Debian libc5/libc6 (Score:1)
I'm not sure how well other distros support this, but if you're willing to spend the time, you could maintain a libc5/libc6 development environment on your own, too.
Oh this is fun! (Score:1)
I'd just get a kernel onto a blank filesystem, lilo the kernel so it boots, and then get sash and make it the init program.
That's about as small as I can think of. You can build your system from there. Have fun.
Rolling yer own (Score:1)
Now I have a question, since I am running a libc5 system on the laptop and running glibc on my other system, how do I compile binaries for the laptop? Do I need to just keep a copy of libc5 and compile against that? Do I need to recompile libc? What would the gcc switches be for something like this?
Anyway, its fun when you finally get the thing breathing. I felt like Dr Frankenstein when it booted and gave me a prompt.
Chris
Linux kernel (Score:1)
tomsrtbt... (Score:1)
get GNU/FreeBSD (Score:1)
-Confused
Disk space for personal distribs. (Score:1)
yeah, own distrobutions (Score:1)
Yeah I think there at least needs to be a distro that includes glibc 2.1, kern 2.2.x, xfree86 3.3.3.1, and updates regualry, i mean like the DAY teh stuff comes out. If anyone is interested it might me a cool project. I would like to be involved. I have tried making my own distro, but I do not have enough linux knowledge, so I have failed, twice. heh, but I will someday make a kickass distro that has 'bleeding edge' junk
Linux "Roughcuts" CD from Red Hat (Score:1)
And if you can't find an old Mac or Amiga lying around, there's always NetBSD or Slackware.
Yours in pain,
Kris
Kriston J. Rehberg
http://kriston.net/ [kriston.net]
ME Too (Score:1)
If you really want to start from scratch, start from the kernel:
http://www.kernel.org
from there you can get the basics, like the kernel, init, gnu utilities, and roll your own expert distribution. Most of the documentation is in the tarballs and source code itself and is quite good.
It is a lot of work, but very educational.
Boot disks/Partitions (Score:1)
Bootdisk-HOWTO (Score:1)
Barebones Linux? Try NetBSD (Score:1)
The question is why? (Score:1)
I just did that (over the last two weeks!) moving a very basic Slcakware 3.6 to glibc 2.1/kernel 2.2.2. I've compiled *everything* (binutils, diffutils, all kinds of libraries, Xwindows) and I _am_ quite happy with the results. So much that I'll start canning up stuff into an unofficial glibc based Slackware if and when I get the time.
Now, the question is if it's really worth it. I mean, I _could_ have installed RedHat 5.2+updates. I'm sure I would have finished in much less time. Why did I do it? I'm stubborn as hell. And I _do_ have another machine to work on as stuff compiles into 3-4 am every night
Did it with Slackware. (Score:1)
Warning: It takes a lot of time to stay bleeding-edge this way, but if that turns you on it's the best way to stay more bleeding-edge than anybody else
When I start to trust -mregparm in gcc I might redo it all with my own ABI
Has it ever occurred to you that God might be a committee?
Disk space for personal distribs. (Score:1)
--
linux starter (Score:1)
Tough (Score:1)
find / -type f -print0 | xargs -0 grep regexp
The probability is low, but non-zero, that grep might otherwise receive one argument, and not prefix the output with the filename.
LinuxBSD ??? (Score:1)
A different problem: compiling your own tools (Score:1)
I want to do 'grep regexp `find
Err, not easy but... (Score:1)
speaking of making
--
Ben
IRC: SUidRoot
LinuxBSD ??? (Score:1)
If you are wanting to really 'Roll Your Own,' experience is probably your best bet. There are many dependencies between various libraries and system binaries which you should be aware of. For a good overview, check out FreeBSD's 'make world' which does a source-level rebuild of the base operating system.
As a side-note, I have been working on a source-level Linux distribution based off the free *BSD systems; not a task to be taken lightly since the Linux operating system is quite fragmented when it comes to system-level binaries.
Modern Dist for a Base (RH/Debian) (Score:1)
Bare bone (Score:1)
LinuxBSD ??? (Score:1)
I'm working on about the same thing but in concept so far. I have a computer suitable for testing/development. Also you might want to check with Rock Linux man. (Or maybe you are Rock Linux man).
^~~^~^^~~^~^~^~^^~^^~^~^~~^^^~^^~~^~~~^~~^