When will I be ready to attempt my own Linux build?
Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
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.
When will I be ready to attempt my own Linux build?
I've been thinking about building myself a slackware or otherwise LFS system as an educational tool. I've been using Linux steadily for the past four months and want to get deeper into it. I know that building your own is the best way to learn the internals, but I'm not sure that I'm ready for that. I'm under the impression that going into it as a complete noob would be frustrating and ultimately unconstructive. What would be a good rough estimate of the amount of experience needed to attempt such a build? I'd rate myself as a fairly competent computer geek, but I'm no whiz kid, and certainly not the kind of guy who locks himself in his room over the weekend to learn string theory.
You've been wanting to dive into the swimming pool. Do you feel you are ready to learn to swim? If so, go right ahead.
The experience needed for LFS is more about carefully following instructions. If you have already done programming and thus used tool-chains to build programs, that can be a help. But if you've never done that, it could take a while to get that kind of experience to where it would help with LFS. But only you can know whether you are ready or not. If you have a spare PC to work on, it's only your time you'd lose if you discover you really aren't ready.
We can't know more about you than you do. Giving it a shot would tell you more about yourself than we ever could.
You won't ever be a whiz kid without trying stuff.
Thanks for the thoughtful reply. I would be interested to know (Skaperen and others) how you yourself came to be a Slackware/LFS user, if you'd be willing to share the story.
I've been getting into Debian and related distros a lot lately, and am wondering whether I should stick to learning those before boldly striking out on my own. So much to learn!
First, Slackware is a much simpler distro than LFS. I myself have never done an LFS build, but found Gentoo to be a great learning Distro. You might give it a try. The portage package management system is very nice. Slackware is also great, easy to use, and learn, but lacks any gui tools to accomplish admin tasks and a great place to start. Although any linux distro will ultimately do the same thing if you are willing to just not use the gui tools. I would give slackware a try prior to LFS, but that's just me. I gave it a try and haven't looked back. It's great
Slackware isn't like LFS, you don't build it from scratch. And it's not a lot more difficult to install and run than Debian, just different. A little more effort needed in configuration, different packaging tools, etc. I haven't got round to trying LFS yet, but I intend to...sometime. Read the LFS book. Only you can tell if you're ready for it.
If your comfortable with the command line and good at following directions it,s not too hard, just time consuming. Would suggest to read instructions first to have an idea of what's going on, and make sure your have all the system requirements if you compiling lfs from another distro. Biggest problem I had was my bad typing.
Slackware isn't like LFS, you don't build it from scratch. And it's not a lot more difficult to install and run than Debian, just different. A little more effort needed in configuration, different packaging tools, etc. I haven't got round to trying LFS yet, but I intend to...sometime. Read the LFS book. Only you can tell if you're ready for it.
Arch Linux it much more DIY than Slackware. And unlike Slackware it has good package management.
I would like to try LFS sometime once my understanding gets to that level, though.
I have dos/win c++ programmer background (but i'm not yet wrote a single line of code in C++ for linux, lately i played with mono/bash scripts). AFAIN compiling programs in linux is easy, just pay attention to README/INSTALL/HOWTO files provided with sources + lib requirements(this is why it's better to add in your system popular distro management tools with good reprosory(deb/ubuntu/slackware(uhh pia with std tools to get all libs for single package, but still good packages)/etc..). Find forums/projects that gather other people with same goal this will provide easy answers for your questions. I have LFS interest too as i planning in future booting up linux kernel/lfs for my X7500 HTC phone.
Ensure you are REALLY comfortable with the cmd line before attempting it. Any distro has xterms or equiv, so get used to that first.
Having a spare system that only boots to level 3 ie no GUI would be a good way to research how it feels.
Practice building stuff from scratch, really learn the make cmd.
chrism01, that's good advice, and probably what I'll end up doing. I definitely have not scratched the surface of what I'm using right now, and could stand to learn more. Arch linux was a good suggestion - I've been intrigued by it, and heard many good things. Thanks all for the thoughts.
I took over my own linux after I got upset with the distro I was using at the time. It wasn't being managed like I hoped it would, upgrades and updates where slow to come, and it had a "least is best" approach that I didn't like. Why strip down everything, I want functionality. So I first replaced everything with self-compiled stuff, then my second system was from the start source only. There is ALOT to learn. Looking back now, I'd say you're ready when:
you can build a package from source using autoconf tools and/or Makefiles
you're comfortable with the command line and don't need a GUI to get things done
you know the basics of C programming - what is an include file, header file, how does compilation work, where do binaries come from
you can fix minor errors in C source files, like a missing semi-colon, or a missing header file or define statement Many source packages ship with basic errors like these that stop them for building
you can use patch, and apply your own patches found in discussions online with developers if need be
you know the care and feeding of shared libraries, static ones, and libtool la files plus ldconfig
you're OK with looking up things in search engines and with reading howto's & manuals
you understand the boot process and its parts
basic shell scripting is known (bonus for Perl, Python, PHP, etc.)
configuring a webserver, ftp server, or mail server sounds like fun to you
you know what the main/basic files are under /etc/ and could re-write them if needed, including the boot scripts
you can make and use a rescue disk and boot disk
you've built and installed your own kernel, compiler, and libc
you know the basics of filesystems and what goes where in the filesystem tree
you've got a good understanding of security and know most of the common attacks systems face
you have a system that isn't super-important to do this with in case of downtime
you know the workings of an X11 system, imake, xservers & clients
you have a system in mind for package management (I just make a directory under /usr/doc with item, version number, and its docs inside)
you're not easily frustrated or give up easy
If the above are mostly a-go, then I'd say try it. I didn't find out about LFS until after I was done building, but looking back now they'd have been a good source to look at when things didn't go quite right.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.