User: Password:
Subscribe / Log in / New account

Related projects

Related projects

Posted May 20, 2004 8:08 UTC (Thu) by dank (guest, #1865)
Parent article: Learning with Linux From Scratch

LFS is great stuff. Its focus on good documentation is wonderful.

However, once you learn what LFS teaches, and you want to use it in a production environment, you really want to have an automated build process stored in a source code control system, not a book. (At least I do. Having an automated build means being able to sleep at night without worrying you forgot a step...)

It's worth mentioning two projects with similar "build it all from scratch" goals as LFS, but which focus on automated rather than manual build.

ptxdist is a tiny, 100% cross-compiled distribution of Linux by Robert Schwebel. Without any chroot'ing or rebooting, it builds an entire small Linux system from pristine source tarballs with the bare minimum set of patches.

crosstool is my smallish shell script that builds a gcc/glibc toolchain entirely from pristine source taballs with the bare minimum set of patches. It supports most recent or interesting binutils, gcc, and glibc versions, and just about every CPU type glibc supports. If you're so inclined, you can easily use it to build Linux-targeted distributed compile farms regardless of whether your workstations run Linux, Windows, MacOSX, or Solaris. Lots of folks who normally would prefer downloading a precompiled toolchain are finding that it's easy to build their own with crosstool.

The two independent projects share a common patch repository containing just the bare minimum patches for gcc, glibc, and binutils to get the toolchain to compile and work (many are simply small patches pulled from the upstream cvs).

(Log in to post comments)

For a full distribution, try Gentoo

Posted May 20, 2004 12:33 UTC (Thu) by Duncan (guest, #6647) [Link]

Then of course, when one wants a full distribution with an automated build
process but still self compileable, one can turn to the source based
meta-distribution, Gentoo. Or, go the other way, and move to Gentoo from
a traditional binary distribution, as many do when they want more control.
Gentoo supplies the first part, the staticly compiled host system, for
you, as a bootable LiveCD, or you can do the chroot thing and build from
an existing host system (as I'm doing). In either case, if one chooses a
stage-one install, the initial stage-one tarball includes the first
statically compiled base system utils (as necessary for configuring and
compiling the rest of the system), device nodes, boot scripts, file system
layout, and GCC. One compiles the second round of the base tools from
there, after which you are at stage-two (also available in tarball form,
for those that don't want to bother with the basics). From there, one
compiles the base system applications for which there isn't a lot of
alternative (including things like perl, python, the manpage system, etc),
ending up at stage three (again also available as a tarball, for those
wishing to take the simple shortcut route).

A stage-three Gentoo system has all the basics for which there is little
choice, but remains barely functional, not even including a syslogger, as
there are several choices available. However, this is where life gets
interesting, as one can begin to make choices on packages, not just the
features to include on packages that MUST be installed. This is where
Linux from Scratch and other basic systems leave off, but it's where
Gentoo really begins, as one now chooses the packages for the rest of
their system, and compiles and installs them, using Gentoo's source based
but automated and dependency checked Portage build system, with its two
base commands, emerge, which does the high-level stuff such as dependency
checking, and ebuild, generally called by emerge, but also usable on its
own, to fetch, unpack, configure, compile, and install, individual
packages. The latter command, ebuild, is especially useful for those
wishing to do additional customization either to the applied patches, or
to the configure and compile, before installation.

I'm personally in the process of moving from Mandrake to Gentoo, because I
wanted the faster availability and more continuous upgrade cycle of
Gentoo, and was ready for the greater level of control and higher level of
configurability it offered. (Tho Mandrake isn't to bad itself, if one
chooses to compile from SRPM rather than install the binaries directly,
and then takes advantage of the additional configuration options available
when doing so, and if one runs x86. However, availability of upgrades
still lags, on anything but x86, the big reason I'm switching, as I run
x86_64 aka AMD64, rather less well supported by Mandrake, to date, with
KDE 3.2 missing on the platform well after KDE 3.2.1 was released
upstream, tho it's available now.)

(Hard at the process of discovering the advantages and rising to the
challenges of a new-to-him distribution! =:^)

Related projects

Posted May 21, 2004 8:48 UTC (Fri) by ca9mbu (guest, #11098) [Link]

If you're after an automated way of installing LFS then I'd like to recommend nALFS. It is intended that this will become the primary testing tool for LFS releases, in order to maintain the quality of our releases across a range of architectures. Although this automates the install, it doesn't provide any kind of package management. For that, BLFS outlines some of the issues involved, and points the avid reader to the Hints project where several package-management tools are discussed in more detail.


Matt Burgess
LFS Coordinator.

Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds