diff options
author | James Meyer <jams@linhes.org> | 2010-12-04 23:44:45 (GMT) |
---|---|---|
committer | James Meyer <jams@linhes.org> | 2010-12-04 23:44:51 (GMT) |
commit | f51fb708846d13222bd97b3f760eb3be902c0be0 (patch) | |
tree | ad25ff81828f12cb7da86384863e163cb4e001f2 /build_tools/clarch/larch/docs/html/larch_overview.html | |
parent | 4384efe238cdfeac86fae0d8e1097a409350f8c6 (diff) | |
download | linhes_dev-f51fb708846d13222bd97b3f760eb3be902c0be0.zip |
remove old versions of larch 6 and 7
Diffstat (limited to 'build_tools/clarch/larch/docs/html/larch_overview.html')
-rw-r--r-- | build_tools/clarch/larch/docs/html/larch_overview.html | 383 |
1 files changed, 0 insertions, 383 deletions
diff --git a/build_tools/clarch/larch/docs/html/larch_overview.html b/build_tools/clarch/larch/docs/html/larch_overview.html deleted file mode 100644 index 3bf38fb..0000000 --- a/build_tools/clarch/larch/docs/html/larch_overview.html +++ /dev/null @@ -1,383 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html> -<head> - <meta content="text/html;charset=UTF-8" http-equiv="Content-Type"> - <title>larch overview</title> - <meta content="gradgrind" name="author"> -</head> - -<body> -<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> - <tbody> - <tr> - <td><a href="larch_quick.html">Previous: Quick start</a></td> - - <td><a href="larch_docindex.html">Table of Contents</a></td> - - <td><a href="larch_profiles.html">Next: Profiles</a></td> - </tr> - </tbody> -</table> - -<br /> - -<h1><big>larch</big> -– -a do-it-yourself live <em>Arch Linux</em> CD</h1> - -<img style="border: 0px solid ; width: 320px; height: 320px;" alt="" src="larch1.jpg" - name="graphics1" align="right" hspace="10" vspace="10" /> -<br /><br /> - -<h2>Overview of the <em>larch</em> build system</h2> -<br /> - -<blockquote> -<h3>Warning</h3> - -<p><em>Before we get started I should point out that most of the scripts need to -be run by the 'root' user. That is quite normal for an installer, but it is somewhat -risky - a slight slip and all sorts of damage could be done. Ideally you would -have a machine specially set aside for this sort of thing, i.e. one without any -important data on it. <strong>You have been warned!</strong></em> -</p> -</blockquote> - -<h3><a name="larch_installation"></a>Installation of the <em>larch</em> build system</h3> - -<p>The <em>larch</em> package may be installed in the normal <em>Arch Linux</em> way using -<em>pacman</em>. This method will only work on an <em>Arch</em> system, of course. -</p> - -<p>Alternatively, <em>larch</em> may be used without installing it. -This should also work on non-<em>Arch Linux</em> systems. Download -<a href="ftp://ftp.berlios.de/pub/larch/larch5.3/i686/larch-setup"><strong>larch-setup</strong></a> -to an empty working directory and run it (it is a shell script). This will in -turn download and unpack the current larch package, setting up symlinks so that -the build scripts can be run from this working directory. -If you don't put this new directory on your 'PATH', you may well -need to add a path prefix when running it (e.g. './mklarch' if your current -directory is the one containing the script). -</p> - -<h3><a name="larch_using"></a>Using the <em>larch</em> build system</h3> - -<p>For building a live medium from a 'profile' you need, primarily, <strong>mklarch</strong>; -for building from an existing installation (including rebuilding after using -<strong>mklarch</strong>) <strong>larchify</strong>. <strong>mklarch</strong> -uses <strong>inpacs</strong> to do the actual installation of the packages, -and the functions for performing the live CD creation are in the file -(larch/)<strong>buildlive</strong>. -</p> - -<p>Unlike a normal installation, that used by larch need not be a separate partition, -it can be placed anywhere convenient. -The default installation directory ('/home/larchroot', variable 'INSTLDIR' in the scripts) -should normally be acceptable (the building work is done in the '.larch' sub-directory). -Note that lots of space is necessary in ${INSTLDIR}, nearly 4GB for a 700MB CD. -</p> - -<h3><a name="running_mklarch"></a>Quick <strong>mklarch</strong> overview</h3> - -<p>That first stage is very much like a normal <em>Arch</em> installation to a -partition - which is another possibility with the <strong>inpacs</strong> script. -A couple of small tweaks are made to this base installation to make it more -convenient for live CD/USB use: some glibc locales are generated (set by the file -locale.gen in the profile) and, if <em>openssh</em> is installed, the initial -ssh-keys are generated. -</p> - -<p>Before <strong>mklarch</strong> can be used a 'profile' for the live medium must -be built. This is a folder containing configuration files determining which packages -are installed, which glibc locales are installed, and generally which files should -be customized. Further details are given in <a href="larch_profiles.html">'Profiles'</a>. -</p> - -<p>A simple way to build an iso would then be: -<pre style="margin-left: 80px;">./mklarch -p myprofile</pre> -</p> - -<p>To build a live USB-stick using GRUB to boot and using the <em>pacman</em> -databases as they exist on the build host (rather than the default of -downloading the latest databases using 'pacman -Sy'): -<pre style="margin-left: 80px;">./mklarch -p myprofile -y /var/lib/pacman -ug</pre> -</p> - -<p>The build process can be stopped after the <em>Arch</em> system installation (before building -the 'squashed' live system) by passing the '-a' option to <strong>mklarch</strong>. -All the available options can be seen by running 'mklarch -h'. -</p> - -<p>The rest of the build process is handled by the functions in -<strong>buildlive</strong>, primarily <em>mklive</em>, -which puts all the various components together into a CD image at -'${INSTLDIR}/.larch/cd', then using the <em>build_iso</em> function -to create the iso or (using the <strong>usbboot</strong> script) to prepare -a bootable USB-stick. -</p> - -<p>If you set up your configuration -wrong (or if you or I made some other mistake ...), you might find -you have destroyed some important data and/or your system doesn't -work any more. But that's life - Share and Enjoy! -</p> - -<h3><a name="running_larchify"></a>Quick <em>larchify</em> overview</h3> - -<p><strong>larchify</strong> uses the functions in <strong>buildlive</strong> to -build a live medium from an existing <em>Arch Linux</em> installation. It can also be -used to rebuild a (posibly altered) live medium from the installation arising -from the use of <strong>mklarch</strong>. For example, after building an iso -using <strong>mklarch</strong>, you might want to build another with the same packages -but with a changed overlay - maybe an alteration to rc.conf. In that case you -could make the necessary changes to the profile and call: -<pre style="margin-left: 80px;">./larchify -rp myprofile</pre> -The '-r' option causes the old squashed image to be used, which can save a lot -time. To see all the options run './larchify -h'. -</p> - -<h3><a name="Minimal_build_system_requirements"></a>Minimal build system requirements</h3> - -<p>The <em>larch</em> scripts have been designed to work without heavy -demands on the build system. Although they have been developed under <em>Arch Linux</em>, -they should run on other <em>GNU/Linux</em> systems. The required software has been -kept to a minimum by means of a sort of bootstrapping - some of the build -functions are carried out on the newly installed <em>Arch</em> system using <em>chroot</em>. -For example, you do not need support for <em>squashfs</em> or <em>aufs</em> on -the build system. <em>bash</em>, <em>mkisofs</em> and <em>wget</em> -are assumed to be available (for building a USB-stick version with syslinux you -also need <em>mkfs.vfat</em> from the 'dosfstools' package). If you are not -running <em>Arch Linux</em>, the installation script -(<strong>larch-setup</strong>) will set up pacman using a special package -available from the larch repository (pacman-packed.tar.gz), which contains -in addition to the pacman binary the run-time libraries it needs. -</p> - -<h3><a name="pacman_conf"></a>'pacman.conf' for building and live system use</h3> - -<p>You also need an appropriate 'pacman.conf' file. On a non-<em>Arch</em> system, -unless a pacman.conf is already present in the working directory, this will be -created afresh and a dialog will be presented by <strong>larch-setup</strong> -to select a mirror. Because of potential overwriting (see below) this file -is also copied to pacman.conf.0 (also in the working directory). -</p> -<p>On an <em>Arch</em> system it is assumed that you have already configured your -mirrors appropriately, and the system '/etc/pacman.conf' can be taken. -</p> -<p>When there is a 'pacman.conf' in the profile (base directory, not overlay), -this will be copied to the working directory and used by <em>mklarch</em> -for performing the installation, even if -there was already a version in the working directory. The 'pacman.conf' in -the resulting live system will also be this version if built using -<em>mklarch</em> (i.e. taken from the resulting file in the working -directory). If <em>larchify</em> is used the existing '/etc/pacman.conf' -within the system to be larchified will be used. However, if the overlay in -the profile has its own '/etc/pacman.conf' this will (in both cases) be -used in preference. -</p> -<p>Additionally, an 'IgnorePkg' line is added to the live system's '/etc/pacman.conf', -for 'kernel26', 'aufs' and 'initscripts'. Packages listed in the 'noupdate' file -in the profile, will also be added. -This line will be removed on installation using <em>larchin</em>. -</p> - -<h3><a name="Squashfs_and_Unionfs"></a>squashfs and aufs</h3> - -<p>The newly installed system is made into a <em>squashed</em> file-system in the -file <strong>system.sqf</strong>. This is mounted as the lower layer of a <em>union</em> -(<em>aufs</em>) file-system. On top of that there is a writable -<em>tmpfs</em> so that the file-system as a whole appears writable. An 'overlay' -archive is copied into the writable layer. As this top layer is compressed using -<em>lsop</em>, this package must be installed in the target. -Of course only the <em>tmpfs</em> top layer can actually be written to, -and its contents disappear when the system reboots, so the writing is only -temporary. -</p> - -<p>There is also a second overlay archive, a squashed file system which forms -the middle layer of the union file-system, which increases the flexibillity of -the session saving facility. -</p> - -<p>In order to boot into a system constructed in that manner, you need an -<em>initramfs</em> which deals with mounting all the various bits in the right -way before entering the normal boot sequence. In <em>larch</em> the -<em>initramfs</em> is built using the standard <em>Arch</em> 'mkinitcpio' system, for -which special 'hooks' (essentially code plug-ins) have been developed to -manage the requirements of a <em>larch</em> live system. -</p> - -<h4><a name="aufs"></a>aufs as an alternative to unionfs</h4> -<p><em>larch</em> was initially designed around <em>unionfs</em>, but since then -<em>aufs</em> has been generally a more reliable alternative, and is now -available as a package in <em>Arch Linux</em>. In order to use <em>aufs</em> its -kernel module needs to be installed (which, if using <em>mklarch</em>, can be -achieved by placing package 'aufs' in <strong>addedpacks</strong>), the rest -will then be handled automatically. <strong>N.B.</strong> As <em>unionfs</em> -hasn't been tested for a long time (all development work is done using -<em>aufs</em>) and the current 'overlay merge' only works with <em>aufs</em>, -it is strongly recommended that <em>aufs</em> be used. -</p> - -<h3><a name="Partial_rebuilding"></a>Partial rebuilding</h3> - -<p>If you make some changes to a build which don't require a renewed -installation (the <em>Arch</em> installation in '${INSTLDIR}'), you can use the -<strong>larchify</strong> script to rebuild the system. Such changes might -be tweaks to the overlay, or 'rcconfx', for example (but note that the glibc -locales are in the installation so if you want to change these, you have to rerun the -whole installation, or handle that manually). If - as is likely - the squashed system -from the previous build is still there and is still valid, -this can be reused by passing the '-r' option (thus saving the time required to -squash the system). -</p> - -<p> If you only make changes to files in '${INSTLDIR}/.larch/cd', you can rebuild -the iso using the '-i' option to <strong>larchify</strong>. But be aware that -some of the files in the directories 'isolinux' (when using the -<em>isolinux</em> bootloader) and 'boot' (when using the <em>GRUB</em> bootloader) -are renewed from 'larch/cd-root' and the 'cd-root' directory in the profile. -</p> - -<p><em><strong>N.B.</strong> Even though the <em>Arch</em> installation is -in principle now redundant, you shouldn't delete it if you want to do a quick -rebuild using <strong>larchify</strong>, because this installation is used (via 'chroot') -for some of the build functions.</em> -</p> - -<h3><a name="Custom_packages"></a>Custom packages</h3> - -<p>It is possible to include your own 'custom' packages in the installation. -Maybe ones you have compiled yourself, e.g. from the AUR, or modified versions -(fixes or customizations) of standard packages. To do this you need to put your -packages in a directory and run <strong>gen-repo</strong> - which requires python - -on this directory (run it without arguments to get usage instructions). Then place -an entry for this new repository in your 'pacman.conf' (in the profile or else -in the working directory). -If your packages replace some in the existing repositories, your custom -repository needs to come before those repositories in 'pacman.conf'. -Any packages you want installed now just need to be -listed in <strong>addedpacks</strong>. -</p> - -<p>It is not necessary to build a custom kernel for <em>larch</em>, the -standard kernel ('kernel26') can be used. It includes <em>unionfs</em> -and <em>squashfs</em> modules, and is now included in the set of 'base' -packages. If <em>aufs</em> is desired (which is likely, as at the time of writing, -<em>unionfs</em> didn't work very well), this must be included in -<strong>addedpacks</strong>. -</p> - -<h3><a name="Generating_the_basepacks_list"></a>Generating -the <em>basepacks</em> list</h3> - -<p>In case the base package set changes, <strong>inpacs</strong> uses the list -provided by 'pacman -Sg base' by default. However, if there is a 'basepacks' -file in the profile this will be used to supply the list of base packages -(one package per line). -</p> - -<p><strong>inpacs</strong> can also be used separately for <em>Arch</em> installation. -To get a full listing of possible options run it without arguments (note that -it pays no attention to profiles, all options must be passed explicitly). -</p> - -<p>It is possible to filter out certain unwanted packages from the base set. -In most cases the default setting will be satisfactory, but you can change it by -placing a 'baseveto' file (one package per line) in the profile directory. -Be aware, however, that vetoed packages will be installed anyway if they are -required by some other installed package. -</p> - -<h3><a name="addedpacks"></a><em>addedpacks</em></h3> - -<p>This group of packages is the main place for defining your system. -Here you can enter all the applications you would like in your live CD/USB system -(and subsequently installed to a hard disk partition, if that was your intention). -Thanks to <i>pacman</i> you don't need to sort out dependencies, -these should all be included automatically. It is (still) possible to -squeeze (or rather 'squash') quite a respectable quantity of software -onto a CD - my first experiments included most of <i>KDE</i>, -<i>OpenOffice</i>, <i>K3b</i>, <i>GIMP</i>, and quite a lot -besides.</p> - -<h3><a name="Installation"></a>Installation of the initial system</h3> - -<p>The foundation of the <em>larch</em> live CD/USB system is an initial, -potentially unconfigured <em>Arch Linux</em> system <em>squashed</em> up in the file -'system.sqf'. The installation of this system is can be handled by <em>mklarch</em>, -which uses <em>inpacs</em>, which in turn uses <em>pacman</em> to -install all the constituent packages using -the '-r' option to install to the chosen location, which can be anywhere where -there is enough space.</p> - -<p>By default the package cache on the build host will be used, so that only -packages which have not already been downloaded will be fetched from the -chosen mirror. The '-c' option to <strong>mklarch</strong> allows another -cache location to be used. Note that this can also be on a remote machine, -mounted using <em>sshfs</em> or <em>NFS</em>. -</p> - -<h3><a name="existingSystem"></a>Making a live CD from an existing <em>Arch</em> -installation</h3> - -<p>As mentioned above, <strong>larchify</strong> can be used to make a live -medium from an existing <em>Arch</em> installation, using the mount point of the -installation as argument. The installation must already be mounted, including any -sub-mounts (e.g. /home on another partition). The main mount must be with -options 'exec,dev', because some of the building is done via a <em>chroot</em> -to the installation. -</p> - -<p>It can also 'livify' the currently running (<em>Arch</em> only!) system, by -passing '/' as argument. -</p> - -<p>All aspects of the larch building process connected with the installation -are in this case irrelevant, as it is assumed that the installation is already complete. -The handling of 'profiles' is also different as these are largely -concerned with the installation process. A profile may still be used, though, -maybe to customize the 'mkinitcpio.conf' used to build the live system's -<em>initramfs</em>, or to add extra content by means of the <strong>cd-root</strong> -folder, for example. -</p> - -<p>In order to support building a <em>larch</em> system, certain packages outside -the <em>Arch</em> base group must be installed in the system to be 'larchified': -<pre style="margin-left: 80px;"><em>squashfs-tools</em>, <em>lzop</em>, <em>larch-live</em>, -<em>aufs</em> (if - recommended - you want to use that instead of <em>unionfs</em>), -<em>syslinux</em> (if using isolinux or syslinux), -<em>cdrkit</em> (for building an iso), -<em>eject</em> (to eject a CD at shutdown). - -for the hard-disk installer - <em>larchin</em>, <em>python</em>, <em>pygtk</em>, -<em>parted</em>, <em>ntfsprogs</em>, -(optional, but recommended) <em>gparted</em>. - -for this documentation, and for the capability of doing complete -rebuilds - <em>larch</em> -</pre> -</p> - -<p>Note that some things in '/var' will not be included in the 'live' system. -Firstly, the standard <em>pacman</em> package cache, '/var/cache/pacman/pkg'. -Also the log files (in '/var/log') and '/var/tmp' (temporary files, like '/tmp') -are not saved. As some files in '/var/log' are required for certain aspects of -logging to function, these are recreated (as empty files) in the resulting -'system.sqf'. -</p> - -<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> - <tbody> - <tr> - <td><a href="larch_quick.html">Previous: Quick start</a></td> - - <td><a href="larch_docindex.html">Table of Contents</a></td> - - <td><a href="larch_profiles.html">Next: Profiles</a></td> - </tr> - </tbody> -</table> - -</body> -</html> |