X-Git-Url: https://git.grml.org/?a=blobdiff_plain;f=grml-live%2Findex.html;h=73a4ac0acdc99dc3d0381636ec686f4dde9f4b3e;hb=f889fe7bc06111c3007d41058d115dd049d0e7e0;hp=4659291c03bd1ecacd9669c8bdb6fd3f392c837b;hpb=c39f079208e4a8e8a354e19e17d34ee43699e908;p=grml.org.git diff --git a/grml-live/index.html b/grml-live/index.html index 4659291..73a4ac0 100644 --- a/grml-live/index.html +++ b/grml-live/index.html @@ -1,31 +1,29 @@ + - + grml-live(8)

More details regarding the class concept can be found in the documentation of FAI itself (being available at /usr/share/doc/fai-doc/).

@@ -960,42 +1215,54 @@ FAI itself (being available at /usr/share/doc/fai-doc/).

8. Available classes

The package selection part of the classes can be found in -/etc/grml/fai/config/package_config whereas some further classes are defined for -example in /etc/grml/fai/config/scripts/ so specific feature sets can be selected. The following classes are predefined:

10. Available log files

-

grml-live itself logs to /var/log/grml-live.log. Unless you set PRESERVE_LOGFILE -in your grml-live configuration the file is cleared on each new invocation of -grml-live.

-

The FAI part of grml-live logs to /var/log/fai/$HOSTNAME/ - so the -default being /var/log/fai/grml/.

-

If you are using the grml-live buildd you will find the logs of the grml-live -run at /var/log/grml-buildd.stdout and /var/log/grml-buildd.stderr.

-

If you want to store build information in a database just install the -grml-live-db Debian package. Further details available in the grml-live-db -manpage.

+

Starting with grml-live version 0.17.0 you should find log files in a directory +named grml_logs in the output directory (next to grml_isos, grml_chroot,…).

+

grml-live versions before 0.17.0 used to log into /var/log/grml-live.log +and /var/log/fai/grml.

@@ -1181,26 +1424,23 @@ manpage.

  • any Debian based system should be sufficient (if it doesn’t work it’s a bug, -please send us a bug report then) [a usual -grml2hd harddisk installation (using grml or -grml-medium) ships all you need]. Check out How do I deploy grml-live on a plain Debian installation for details how to set up grml-live +please send us a bug report then). Check out How do I deploy grml-live on a plain Debian installation for details how to set up grml-live on a plain, original Debian system.

  • -enough free disk space; at least 800MB are required for a minimal grml-live -run (~400MB for the chroot [$CHROOT_OUTPUT], ~150MB for the build target -[$BUILD_OUTPUT] and \~150MB for the resulting ISO [$ISO_OUTPUT] plus some -temporary files), if you plan to use GRML_FULL you should have at least 4GB of -total free disk space +enough free disk space; at least 2GB are required for a minimal grml-live +run (\1GB for the chroot [$CHROOT_OUTPUT], ~400MB for the build target +[$BUILD_OUTPUT], ~35MB for the netboot files and \~350MB for the resulting ISO +[$ISO_OUTPUT] plus some temporary files), if you plan to use GRML_FULL you +should have at least 4GB of total free disk space

  • fast network access for retrieving the Debian packages used for creating the -chroot (check out "local mirror" and "NFSROOT" to workaround this problem as far -as possible) +chroot (check out "local mirror" to workaround this problem as far as possible)

  • @@ -1210,9 +1450,8 @@ as possible)

    12. Current state of grml-live with squashfs-tools and kernel

    -

    Use squashfs-tools >=4.2-1 (available from Grml repositories as well as from -Debian/unstable) to build Grml (based) ISOs featuring kernel version -2.6.38-grml[64].

    +

    Use squashfs-tools >=4.2-1 to build Grml (based) ISOs featuring kernel version +2.6.38-grml[64] or newer.

    @@ -1220,581 +1459,347 @@ Debian/unstable) to build Grml (based) ISOs featuring kernel version

    13.1. How do I deploy grml-live on a plain Debian installation?

    -

    The easiest way to get a running grml-live setup is to install Grml or -grml-medium using grml2hd (for example inside KVM, Virtualbox, VMware,… if you -don’t want to run it on a physical system). Of course using grml-live on a -plain, original Debian installation is supported as well. So there we go.

    -

    What we have: plain, original Debian Lenny (5.0).

    -

    What we want: build a grml-medium ISO based on Debian/squeeze for the i386 -architecture using grml-live.

    -
    - - - -
    -Important -If you encounter any problems while booting the resulting ISO please be aware of -the current state of grml-live with squashfs-tools and kernel section.
    -
    +

    The easiest way to get a running grml-live setup is to just use Grml. +Of course using grml-live on a plain, original Debian installation is supported +as well. So there we go.

    +

    What we have: plain, original Debian stretch (9.x).

    +

    What we want: build a Grml ISO based on Debian/stretch for the amd64 architecture +using grml-live.

    13.1.1. Instructions

    -
    # adjust sources.list:
    -cat >> /etc/apt/sources.list << EOF
    +
    # adjust sources.list:
    +cat >> /etc/apt/sources.list << EOF
    -
    # grml stable repository:
    +
    # grml stable repository:
       deb     http://deb.grml.org/ grml-stable  main
    -# deb-src http://deb.grml.org/ grml-stable  main
    +# deb-src http://deb.grml.org/ grml-stable main
    -
    # grml testing/development repository:
    +
    # grml testing/development repository:
       deb     http://deb.grml.org/ grml-testing main
     # deb-src http://deb.grml.org/ grml-testing main
    -EOF
    +EOF
    -
    # adjust apt-pinning (only prefer squashfs stuff from grml):
    -cat >> /etc/apt/preferences << EOF
    -Package: *
    -Pin: origin deb.grml.org
    -Pin-Priority: 1
    -
    -
    -
    -
    Package: squashfs-tools
    -Pin: origin deb.grml.org
    -Pin-Priority: 996
    -EOF
    -
    -
    -
    -
    # get keyring for apt:
    +
    # get keyring for apt:
     apt-get update
    -apt-get --allow-unauthenticated install grml-debian-keyring
    +apt-get --allow-unauthenticated install grml-debian-keyring
    -
    # optionally(!) install basefile so we don't have to build basic
    +
    # optionally(!) install basefile so we don't have to build basic
     # chroot from scratch, grab from http://daily.grml.org/
     # mkdir -p /etc/grml/fai/config/basefiles/
    -# mv base.tgz /etc/grml/fai/config/basefiles/I386.tar.gz
    -# mv base64.tgz /etc/grml/fai/config/basefiles/AMD64.tar.gz
    +# mv I386.tar.gz /etc/grml/fai/config/basefiles/ +# mv AMD64.tar.gz /etc/grml/fai/config/basefiles/
    -
    # install relevant tools
    -# please check out http://grml.org/grml-live/#current_state when encountering problems!
    -apt-get -o APT::Install-Recommends=false install grml-live squashfs-tools
    +
    # install relevant tools
    +apt-get --no-install-recommends install grml-live
    -
    # adjust grml-live configuration for our needs:
    +
    # adjust grml-live configuration for our needs:
     cat > /etc/grml/grml-live.local << EOF
     ## want a faster build process and don't need smaller ISOs?
     ## if so use zlib compression
     # SQUASHFS_OPTIONS="-comp gzip -b 256k"
     ## want to use a specific squashfs binary?
     # SQUASHFS_BINARY='/usr/bin/mksquashfs'
    -# install local files into the chroot
    -CHROOT_INSTALL="/etc/grml/fai/chroot_install"
    -## adjust if necessary (defaults to /grml/grml-live):
    +## install local files into the chroot
    +# CHROOT_INSTALL="/etc/grml/fai/chroot_install"
    +## adjust if necessary (defaults to ./grml/):
     ## OUTPUT="/srv/grml-live"
    -FAI_DEBOOTSTRAP="squeeze http://cdn.debian.net/debian/"
    -ARCH="i386"
    -CLASSES="GRMLBASE,GRML_MEDIUM,I386"
    -# PRESERVE_LOGFILE='1'
    -# ZERO_FAI_LOGFILE='1'
    -GRML_LIVE_SOURCES="
    -deb http://deb.grml.org/            grml-stable  main
    -deb http://deb.grml.org/            grml-testing main
    -deb http://cdn.debian.net/debian squeeze main contrib non-free
    -"
    -EOF
    +FAI_DEBOOTSTRAP="stretch http://ftp.debian.org/debian/" +# ARCH="amd64" +CLASSES="GRMLBASE,GRML_FULL,AMD64" +EOF
    -
    # just optional(!) - upgrade FAI to latest available version:
    -cat >> /etc/apt/sources.list << EOF
    -# fai:
    -  deb http://fai-project.org/download lenny koeln
    -EOF
    +
    # just optional(!) - upgrade FAI to latest available version:
    +cat >> /etc/apt/sources.list.d/fai.list << EOF
    +deb     http://jenkins.grml.org/debian fai main
    +deb-src http://jenkins.grml.org/debian fai main
    +EOF
    -
    # get gpg key of FAI repos and install current FAI version:
    -gpg -a --recv-keys AB9B66FD; gpg -a --export AB9B66FD | apt-key add -
    +
    # get gpg key of FAI repos and install current FAI version:
    +wget -O - http://jenkins.grml.org/debian/C525F56752D4A654.asc | sudo apt-key add -
     apt-get update
    -apt-get install fai-client fai-server fai-doc
    +apt-get install fai-client fai-server fai-doc

    That’s it. Now invoking grml-live -V should build the ISO. If everything worked as expected the last line of the shell output should look like:

    -
    [*] Successfully finished execution of grml-live [running 687 seconds]
    +
    [*] Successfully finished execution of grml-live [running 687 seconds]

    and the ISO can be found inside /grml-live/grml-live/grml_isos/ then.

    -

    13.2. Help, I’m using Debian etch and I don’t have FAI version >3.2

    -
    -
    -
    wget http://fai-project.org/download/etch/fai-client_3.2.8_all.deb \
    -     http://fai-project.org/download/etch/fai-server_3.2.8_all.deb \
    -     http://fai-project.org/download/etch/fai-doc_3.2.8_all.deb
    -dpkg -i fai-client_3.2.8_all.deb fai-server_3.2.8_all.deb fai-doc_3.2.8_all.deb
    -
    -

    or check out the FAI-homepage for -further details.

    +

    13.2. What is $GRML_FAI_CONFIG?

    +

    The variable $GRML_FAI_CONFIG is pointing to the directory /etc/grml/fai by +default. To provide you a maximum of flexibility you can set up your own +configuration directory (e.g. based on /etc/grml/fai) and use this directory +running grml-live with the -D <config_dir> option. Now $GRML_FAI_CONFIG +points to the specified directory instead of using /etc/grml/fai and all the +configuration files, scripts and hooks will be taken from your +$GRML_FAI_CONFIG directory.

    13.3. I’ve problems with the build process. How to start debugging?

    -

    Check out the logs inside /var/log/fai/… If you think it’s a bug in grml-live -send a copy of your config, logs and the commandline with a short problem -description to <mika@grml.org>:

    -
    -
    -
    # history | grep grml-live > /etc/grml/grml_live.cmdline
    -# tar zcf grml_live_problem.tar.gz /etc/grml/grml-live.conf \
    -          /etc/grml/grml_live.cmdline /etc/grml/grml-buildd.conf \
    -          /var/log/fai /etc/grml/fai
    --> finally mail grml_live_problem.tar.gz to <mika@grml.org>
    -
    +

    Check out the logs inside the directory grml_logs next to your grml_chroot, +grml_isos,… directories.

    If you need help with grml-live or would like to see new features as part of grml-live you can get commercial support via Grml Solutions.

    -

    13.4. How much is the difference between LZMA and ZLIB compression?

    -

    ISO size (bs = blocksize):

    -
    - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    ISO

    LZMA (256kB bs)

    ZLIB

    grml_sid

    666M

    771M

    grml_squeeze

    659M

    761M

    grml_lenny

    624M

    723M

    grml64_sid

    677M

    791M

    grml64_squeeze

    671M

    785M

    grml64_lenny

    639M

    745M

    grml-medium_sid

    208M

    236M

    grml-medium_squeeze

    206M

    234M

    grml-medium_lenny

    193M

    220M

    grml64-medium_sid

    213M

    245M

    grml64-medium_squeeze

    213M

    244M

    grml64-medium_lenny

    201M

    231M

    grml-small_sid

    102M

    118M

    grml-small_squeeze

    101M

    117M

    grml-small_lenny

    97M

    112M

    grml64-small_sid

    103M

    120M

    grml64-small_squeeze

    103M

    120M

    grml64-small_lenny

    99M

    116M

    -
    -

    Build time of grml-medium’s squashfs file (depends on your system, though just -to get the ratio between the different options):

    -
      -
    • -

      -10 minutes and 4 seconds with LZMA default blocksize (128k) -

      -
    • -
    • -

      -7 minutes 27 seconds with LZMA and blocksize 256k -

      -
    • -
    • -

      -6 minutes and 8 seconds with LZMA blocksize 512k -

      -
    • -
    • -

      -1 minute and 40 seconds with ZLIB -

      -
    • -
    -
    -
    -

    13.5. How do I install further files into the chroot/ISO?

    +

    13.4. How do I install further files into the chroot/ISO?

    Just point the configuration variable CHROOT_INSTALL to the directory which provides the files you would like to install. Note that the files are installed under / in the chroot - so you have to create the rootfs structure on your own. Usage example:

    -
    echo "CHROOT_INSTALL=\$GRML_FAI_CONFIG/chroot_install" >> /etc/grml/grml-live.local
    +
    echo "CHROOT_INSTALL=\$GRML_FAI_CONFIG/chroot_install" >> /etc/grml/grml-live.local
     mkdir -p /etc/grml/fai/chroot_install/usr/src/
     wget example.org/foo.tar.gz
     mv foo.tar.gz /etc/grml/fai/chroot_install/usr/src/
    -grml-live ...
    +grml-live ...
    -

    13.6. Can I use my own (local) Debian mirror?

    -

    Sure. Just adjust the variables GRML_LIVE_SOURCES and FAI_DEBOOTSTRAP (if not -already using NFSROOT’s base.tgz) inside /etc/grml/grml-live.conf according to -your needs. Please don’t forget that you should use the grml servers as well -(see default configuration) so all the grml packages can be downloaded as well.

    -

    If you want to use a local (for example NFS mount) mirror additionally, just -adjust MIRROR_DIRECTORY and MIRROR_SOURCES inside /etc/grml/grml-live.conf as -well.

    -

    Unless you specify GRML_LIVE_SOURCES and/or FAI_DEBOOTSTRAP the default from -/etc/grml/fai/apt/sources.list and /etc/grml/fai/make-fai-nfsroot.conf will be -taken. If you customise the variables in /etc/grml/grml-live.conf then the two -files will be adjusted during runtime automatically.

    -

    If MIRROR_DIRECTORY and MIRROR_SOURCES are specified the local mirror will be -taken as first entry in the generated sources.list so it’s preferred over -non-local mirrors. Using a fallback mirror (via providing several mirrors in -GRML_LIVE_SOURCES as used by default) is a recommended setting.

    +

    13.5. Can I use my own (local) Debian mirror?

    +

    Yes. Set up an according sources.list configuration as class file in +FAI_DEBOOTSTRAP (if not already using a base.tgz) inside +/etc/grml/grml-live.conf[.local]. If you’re setting up your own class file don’t +forget to include the class name in the class list (grml-live -c …).

    +

    If you want to use a local (for example NFS mount) mirror additionally then +adjust MIRROR_DIRECTORY in /etc/grml/grml-live.conf[.local] as well.

    +

    If you want to use a HTTP Proxy (like apt-cacher-ng), set APT_PROXY. Example:

    +
    +
    +
    APT_PROXY="http://localhost:3142/"
    +
    -

    13.7. How do I add additional Debian package(s) to my CD/ISO?

    +

    13.6. How do I add additional Debian package(s) to my CD/ISO?

    Just create a new class (using the package_config directory):

    -
    # cat > /etc/grml/fai/config/package_config/MIKA << EOF
    -PACKAGES aptitude
    +
    # cat > /etc/grml/fai/config/package_config/MIKA << EOF
    +PACKAGES install
    -
    vim
    +
    vim
     another_name_of_a_debian_package
     and_another_one
    -EOF
    +EOF

    and specify it when invoking grml-live then:

    -
    # grml-live -c GRMLBASE,GRML_SMALL,I386,MIKA
    +
    # grml-live -c GRMLBASE,GRML_SMALL,AMD64,MIKA
    -

    13.8. I fscked up my grml-live configuration. How do I reset it to the defaults?

    +

    13.7. I fscked up my grml-live configuration. How do I reset it to the defaults?

    Notice: this deletes all your grml-live configuration files. If that’s really what you are searching for just run:

    -
    rm -rf /etc/grml/fai /etc/grml/grml-live.conf
    -dpkg -i --force-confnew --force-confmiss /path/to/grml-live_..._all.deb
    +
    rm -rf /etc/grml/fai /etc/grml/grml-live.conf
    +dpkg -i --force-confnew --force-confmiss /path/to/grml-live_..._all.deb
    -
    - - - -
    -Note -If you don’t control your /etc using a version control system (VCS) yet it’s a -good chance to start using it now. Check out -http://michael-prokop.at/blog/2007/03/14/maintain-etc-with-mercurial-on-debian/ -for more details how to maintain /etc using the mercurial VCS.
    -
    -

    13.9. How do I create a base.tgz for use as NFSROOT?

    -

    First of all build the chroot system:

    -
    -
    -
    mkdir /tmp/nfsroot && cd /tmp/nfsroot
    -debootstrap squeeze /tmp/nfsroot/ http://cdn.debian.net/debian
    -tar zcf base.tgz ./
    -
    -

    Then check out where your NFSROOT is located:

    -
    -
    -
    # grep '^NFSROOT' /etc/grml/fai/make-fai-nfsroot.conf
    -NFSROOT=/grml/fai/nfsroot
    -
    -

    So as /grml/fai/nfsroot is your NFSROOT place the file under -/grml/fai/nfsroot/live/filesystem.dir/var/tmp/:

    -
    -
    -
    mv base.tgz /grml/fai/nfsroot/live/filesystem.dir/var/tmp/base.tgz
    -
    -

    or even better use /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz instead. -Use I386 as $CLASSNAME for i386 builds and AMD64 for amd64 builds.

    -

    Now running "grml-live …" will use this file as main system instead of -executing debootstrap. Check out the output for the following lines if using -NFSROOT:

    -
    -
    -
    [...]
    -Calling task_extrbase
    -Unpacking Debian base archive
    -Extracting /grml/fai/nfsroot/live/filesystem.dir/var/tmp/base.tgz
    -Calling task_mirror
    -[...]
    -
    -

    or if using /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz for:

    -
    -
    -
    [...]
    -ftar: extracting /etc/grml/fai/config/basefiles///AMD64.tar.gz to
    -/grml-live/grml-live_20071029.22138/grml_chroot//
    -[...]
    -
    -
    - - - -
    -Tip -Existing base.tgz can be found at http://daily.grml.org/
    -
    -
    -
    -

    13.10. Set up apt-cacher / apt-cacher-ng for use with grml-live

    -

    Make sure /etc/grml/grml-live.conf provides according GRML_LIVE_SOURCES and +

    13.8. Set up apt-cacher-ng for use with grml-live

    +

    Make sure /etc/grml/grml-live.local provides according APT_PROXY and FAI_DEBOOTSTRAP:

    -
    # cat /etc/grml/grml-live.conf
    +
    # cat /etc/grml/grml-live.local
     [...]
    -GRML_LIVE_SOURCES="
    -deb http://localhost:3142/deb.grml.org grml-stable  main
    -deb http://localhost:3142/deb.grml.org grml-testing main
    -deb http://localhost:3142/cdn.debian.net/debian squeeze main contrib non-free
    -"
    +APT_PROXY="http://localhost:3142/"
     [...]
    -FAI_DEBOOTSTRAP="squeeze http://localhost:3142/cdn.debian.net/debian squeeze main contrib non-free"
    +FAI_DEBOOTSTRAP="stretch http://localhost:3142/ftp.debian.org/debian stretch main contrib non-free"
    -

    Make sure apt-cacher / apt-cacher-ng is running (/etc/init.d/apt-cacher -restart or /etc/init.d/apt-cacher-ng restart). That’s it. All downloaded -files will be cached in /var/cache/apt-cacher/ or /var/cache/apt-cacher-ng then.

    +

    Make sure apt-cacher-ng is running (/etc/init.d/apt-cacher-ng restart). +That’s it. All downloaded files will be cached in /var/cache/apt-cacher-ng then.

    -

    13.11. Set up approx for use with grml-live

    -

    Make sure /etc/grml/grml-live.conf provides according GRML_LIVE_SOURCES and -FAI_DEBOOTSTRAP:

    +

    13.9. How do I revert the manifold feature from an ISO?

    +

    The so-called manifold feature Grml ISOs can, but by default do not, use allows +one to use the same ISO for CD boot and USB boot. If you notice any problems +when booting manifold-crafted media, just revert the manifold feature running:

    -
    # cat /etc/grml/grml-live.conf
    -[...]
    -GRML_LIVE_SOURCES="
    -deb http://localhost:9999/grml            grml-stable  main
    -deb http://localhost:9999/grml            grml-testing main
    -deb http://localhost:9999/debian squeeze  main contrib non-free
    -"
    -FAI_DEBOOTSTRAP="squeeze http://localhost:9999/debian"
    +
    % dd if=/dev/zero of=grml.iso bs=512 count=1 conv=notrunc
    -

    Configure approx:

    +

    To switch from manifold to isohybrid mode (an alternative approach provided by +syslinux, used by default for official Grml images) then just execute:

    -
    # cat /etc/approx/approx.conf
    -[...]
    -debian http://ftp.at.debian.org/debian
    -grml   http://deb.grml.org/
    +
    % isohybrid grml.iso
    -

    Don’t forget to restart approx (/etc/init.d/approx restart). That’s it. -All downloaded files will be cached in /var/cache/approx now.

    -

    13.12. How do I revert the manifold feature from an ISO?

    -

    The so called manifold feature Grml ISOs use by default allows to use the same -ISO for CD boot and USB boot. If you notice any problems when booting just -revert the manifold feature running:

    +

    13.10. How do I create a base tar.gz (I386.tar.gz or AMD64.tar.gz)

    +

    First of all create the chroot using debootstrap (requires root):

    -
    % dd if=/dev/zero of=grml.iso bs=512 count=1 conv=notrunc
    -
    -

    To switch from manifold to isohybrid mode (an alternative approach provided by -syslinux) then just execute:

    -
    -
    -
    % isohybrid grml.iso
    +
    BASECHROOT='/tmp/basefile'  # path where the chroot gets generated
    +SUITE='stretch'              # using the current stable release should always work
    +debootstrap --exclude=info,tasksel,tasksel-data "$SUITE" "$BASECHROOT" http://ftp.debian.org/debian
    +tar -C "$BASECHROOT" --exclude='var/cache/apt/archives/*.deb' -zcf "${SUITE}".tar.gz ./
    +
    + + + +
    +Tip +By default debootstrap builds a chroot matching the architecture of the running +host system. If you’re using an amd64 system and want to build an i386 base.tgz +then invoke debootstrap using the --arch i386 option. Disclaimer: building an +AMD64 base.tgz won’t work if you are using a 32bit kernel system of course.
    -
    -

    13.13. How do I create a base tar.gz (I386.tar.gz or AMD64.tar.gz)

    -

    Execute the following commands (requires root):

    +

    Finally place the generated tarball in /etc/grml/fai/config/basefiles/ (note +that it needs to be uppercase letters matching the class names, so: e.g. +AMD64.tar.gz for amd64 and I386.tar.gz for i386).

    +

    Then executing grml-live should use this file as base system instead of executing +debootstrap. Check out the output for something like:

    -
    ARCH='amd64' # replace with i386 if necessary
    -SUITE='squeeze' # using the current stable release should always work
    -debootstrap --arch "$ARCH" --exclude=info,tasksel,tasksel-data "$SUITE" "$ARCH" http://debian.netcologne.de/debian
    -cd "$ARCH"
    -rm var/cache/apt/archives/*.deb
    -tar zcf ../"${ARCH}".tar.gz *
    +
    [...]
    +ftar: extracting //etc/grml/fai/config/basefiles///AMD64.tar.gz to /srv/grml64_testing/grml_chroot//
    +[...]
    -

    And finally place the generated tarball in /etc/grml/fai/config/basefiles/ (note -that it needs to be uppercase letters matching the class names, so: AMD64.tar.gz -for amd64 and I386.tar.gz for i386).

    -

    13.14. How do I set up an autobuild environment?

    -

    If you want to set up a system like daily.grml.org -the Debian package grml-live-buildd provides all you need to start. Start with -figuring out the cron job script /usr/share/grml-live/buildd/cronjob.sh.

    -

    If you want to automatically update the grml-live Debian package on your build -system based on the git tree of grml-live (so you get bleeding edge of -development which might is interesting for services like daily.grml.org) the -provided release_helper.sh script provides everything you need. Execute as root:

    -
    -
    -
    echo "deb file:/home/grml-live-git/grml-live.build-area/ ./" >> /etc/apt/sources.list.d/grml-live.list
    -adduser --disabled-login --disabled-password grml-live-git
    -
    -

    Execute visudo to update sudo configuration and add the following line:

    +

    13.11. How to use your own local repository

    +

    Let’s assume you have Debian package(s) in your filesystem inside +/home/foobar/local-packages and want to provide them to your grml-live build. +This can be achieved either 1) through a bind mount (using the MIRROR_DIRECTORY +configuration) or 2) by serving a repository via HTTP.

    +
    +

    13.11.1. Serving via bind mount / MIRROR_DIRECTORY

    +

    Make sure to create an according sources.list configuration file, e.g. using +your own class name CUSTOM:

    -
    grml-live-git ALL=NOPASSWD: /usr/bin/apt-get
    +
    # cat > /etc/grml/fai/config/files/etc/apt/sources.list.d/local-packages.list/CUSTOM << EOF
    +deb file:///home/foobar/local-packages ./
    +EOF
    -

    Switch to user grml-live-git and configure the rest:

    +

    Add the according MIRROR_DIRECTORY configuration to your grml-live configuration:

    -
    su - grml-live-git
    -mkdir grml-live.build-area
    -git clone git://git.grml.org/grml-live.git
    -git config --global user.name "Grml-Live Git Autobuild"
    -git config --global user.email "grml-live-git@$(hostname)"
    +
    # echo "MIRROR_DIRECTORY='/home/foobar/packages'" >> /etc/grml/grml-live.local
    -

    Finally install a cron job (as user grml-live-git) like:

    +

    Make sure the local directory looks like a mirror:

    -
    30 00 * * * cd /home/grml-live-git/grml-live.git/ && env AUTOBUILD=1 scripts/release_helper.sh >/home/grml-live-git/grml-live-build.log
    +
    % cd /home/foobar/packages
    +% dpkg-scanpackages . /dev/null | gzip > Packages.gz
    -

    Tip: To find out the build date of the installed grml-live package just execute:

    +

    Finally invoke grml-live with your class name (CUSTOM in this example) added +to the list of classes on the command line (see grml-live option -c).

    +
    +
    +

    13.11.2. Serving a repository via HTTP

    +

    Make sure to create an according sources.list configuration file, e.g. using +your own class name CUSTOM:

    -
    % apt-cache policy grml-live | grep 'Installed.*autobuild'
    - Installed: 0.13.1~autobuild1300450381
    +
    # cat > /etc/grml/fai/config/files/etc/apt/sources.list.d/local-packages.list/CUSTOM << EOF
    +deb http://127.0.0.1:8000/ ./
    +EOF
    -

    and run "date -ud @$STRING" where $STRING is the number behind the "autobuild", -like:

    +

    Make sure the local directory is served via HTTP on the according IP address and +port. For the http://127.0.0.1:8000/ example from above it should be enough to +just invoke:

    -
    % date -ud @1300450081
    -Fri Mar 18 12:08:01 UTC 2011
    +
    % cd /home/foobar/packages
    +% dpkg-scanpackages . /dev/null | gzip > Packages.gz
    +% python -m SimpleHTTPServer 8000
    +
    + + + +
    +Tip +Of course you can also use a real Debian repository setup using tools like +reprepro(1) and/or using a real web server, though for quick debugging sessions +python’s SimpleHTTPServer in combination with dpkg-scanpackages from package +dpkg-dev is a simple and easy approach.
    +
    +

    Finally invoke grml-live with your class name (CUSTOM in this example) added +to the list of classes on the command line (see grml-live option -c).

    -
    -

    13.15. I’ve a question which isn’t answered by this document

    -

    Don’t hesitate to contact the author: <mika@grml.org>

    14. Download / install grml-live as a Debian package

    -

    Debian packages are available through the grml-repository at -deb.grml.org. If you want to -build a Debian package on your own (using for example a specific version or the -current development tree), just execute:

    +

    Stable Debian packages are available through the grml-repository at +deb.grml.org and the latest +Git commits are available as Debian packages from +jenkins.grml.org. +If you want to build a Debian package on your own (using for example a specific +version or the current development tree), just execute:

    -
    git clone git://git.grml.org/grml-live
    +
    git clone git://git.grml.org/grml-live
     cd grml-live
    -debuild -us -uc
    +debuild -us -uc
    -

    15. Source

    +

    15. Run grml-live directly from git

    -

    The source of grml-live is available at -http://git.grml.org/?p=grml-live.git

    +

    In case you want to run grml-live directly from the git repository checkout +(after making sure all dependencies are installed), you should set +GRML_FAI_CONFIG so that a) it finds the according FAI configuration files and +b) does not use the config files of an possibly installed grml-live package. +Usage example:

    +
    +
    +
    # export GRML_FAI_CONFIG=$(pwd)/etc/grml/fai
    +# export SCRIPTS_DIRECTORY=$(pwd)/scripts
    +# export TEMPLATE_DIRECTORY=$(pwd)/templates
    +# ./grml-live -s sid -a amd64 -c GRMLBASE,GRML_FULL,AMD64
    +
    -

    16. TODO list

    +

    16. Source

    -

    Check out the TODO file.

    +

    The source of grml-live is available at +https://github.com/grml/grml-live/

    17. Bugs

    Please report feedback, bugreports and wishes -to the grml-team!

    +to the Grml team!

    @@ -1827,7 +1832,8 @@ in different formats: