Adding live-helper 1.0~a8-1.

This commit is contained in:
Daniel Baumann 2007-09-23 10:04:52 +02:00
parent 3de3c99147
commit dfd9c85cd9
122 changed files with 1253 additions and 7453 deletions

8
debian/changelog vendored
View File

@ -1,3 +1,11 @@
live-helper (1.0~a8-1) unstable; urgency=medium
* New upstream release:
- updated syslinux templates (Closes: #399658).
- removed forgotten set -x in the cron (Closes: #421105).
-- Daniel Baumann <daniel@debian.org> Mon, 30 Apr 2007 00:00:00 +0200
live-helper (1.0~a7-1) unstable; urgency=medium
* New upstream release:

8
debian/cron.daily vendored
View File

@ -46,7 +46,9 @@ do
# Generating images
mkdir -p "${AUTOBUILD_TEMPDIR}"/debian-live
cd "${AUTOBUILD_TEMPDIR}"
make-live -b iso -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source enabled ${AUTOBUILD_OPTIONS} > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "Begin: `date -R`" > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
make-live -b iso -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source enabled ${AUTOBUILD_OPTIONS} >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "End: `date -R`" >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
fi
if [ -f "${AUTOBUILD_TEMPDIR}"/debian-live/binary.iso ] && [ -f "${AUTOBUILD_TEMPDIR}"/debian-live/source.tar ]
@ -77,7 +79,9 @@ do
# Generating images
mkdir -p "${AUTOBUILD_TEMPDIR}"/debian-live
cd "${AUTOBUILD_TEMPDIR}"
make-live -b usb -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source disabled ${AUTOBUILD_OPTIONS} > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "Begin: `date -R`" > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
make-live -b usb -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source disabled ${AUTOBUILD_OPTIONS} >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "End: `date -R`" >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
fi
if [ -f "${AUTOBUILD_TEMPDIR}"/debian-live/binary.img ]

View File

@ -1,3 +1,35 @@
2007-04-31 Daniel Baumann <daniel@debian.org>
* helpers/*:
- Added LH_INITRAMFS.
- Splitted config/image into config/binary and config/source.
* Uploaded 1.0~a8-1.
2007-04-26 Daniel Baumann <daniel@debian.org>
* helpers/*:
- Implemented paranoid caching with LIVE_CACHE_INDICES,
LIVE_CACHE_PACKAGES and LIVE_CACHE_STAGES. This allows to build
images offline from the cache.
2007-04-25 Daniel Baumann <daniel@debian.org>
* helpers/lh_binary_usb, lh_source_usb:
- In preparation of adding support for usb-zip images, the usb binary
type is renamed to usb-hdd.
2007-04-24 Daniel Baumann <daniel@debian.org>
* functions/stagefile.sh:
- Requite_stagefile can require more than one stage.
* helpers/lh_binary_debian-installer:
- Added.
2007-04-23 Daniel Baumann <daniel@debian.org>
* helpers/lh_binary_includes, lh_binary_usb, lh_source_usb:
- Added workaround for vfat limitations.
2007-04-23 Daniel Baumann <daniel@debian.org>
* Makefile:

View File

@ -25,6 +25,13 @@ News:
http://lists.alioth.debian.org/pipermail/debian-live-devel/2007-February/000836.html
* 2007-03-12: Uploaded first live-helper to Debian unstable.
http://packages.debian.org/changelogs/pool/main/l/live-helper/current/changelog#versionversion1.0_a1-1
* 2007-03-14: live-package is dead, long lives live-helper
http://lists.alioth.debian.org/pipermail/debian-live-devel/2007-March/000998.html
* 2007-04-19: Google Summer of Code 2007
http://lists.alioth.debian.org/pipermail/debian-live-devel/2007-April/001221.html
* 2007-04-26: New website design
http://www.chris-lamb.co.uk/blog/2007/04/26/pimp-your-webpage/

View File

@ -63,7 +63,7 @@
|_ lh_binary_hdd
|_ lh_binary_iso
|_ lh_binary_net
|_ lh_binary_usb
|_ lh_binary_usb-hdd
|
|_ rm -f .stage/chroot_sources
|_ lh_chroot_resolv remove
@ -84,7 +84,7 @@
|_ lh_source_hdd
|_ lh_source_iso
|_ lh_source_net
|_ lh_source_usb
|_ lh_source_usb-hdd
|
|_ rm -f .stage/chroot_sources
|_ lh_chroot_resolv remove

View File

@ -58,7 +58,9 @@ do
# Generating images
mkdir -p "${AUTOBUILD_TEMPDIR}"/debian-live
cd "${AUTOBUILD_TEMPDIR}"
make-live -b iso -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source enabled ${AUTOBUILD_OPTIONS} > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "Begin: `date -R`" > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
make-live -b iso -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source enabled ${AUTOBUILD_OPTIONS} >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "End: `date -R`" >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
fi
if [ -f "${AUTOBUILD_TEMPDIR}"/debian-live/binary.iso ] && [ -f "${AUTOBUILD_TEMPDIR}"/debian-live/source.tar ]
@ -76,7 +78,7 @@ do
mv "${AUTOBUILD_TEMPDIR}"/debian-live/source.tar "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/source/debian-live-${DISTRIBUTION}-source-${PACKAGES_LIST}.tar
fi
if [ ! -f "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-log.txt ]
if [ ! -f "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-hdd-log.txt ]
then
# Workaround of missing multi-binary support in live-helper
mv "${AUTOBUILD_TEMPDIR}"/debian-live/binary/casper "${AUTOBUILD_TEMPDIR}"/debian-live/casper.tmp
@ -89,15 +91,17 @@ do
# Generating images
mkdir -p "${AUTOBUILD_TEMPDIR}"/debian-live
cd "${AUTOBUILD_TEMPDIR}"
make-live -b usb -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source disabled ${AUTOBUILD_OPTIONS} > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "Begin: `date -R`" > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
make-live -b usb-hdd -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source disabled ${AUTOBUILD_OPTIONS} >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "End: `date -R`" >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
fi
if [ -f "${AUTOBUILD_TEMPDIR}"/debian-live/binary.img ]
then
# Moving logs
mkdir -p "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log
mv "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-log.txt
cp "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-iso-packages.txt "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-packages.txt
mv "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-hdd-log.txt
cp "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-iso-packages.txt "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-hdd-packages.txt
# Moving images
mkdir -p "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/${ARCHITECTURE}

View File

@ -9,7 +9,7 @@ AUTOBUILD_DISTRIBUTIONS="etch"
AUTOBUILD_PACKAGES_LISTS="gnome-desktop kde-desktop xfce-desktop"
AUTOBUILD_OPTIONS="--apt-recommends disabled"
AUTOBUILD_DATE="r0_1.0~a7-1"
AUTOBUILD_DATE="r0_1.0~a8-1"
AUTOBUILD_DESTDIR="/srv/debian-unofficial/ftp/debian-live"
AUTOBUILD_TEMPDIR="/srv/tmp"
@ -68,7 +68,9 @@ do
cp /usr/share/live-helper/examples/beryl.sources.list debian-live/config/chroot_sources/beryl.build
cp /usr/share/live-helper/examples/beryl.sources.list debian-live/config/chroot_sources/beryl.image
make-live -b iso -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source enabled ${AUTOBUILD_OPTIONS} > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "Begin: `date -R`" > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
make-live -b iso -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source enabled ${AUTOBUILD_OPTIONS} >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "End: `date -R`" >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
fi
if [ -f "${AUTOBUILD_TEMPDIR}"/debian-live/binary.iso ] && [ -f "${AUTOBUILD_TEMPDIR}"/debian-live/source.tar ]
@ -86,7 +88,7 @@ do
mv "${AUTOBUILD_TEMPDIR}"/debian-live/source.tar "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/source/debian-live-etch+beryl-source-${PACKAGES_LIST}.tar
fi
if [ ! -f "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-etch+beryl-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-log.txt ]
if [ ! -f "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-etch+beryl-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-hdd-log.txt ]
then
# Workaround of missing multi-binary support in live-helper
mv "${AUTOBUILD_TEMPDIR}"/debian-live/binary/casper "${AUTOBUILD_TEMPDIR}"/debian-live/casper.tmp
@ -99,15 +101,17 @@ do
# Generating images
mkdir -p "${AUTOBUILD_TEMPDIR}"/debian-live
cd "${AUTOBUILD_TEMPDIR}"
make-live -b usb -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source disabled ${AUTOBUILD_OPTIONS} > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "Begin: `date -R`" > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
make-live -b usb-hdd -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source disabled ${AUTOBUILD_OPTIONS} >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "End: `date -R`" >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
fi
if [ -f "${AUTOBUILD_TEMPDIR}"/debian-live/binary.img ]
then
# Moving logs
mkdir -p "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log
mv "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-etch+beryl-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-log.txt
cp "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-etch+beryl-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-iso-packages.txt "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-etch+beryl-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-packages.txt
mv "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-etch+beryl-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-hdd-log.txt
cp "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-etch+beryl-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-iso-packages.txt "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-etch+beryl-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-hdd-packages.txt
# Moving images
mkdir -p "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/${ARCHITECTURE}

View File

@ -9,7 +9,7 @@ AUTOBUILD_DISTRIBUTIONS="etch"
AUTOBUILD_PACKAGES_LISTS="standard gnome-desktop kde-desktop xfce-desktop"
AUTOBUILD_OPTIONS="--apt-recommends disabled"
AUTOBUILD_DATE="r0_1.0~a7-1"
AUTOBUILD_DATE="r0_1.0~a8-1"
AUTOBUILD_DESTDIR="/srv/debian-unofficial/ftp/debian-live"
AUTOBUILD_TEMPDIR="/srv/tmp"
@ -58,7 +58,9 @@ do
# Generating images
mkdir -p "${AUTOBUILD_TEMPDIR}"/debian-live
cd "${AUTOBUILD_TEMPDIR}"
make-live -b iso -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source enabled ${AUTOBUILD_OPTIONS} > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "Begin: `date -R`" > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
make-live -b iso -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source enabled ${AUTOBUILD_OPTIONS} >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "End: `date -R`" >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
fi
if [ -f "${AUTOBUILD_TEMPDIR}"/debian-live/binary.iso ] && [ -f "${AUTOBUILD_TEMPDIR}"/debian-live/source.tar ]
@ -76,7 +78,7 @@ do
mv "${AUTOBUILD_TEMPDIR}"/debian-live/source.tar "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/source/debian-live-${DISTRIBUTION}-source-${PACKAGES_LIST}.tar
fi
if [ ! -f "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-log.txt ]
if [ ! -f "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-hdd-log.txt ]
then
# Workaround of missing multi-binary support in live-helper
mv "${AUTOBUILD_TEMPDIR}"/debian-live/binary/casper "${AUTOBUILD_TEMPDIR}"/debian-live/casper.tmp
@ -89,15 +91,17 @@ do
# Generating images
mkdir -p "${AUTOBUILD_TEMPDIR}"/debian-live
cd "${AUTOBUILD_TEMPDIR}"
make-live -b usb -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source disabled ${AUTOBUILD_OPTIONS} > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "Begin: `date -R`" > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
make-live -b usb-hdd -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source disabled ${AUTOBUILD_OPTIONS} >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "End: `date -R`" >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
fi
if [ -f "${AUTOBUILD_TEMPDIR}"/debian-live/binary.img ]
then
# Moving logs
mkdir -p "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log
mv "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-log.txt
cp "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-iso-packages.txt "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-packages.txt
mv "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-hdd-log.txt
cp "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-iso-packages.txt "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-hdd-packages.txt
# Moving images
mkdir -p "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/${ARCHITECTURE}

View File

@ -58,7 +58,9 @@ do
# Generating images
mkdir -p "${AUTOBUILD_TEMPDIR}"/debian-live
cd "${AUTOBUILD_TEMPDIR}"
make-live -b iso -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source enabled ${AUTOBUILD_OPTIONS} > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "Begin: `date -R`" > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
make-live -b iso -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source enabled ${AUTOBUILD_OPTIONS} >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "End: `date -R`" >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
fi
if [ -f "${AUTOBUILD_TEMPDIR}"/debian-live/binary.iso ] && [ -f "${AUTOBUILD_TEMPDIR}"/debian-live/source.tar ]
@ -76,7 +78,7 @@ do
mv "${AUTOBUILD_TEMPDIR}"/debian-live/source.tar "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/source/debian-live-${DISTRIBUTION}-source-${PACKAGES_LIST}.tar
fi
if [ ! -f "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-log.txt ]
if [ ! -f "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-hdd-log.txt ]
then
# Workaround of missing multi-binary support in live-helper
mv "${AUTOBUILD_TEMPDIR}"/debian-live/binary/casper "${AUTOBUILD_TEMPDIR}"/debian-live/casper.tmp
@ -89,15 +91,17 @@ do
# Generating images
mkdir -p "${AUTOBUILD_TEMPDIR}"/debian-live
cd "${AUTOBUILD_TEMPDIR}"
make-live -b usb -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source disabled ${AUTOBUILD_OPTIONS} > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "Begin: `date -R`" > "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
make-live -b usb-hdd -s generic --distribution ${DISTRIBUTION} --packages-lists ${PACKAGES_LIST} --mirror-build ${AUTOBUILD_MIRROR} --mirror-build-security ${AUTOBUILD_MIRROR_SECURITY} --source disabled ${AUTOBUILD_OPTIONS} >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt 2>&1
echo "End: `date -R`" >> "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt
fi
if [ -f "${AUTOBUILD_TEMPDIR}"/debian-live/binary.img ]
then
# Moving logs
mkdir -p "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log
mv "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-log.txt
cp "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-iso-packages.txt "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-packages.txt
mv "${AUTOBUILD_TEMPDIR}"/debian-live/log.txt "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-hdd-log.txt
cp "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-iso-packages.txt "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/log/debian-live-${DISTRIBUTION}-${ARCHITECTURE}-${PACKAGES_LIST}_${AUTOBUILD_DATE}-usb-hdd-packages.txt
# Moving images
mkdir -p "${AUTOBUILD_DESTDIR}"/"${BUILD}"-builds/${AUTOBUILD_DATE}/${ARCHITECTURE}

View File

@ -13,7 +13,7 @@ Restore_cache ()
{
DIRECTORY="${1}"
if [ "${LH_CACHE}" = "enabled" ]
if [ "${LH_CACHE_PACKAGES}" = "enabled" ]
then
if [ -d "${DIRECTORY}" ]
then
@ -27,7 +27,7 @@ Save_cache ()
{
DIRECTORY="${1}"
if [ "${LH_CACHE}" = "enabled" ]
if [ "${LH_CACHE_PACKAGES}" = "enabled" ]
then
# Cleaning current cache
Chroot "apt-get autoclean"

View File

@ -10,4 +10,4 @@
set -e
PROGRAM="`basename ${0}`"
VERSION="1.0~a7"
VERSION="1.0~a8"

View File

@ -120,9 +120,19 @@ Set_defaults ()
fi
# Setting cache option
if [ -z "${LH_CACHE}" ]
if [ -z "${LH_CACHE_INDICES}" ]
then
LH_CACHE="enabled"
LH_CACHE_INDICES="disabled"
fi
if [ -z "${LH_CACHE_PACKAGES}" ]
then
LH_CACHE_PACKAGES="enabled"
fi
if [ -z "${LH_CACHE_STAGES}" ]
then
LH_CACHE_STAGES="bootstrap"
fi
# Setting debconf frontend
@ -176,6 +186,12 @@ Set_defaults ()
LH_TASKSEL="aptitude"
fi
# Setting initramfs generator
if [ -z "${LH_INITRAMFS}" ]
then
LH_INITRAMFS="casper"
fi
# Setting root directory
if [ -z "${LIVE_ROOT}" ]
then
@ -190,6 +206,18 @@ Set_defaults ()
esac
fi
# Setting includes
if [ -z "${LIVE_INCLUDES}" ]
then
LIVE_INCLUDES="/usr/share/live-helper/includes"
fi
# Setting templates
if [ -z "${LIVE_TEMPLATES}" ]
then
LIVE_TEMPLATES="/usr/share/live-helper/templates"
fi
# Setting live helper options
if [ -z "${LH_BREAKPOINTS}" ]
then
@ -549,6 +577,12 @@ Set_defaults ()
LIVE_MEMTEST="memtest86+"
fi
# Setting debian-installer option
if [ -z "${LIVE_DEBIAN_INSTALLER}" ]
then
LIVE_DEBIAN_INSTALLER="disabled"
fi
# Setting iso volume
if [ -z "${LIVE_ISO_VOLUME}" ]
then
@ -608,16 +642,4 @@ Set_defaults ()
# Setting syslinux splash
# LIVE_SYSLINUX_SPLASH
# Setting includes
if [ -z "${LIVE_INCLUDES}" ]
then
LIVE_INCLUDES="/usr/share/live-helper/includes"
fi
# Setting templates
if [ -z "${LIVE_TEMPLATES}" ]
then
LIVE_TEMPLATES="/usr/share/live-helper/templates"
fi
}

View File

@ -47,13 +47,28 @@ Create_stagefile ()
Require_stagefile ()
{
FILE="${1}"
NAME="`basename ${1}`"
FILES="${@}"
NUMBER="`echo ${@} | wc -w`"
# Checking stage file
if [ ! -f "${FILE}" ]
for FILE in ${FILES}
do
# Find at least one of the required stages
if [ -f ${FILE} ]
then
CONTINUE="true"
NAME="${NAME} `basename ${FILE}`"
fi
done
if [ "${CONTINUE}" != "true" ]
then
Echo_error "${NAME} missing"
if [ "${NUMBER}" -gt 1 ]
then
Echo_error "one of ${NAME} is missing"
else
Echo_error "${NAME} missing"
fi
exit 1
fi
}

View File

@ -42,6 +42,7 @@ lh_binary_encryption "${@}"
# Prepare images
lh_binary_linuximage "${@}"
lh_binary_debian-installer "${@}"
lh_binary_memtest "${@}"
lh_binary_grub "${@}"
lh_binary_syslinux "${@}"
@ -54,7 +55,7 @@ lh_binary_md5sum "${@}"
lh_binary_hdd "${@}"
lh_binary_iso "${@}"
lh_binary_net "${@}"
lh_binary_usb "${@}"
lh_binary_usb-hdd "${@}"
# Deconfiguring chroot
rm -f .stage/chroot_sources

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "binary_chroot: Init"

View File

@ -0,0 +1,247 @@
#!/bin/sh
# lh_binary_debian-installer(1) - install debian-installer into binary
# Copyright (C) 2006-2007 Daniel Baumann <daniel@debian.org>
#
# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
# This is free software, and you are welcome to redistribute it
# under certain conditions; see COPYING for details.
set -e
# Source common functions
for FUNCTION in /usr/share/live-helper/functions/*.sh
do
. ${FUNCTION}
done
# Set static variables
DESCRIPTION="install debian-installer into binary"
HELP=""
USAGE="${PROGRAM} [--force]"
Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/binary
Read_conffile config/source
Set_defaults
if [ "${LIVE_DEBIAN_INSTALLER}" != "enabled" ]
then
exit 0
fi
Breakpoint "binary_debian-installer: Init"
# Requiring stage file
Require_stagefile .stage/bootstrap
# Checking stage file
Check_stagefile .stage/binary_debian-installer
# Checking lock file
Check_lockfile .lock
# Creating lock file
Create_lockfile .lock
# Setting destination directory
case "${LIVE_BINARY_IMAGE}" in
iso)
DESTDIR="binary/install"
DESTDIR_INSTALLER="cdrom"
;;
net)
DESTDIR="tftpboot"
DESTDIR_INSTALLER="netboot"
Echo_error "Not supported yet (FIXME)"
exit 1
;;
usb-hdd|hdd)
DESTDIR="binary"
DESTDIR_INSTALLER="hd-media"
;;
esac
# Temporary check for broken syslinux
if [ "${LIVE_BINARY_IMAGE}" = "iso" ]
then
# Assemble multi-arch
if [ -n "${MULTIARCH}" ]
then
case "${LIVE_ARCHITECTURE}" in
amd64)
DESTDIR="${DESTDIR}.amd"
;;
i386)
DESTDIR="${DESTDIR}.386"
;;
powerpc)
DESTDIR="${DESTDIR}.ppc"
;;
esac
fi
fi
# Downloading debian-installer
mkdir -p "${DESTDIR}"
wget --no-clobber -O "${DESTDIR}"/vmlinuz "${LIVE_MIRROR_BUILD}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DESTDIR_INSTALLER}"/vmlinuz
wget --no-clobber -O "${DESTDIR}"/initrd.gz "${LIVE_MIRROR_BUILD}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DESTDIR_INSTALLER}"/initrd.gz
# Downloading graphical-installer
if [ "${LIVE_ARCHITECTURE}" = "amd64" ] || [ "${LIVE_ARCHITECTURE}" = "i386" ] || [ "${LIVE_ARCHITECTURE}" = "powerpc" ]
then
mkdir -p "${DESTDIR}"/gtk
wget --no-clobber -O "${DESTDIR}"/gtk/vmlinuz "${LIVE_MIRROR_BUILD}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DESTDIR_INSTALLER}"/gtk/vmlinuz
wget --no-clobber -O "${DESTDIR}"/gtk/initrd.gz "${LIVE_MIRROR_BUILD}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DESTDIR_INSTALLER}"/gtk/initrd.gz
fi
# Downloading udebs
mkdir -p binary/dists/"${LIVE_DISTRIBUTION}"/main/debian-installer/binary-"${LIVE_ARCHITECTURE}"
cd binary/dists/"${LIVE_DISTRIBUTION}"/main/debian-installer/binary-"${LIVE_ARCHITECTURE}"
wget "${LIVE_MIRROR_BUILD}"/dists/"${LIVE_DISTRIBUTION}"/main/debian-installer/binary-"${LIVE_ARCHITECTURE}"/Packages.gz
gunzip -c Packages.gz > Packages
cd "${OLDPWD}"
for DISTRIBUTION in frozen stable testing unstable
do
ln -s ${LIVE_DISTRIBUTION} binary/dists/${DISTRIBUTION}
done
DEBS="`awk '/Filename: / { print $2 }' binary/dists/${LIVE_DISTRIBUTION}/main/debian-installer/binary-${LIVE_ARCHITECTURE}/Packages`"
UDEBS="`echo ${DEBS} | grep '.*.udeb'`"
rm -f packages.di
for UDEB in ${UDEBS}
do
mkdir -p binary/`dirname ${UDEB}`
cd binary/`dirname ${UDEB}`
wget "${LIVE_MIRROR_BUILD}"/${UDEB}
cd "${OLDPWD}"
done
# Downloading debs
if [ -d cache/packages_bootstrap ]
then
for FILE in cache/packages_bootstrap/*.deb
do
SOURCE="`dpkg -f ${FILE} Source`"
if [ -z "${SOURCE}" ]
then
SOURCE="`basename ${FILE} | awk -F_ '{ print $1 }'`"
fi
case "${SOURCE}" in
lib?*)
LETTER="`echo ${SOURCE} | sed 's/\(....\).*/\1/'`"
;;
*)
LETTER="`echo ${SOURCE} | sed 's/\(.\).*/\1/'`"
;;
esac
# Install directory
mkdir -p binary/pool/main/"${LETTER}"/"${SOURCE}"
# Move files
cp "${FILE}" binary/pool/main/"${LETTER}"/"${SOURCE}"
done
fi
mkdir -p binary/dists/${LIVE_DISTRIBUTION}/main/binary-${LIVE_ARCHITECTURE}
cat > binary/dists/${LIVE_DISTRIBUTION}/main/binary-${LIVE_ARCHITECTURE}/Release << EOF
Archive: ${LIVE_DISTRIBUTION}
Component: main
Origin: Debian
Label: Debian
Architecture: ${LIVE_ARCHITECTURE}
EOF
mkdir -p cache/indices_debian-installer
cat > cache/indices_debian-installer/archive << EOF
Dir
{
ArchiveDir "binary";
// OverrideDir "";
// CacheDir "";
FileListDir "cache/indices_debian-installer";
};
Default
{
Packages::Compress ". gzip";
// Packages::Extension ".deb";
// Sources::Extensions ".dsc";
// Contents::Compress "gzip";
// DeLinkLimit "0";
// FileMode "0644";
};
TreeDefault
{
// MaxContentsChange
// ContentsAge
Directory "dists/\$(DIST)/\$(SECTION)/binary-\$(ARCH)/";
Packages "dists/\$(DIST)/\$(SECTION)/binary-\$(ARCH)/Packages";
InternalPrefix "dists/\$(DIST)/\$(SECTION)/";
Contents "dists/\$(DIST)/Contents-\$(ARCH)";
// Contents::Header
// BinCacheDB "cache.\$(DIST).\$(SECTION).\$(ARCH)";
// FileList "filelist.\$(DIST).\$(SECTION).\$(ARCH)";
FileList "filelist";
// BinOverride "override.\$(DIST).\$(SECTION)";
};
tree "${LIVE_DISTRIBUTION}"
{
Sections "main";
Architectures "${LIVE_ARCHITECTURE}";
};
EOF
cd binary
find pool -name "*.deb" | sort > ../cache/indices_debian-installer/filelist
cd "${OLDPWD}"
cat > cache/indices_debian-installer/release << EOF
APT::FTPArchive::Release::Origin "Debian";
APT::FTPArchive::Release::Label "Debian";
APT::FTPArchive::Release::Suite "${LIVE_DISTRIBUTION}";
APT::FTPArchive::Release::Version "4.0";
APT::FTPArchive::Release::Codename "${LIVE_DISTRIBUTION}";
APT::FTPArchive::Release::Date "`date -R`";
APT::FTPArchive::Release::Architectures "${LIVE_ARCHITECTURE}";
APT::FTPArchive::Release::Components "main";
EOF
apt-ftparchive generate cache/indices_debian-installer/archive
apt-ftparchive -c cache/indices_debian-installer/release -o APT::FTPArchive::Release::Description="Last updated: `date -R`" release binary/dists/${LIVE_DISTRIBUTION} > binary/dists/${LIVE_DISTRIBUTION}/Release
mkdir binary/.disk
echo "main" > binary/.disk/base_components
touch binary/.disk/base_installable
echo "not_complete" > binary/.disk/cd_type
#echo "Debian GNU/Linux 4.0 r0 \"Etch\" - Official i386 NETINST Binary-1 20070407-11:29" > binary/.disk/info
echo "Debian GNU/Linux ${LIVE_DISTRIBUTION} - Unofficial ${LIVE_ARCHITECTURE} NETINST Binary-1 `date +%Y%m%d-%H:%M`" > binary/.disk/info
touch binary/.disk/mkisofs
# Creating stage file
Create_stagefile .stage/binary_debian-installer

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
if [ -z "${LIVE_ENCRYPTION}" ]
@ -51,6 +52,16 @@ Check_lockfile .lock
# Creating lock file
Create_lockfile .lock
case "${LH_INITRAMFS}" in
casper)
INITFS="casper"
;;
live-initramfs)
INITFS="live"
;;
esac
case "${LIVE_FILESYSTEM}" in
ext2)
ROOTFS="ext2"
@ -73,9 +84,9 @@ Check_package chroot/usr/bin/aespipe aespipe
Install_package
# Moving image
mv binary/casper/filesystem.${LIVE_FILESYSTEM} chroot
mv binary/${INITFS}/filesystem.${LIVE_FILESYSTEM} chroot
echo "Encrypting binary/casper/filesystem.${ROOTFS} with ${LIVE_ENCRYPTION}..."
echo "Encrypting binary/${INITFS}/filesystem.${ROOTFS} with ${LIVE_ENCRYPTION}..."
cat >> chroot/encrypt << EOF
while true
@ -97,7 +108,7 @@ EOF
Chroot "sh encrypt"
# Move image
mv chroot/filesystem.${LIVE_FILESYSTEM} binary/casper
mv chroot/filesystem.${LIVE_FILESYSTEM} binary/${INITFS}
rm -f chroot/encrypt
# Removing depends

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
if [ "${LIVE_BOOTLOADER}" != "grub" ]
@ -74,10 +75,21 @@ Check_package chroot/usr/sbin/grub grub
# Installing depends
Install_package
case "${LH_INITRAMFS}" in
casper)
INITFS="casper"
;;
live-initramfs)
INITFS="live"
;;
esac
# Setting destination directory
case "${LIVE_BINARY_IMAGE}" in
iso|usb|hdd)
DESTDIR="binary/live"
iso|usb-hdd|hdd)
DESTDIR_LIVE="binary/live"
DESTDIR_INSTALL="binary/install"
;;
net)
@ -93,17 +105,23 @@ then
if [ -n "${MULTIARCH}" ]
then
case "${LIVE_ARCHITECTURE}" in
amd64)
DESTDIR_LIVE="${DESTDIR_LIVE}.amd"
DESTDIR_INSTALL="${DESTDIR_INSTALL}.amd"
;;
i386)
DESTDIR="${DESTDIR}.386"
DESTDIR_LIVE="${DESTDIR_LIVE}.386"
DESTDIR_INSTALL="${DESTDIR_INSTALL}.386"
;;
esac
fi
fi
# Creating directory
if [ ! -d "${DESTDIR}" ]
if [ ! -d "${DESTDIR_LIVE}" ]
then
mkdir -p "${DESTDIR}"
mkdir -p "${DESTDIR_LIVE}"
fi
# Setting boot parameters
@ -129,8 +147,9 @@ FAILSAFE="noapic noapm nodma nomce nolapic nosmp vga=normal"
# Assembling kernel configuration
DEFAULT_FLAVOUR="`echo ${LIVE_KERNEL_FLAVOUR} | awk '{ print $1 }'`"
LINUX="title\t\tDebian GNU/Linux - Live\nkernel\t\t/`basename ${DESTDIR}`/`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}` boot=casper LIVE_BOOTAPPEND\ninitrd\t\t/`basename ${DESTDIR}`/initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'`"
LINUX="${LINUX}\n\ntitle\t\tDebian GNU/Linux - Live (failsafe mode)\nkernel\t\t/`basename ${DESTDIR}`/`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}` boot=casper LIVE_BOOTAPPEND ${FAILSAFE}\ninitrd\t\t/`basename ${DESTDIR}`/initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'`"
LINUX="title\t\tDebian GNU/Linux - live\nkernel\t\t/`basename ${DESTDIR_LIVE}`/`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}` boot=${INITFS} LIVE_BOOTAPPEND\ninitrd\t\t/`basename ${DESTDIR_LIVE}`/initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'`"
LINUX="${LINUX}\n\ntitle\t\tDebian GNU/Linux - live (fail-safe mode)\nkernel\t\t/`basename ${DESTDIR_LIVE}`/`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}\ninitrd\t\t/`basename ${DESTDIR_LIVE}`/initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'`"
if [ "`echo ${LIVE_KERNEL_FLAVOUR} | wc -w`" -gt "1" ]
then
@ -138,21 +157,37 @@ then
do
if [ -z "${LINUX}" ]
then
LINUX="title\t\tDebian GNU/Linux - Live, kernel `basename ${KERNEL} | sed -e 's/vmlinuz-//'`\nkernel\t\t/`basename ${DESTDIR}`/`basename ${KERNEL}` boot=casper LIVE_BOOTAPPEND\ninitrd\t\t/`basename ${DESTDIR}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`"
LINUX="${LINUX}\n\ntitle\t\tDebian GNU/Linux - Live, kernel `basename ${KERNEL} | sed -e 's/vmlinuz-//'` (failsafe mode)\nkernel\t\t/`basename ${DESTDIR}`/`basename ${KERNEL}` boot=casper LIVE_BOOTAPPEND ${FAILSAFE}\ninitrd\t\t/`basename ${DESTDIR}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`"
LINUX="title\t\tDebian GNU/Linux - live, kernel `basename ${KERNEL} | sed -e 's/vmlinuz-//'`\nkernel\t\t/`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}` boot=${INITFS} LIVE_BOOTAPPEND\ninitrd\t\t/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`"
LINUX="${LINUX}\n\ntitle\t\tDebian GNU/Linux - live, kernel `basename ${KERNEL} | sed -e 's/vmlinuz-//'` (fail-safe mode)\nkernel\t\t/`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}\ninitrd\t\t/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`"
else
LINUX="${LINUX}\n\ntitle\t\tDebian GNU/Linux - Live, kernel `basename ${KERNEL} | sed -e 's/vmlinuz-//'`\nkernel /`basename ${DESTDIR}`/`basename ${KERNEL}` boot=casper LIVE_BOOTAPPEND\ninitrd\t\t/`basename ${DESTDIR}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`"
LINUX="${LINUX}\n\ntitle\t\tDebian GNU/Linux - Live, kernel `basename ${KERNEL} | sed -e 's/vmlinuz-//'` (failsafe mode)\nkernel /`basename ${DESTDIR}`/`basename ${KERNEL}` boot=casper LIVE_BOOTAPPEND ${FAILSAFE}\ninitrd\t\t/`basename ${DESTDIR}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`"
LINUX="${LINUX}\n\ntitle\t\tDebian GNU/Linux - live, kernel `basename ${KERNEL} | sed -e 's/vmlinuz-//'`\nkernel /`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}` boot=${INITFS} LIVE_BOOTAPPEND\ninitrd\t\t/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`"
LINUX="${LINUX}\n\ntitle\t\tDebian GNU/Linux - live, kernel `basename ${KERNEL} | sed -e 's/vmlinuz-//'` (fail-safe mode)\nkernel /`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}\ninitrd\t\t/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`"
fi
done
fi
LINUX="`echo ${LINUX} | sed -e 's#//#/#g'`"
# Assembling memtest configuration
if [ -f "${DESTDIR}"/memtest ]
# Assembling debian-installer configuration
if [ "${LIVE_DEBIAN_INSTALLER}" = "enabled" ]
then
MEMTEST="title\t\t${LIVE_MEMTEST}\nkernel\t\t/`basename ${DESTDIR}`/memtest"
LINUX="title\t\tLive:\nroot\n\n${LINUX}"
LIVE_KERNEL_INSTALL="title\t\tInstaller:\nroot"
LIVE_KERNEL_INSTALL="${LIVE_KERNEL_INSTALL}\n\ntitle\t\tDebian GNU/Linux - install\nkernel\t\t/`basename ${DESTDIR_INSTALL}`/vmlinuz vga=normal -- \ninitrd\t\t/`basename ${DESTDIR_INSTALL}`/initrd.gz"
LIVE_KERNEL_INSTALL="${LIVE_KERNEL_INSTALL}\n\ntitle\t\tDebian GNU/Linux - installgui\nkernel\t\t/`basename ${DESTDIR_INSTALL}`/vmlinuz video=vesa:ywrap,mtrr vga=788 -- \ninitrd\t\t/`basename ${DESTDIR_INSTALL}`/gtk/initrd.gz"
LIVE_KERNEL_INSTALL="${LIVE_KERNEL_INSTALL}\n\ntitle\t\tDebian GNU/Linux - expert\nkernel\t\t/`basename ${DESTDIR_INSTALL}`/vmlinuz priority=low vga=normal -- \ninitrd\t\t/`basename ${DESTDIR_INSTALL}`/initrd.gz"
LIVE_KERNEL_INSTALL="${LIVE_KERNEL_INSTALL}\n\ntitle\t\tDebian GNU/Linux - expertgui\nkernel\t\t/`basename ${DESTDIR_INSTALL}`/vmlinuz priority=low video=vesa:ywrap,mtrr vga=788\ninitrd\t\t/`basename ${DESTDIR_INSTALL}`/gtk/initrd.gz"
LIVE_KERNEL_INSTALL="${LIVE_KERNEL_INSTALL}\n\ntitle\t\tDebian GNU/Linux - rescue\nkernel\t\t/`basename ${DESTDIR_INSTALL}`/vmlinuz vga=normal rescue/enable=true -- \ninitrd\t\t/`basename ${DESTDIR_INSTALL}`/initrd.gz"
LIVE_KERNEL_INSTALL="${LIVE_KERNEL_INSTALL}\n\ntitle\t\tDebian GNU/Linux - rescuegui\nkernel\t\t/`basename ${DESTDIR_INSTALL}`/vmlinuz video=vesa:ywrap,mtrr vga=788 rescue/enable=true --\ninitrd\t\t/`basename ${DESTDIR_INSTALL}`/gtk/initrd.gz"
LIVE_KERNEL_INSTALL="${LIVE_KERNEL_INSTALL}\n\ntitle\t\tDebian GNU/Linux - auto\nkernel\t\t/`basename ${DESTDIR_INSTALL}`/vmlinuz auto=true priority=critical vga=normal -- \ninitrd\t\t/`basename ${DESTDIR_INSTALL}`/initrd.gz"
LIVE_KERNEL_INSTALL="${LIVE_KERNEL_INSTALL}\n\ntitle\t\tDebian GNU/Linux - autogui\nkernel\t\t/`basename ${DESTDIR_INSTALL}`/vmlinuz auto=true priority=critical video=vesa:ywrap,mtrr vga=788 -- \ninitrd\t\t/`basename ${DESTDIR_INSTALL}`/gtk/initrd.gz"
fi
# Assembling memtest configuration
if [ -f "${DESTDIR_LIVE}"/memtest ]
then
MEMTEST="title\t\t${LIVE_MEMTEST}\nkernel\t\t/`basename ${DESTDIR_LIVE}`/memtest"
MEMTEST="`echo ${MEMTEST} | sed -e 's#//#/#g'`"
fi
@ -166,7 +201,7 @@ case ${LIVE_BINARY_IMAGE} in
cp chroot/usr/lib/grub/*/stage2_eltorito binary/boot/grub
;;
usb|hdd)
usb-hdd|hdd)
cp chroot/usr/lib/grub/*/stage1 chroot/usr/lib/grub/*/stage2 binary/boot/grub
;;
esac
@ -185,7 +220,7 @@ then
rm -f binary/boot/grub/splash.xpm.gz
# Removing splash entry
sed -e "s/splashimage.*//" binary/boot/grub/menu.lst
sed -i -e "s/splashimage.*//" binary/boot/grub/menu.lst
else
# Overwriting splash file
cp -f "${LIVE_GRUB_SPLASH}" binary/boot/grub/splash.xpm.gz
@ -194,8 +229,7 @@ fi
# Configure grub templates
cat >> binary/boot/grub/menu.lst << EOF
# This is a divider, added to separate the menu items below from the Debian
# ones.
title Other:
root

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
if [ "${LIVE_INCLUDES}" = "none" ]
@ -79,17 +80,23 @@ esac
if [ "${LIVE_DEBIAN_INSTALLER}" = "enabled" ]
then
# Working arround vfat limitations
if [ "${LIVE_BINARY_IMAGE}" = "usb-hdd" ]
then
CP_OPTIONS="--preserve=link,mode,timestamps"
fi
# Copying d-i templates
if [ -d "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/install ] && \
ls "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/install/* &> /dev/null
then
cp -r "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/install/* binary
cp -r ${CP_OPTIONS} "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/install/* binary
fi
if [ -d "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/install."${ARCH}" ] && \
ls "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/install."${ARCH}"/* &> /dev/null
then
cp -r "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/install."${ARCH}"/* binary
cp -r ${CP_OPTIONS} "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/install."${ARCH}"/* binary
fi
# Adjusting d-i templates
@ -105,8 +112,8 @@ then
DEBIAN_TOOLS_TXT="/tools/"
fi
sed -i -e "s/DEBIAN_NAME/${DEBIAN_NAME}/g" -e "s/DEBIAN_DATE/${DEBIAN_DATE}/g" -e "s/DEBIAN_TOOLS/${DEBIAN_TOOLS_HTML}/g" binary/README.html
sed -i -e "s/DEBIAN_NAME/${DEBIAN_NAME}/g" -e "s/DEBIAN_DATE/${DEBIAN_DATE}/g" -e "s/DEBIAN_TOOLS/${DEBIAN_TOOLS_TXT}/g" binary/README.txt
sed -i -e "s/DEBIAN_NAME/${DEBIAN_NAME}/g" -e "s/DEBIAN_DATE/${DEBIAN_DATE}/g" -e "s#DEBIAN_TOOLS#${DEBIAN_TOOLS_HTML}#g" binary/README.html
sed -i -e "s/DEBIAN_NAME/${DEBIAN_NAME}/g" -e "s/DEBIAN_DATE/${DEBIAN_DATE}/g" -e "s#DEBIAN_TOOLS#${DEBIAN_TOOLS_TXT}#g" binary/README.txt
fi
# Creating stage file

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
for IMAGE in ${LIVE_BINARY_IMAGE}
@ -63,7 +64,7 @@ do
if [ "${LH_VERBOSE}" = "enabled" ]
then
GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -i"
GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -v"
fi
# Moving image
@ -74,19 +75,19 @@ do
then
case "${LIVE_BOOTLOADER}" in
grub)
Chroot "${LH_GENISOIMAGE} ${GENISOIMAGE_OPTIONS} -o binary.iso -r -J -l -b boot/grub/stage2_eltorito -m boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table binary"
Chroot "${LH_GENISOIMAGE} ${GENISOIMAGE_OPTIONS} -o binary.iso -r -J -l -cache-inodes -b boot/grub/stage2_eltorito -m boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table binary"
;;
syslinux)
#Chroot "${LH_GENISOIMAGE} -A \"Debian Live\" -p \"Debian Live; http://debian-live.alioth.debian.org/; debian-live-devel@lists.alioth.debian.org\" -publisher \"Debian Live; http://debian-live.alioth.debian.org/; debian-live-devel@lists.alioth.debian.org\" -o binary.iso -r -J -l -V \"${LIVE_ISO_VOLUME}\" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table binary"
Chroot "${LH_GENISOIMAGE} ${GENISOIMAGE_OPTIONS} -o binary.iso -r -J -l -b isolinux/isolinux.bin -m isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table binary"
#Chroot "${LH_GENISOIMAGE} -A \"Debian Live\" -p \"Debian Live; http://debian-live.alioth.debian.org/; debian-live-devel@lists.alioth.debian.org\" -publisher \"Debian Live; http://debian-live.alioth.debian.org/; debian-live-devel@lists.alioth.debian.org\" -o binary.iso -r -J -l -V \"${LIVE_ISO_VOLUME}\" -cache-inodes -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table binary"
Chroot "${LH_GENISOIMAGE} ${GENISOIMAGE_OPTIONS} -o binary.iso -r -J -l -cache-inodes -b isolinux/isolinux.bin -m isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table binary"
;;
esac
else
Echo_warning "Bootloader on your architecture not yet supported (Continuing in 5 seconds)."
sleep 5
#Chroot "${LH_GENISOIMAGE} -A 'Debian Live' -p 'Debian Live; http://debian-live.alioth.debian.org/; debian-live-devel@lists.alioth.debian.org' -publisher 'Debian Live; http://debian-live.alioth.debian.org/; debian-live-devel@lists.alioth.debian.org' -o binary.iso -r -J -l -V \"${LIVE_ISO_VOLUME}\" binary"
Chroot "${LH_GENISOIMAGE} ${GENISOIMAGE} -o binary.iso -r -J -l binary"
Chroot "${LH_GENISOIMAGE} ${GENISOIMAGE} -o binary.iso -r -J -l binary -cache-inodes"
fi
# Move image

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "binary_linuximage: Init"
@ -58,7 +59,7 @@ case "${LIVE_BINARY_IMAGE}" in
DESTDIR="tftpboot"
;;
usb|hdd)
usb-hdd|hdd)
DESTDIR="binary"
;;
esac
@ -70,9 +71,17 @@ then
if [ -n "${MULTIARCH}" ]
then
case "${LIVE_ARCHITECTURE}" in
amd64)
DESTDIR="${DESTDIR}.amd"
;;
i386)
DESTDIR="${DESTDIR}.386"
;;
powerpc)
DESTDIR="${DESTDIR}.ppc"
;;
esac
fi
fi

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "binary_localincludes: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "binary_manifest: Init"
@ -45,8 +46,18 @@ Check_lockfile .lock
# Creating lock file
Create_lockfile .lock
case "${LH_INITRAMFS}" in
casper)
INITFS="casper"
;;
live-initramfs)
INITFS="live"
;;
esac
# Add filesystem.manifest
Chroot "dpkg --get-selections" | awk '{ print $1 }' | sort -u > binary/casper/filesystem.manifest
Chroot "dpkg --get-selections" | awk '{ print $1 }' | sort -u > binary/${INITFS}/filesystem.manifest
# Add packages.list
Chroot "dpkg -l" > packages.txt

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "binary_md5sum: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
if [ "${LIVE_MEMTEST}" = "disabled" ]
@ -80,7 +81,7 @@ case "${LIVE_BINARY_IMAGE}" in
DESTDIR="tftpboot"
;;
usb|hdd)
usb-hdd|hdd)
DESTDIR="binary"
;;
esac
@ -92,6 +93,10 @@ then
if [ -n "${MULTIARCH}" ]
then
case "${LIVE_ARCHITECTURE}" in
amd64)
DESTDIR="${DESTDIR}.amd"
;;
i386)
DESTDIR="${DESTDIR}.386"
;;

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "binary_net: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "binary_rootfs: Init"
@ -46,10 +47,20 @@ Check_lockfile .lock
# Creating lock file
Create_lockfile .lock
case "${LH_INITRAMFS}" in
casper)
INITFS="casper"
;;
live-initramfs)
INITFS="live"
;;
esac
# Creating directory
if [ ! -d binary/casper ]
if [ ! -d binary/${INITFS} ]
then
mkdir -p binary/casper
mkdir -p binary/${INITFS}
fi
case "${LIVE_FILESYSTEM}" in
@ -61,9 +72,9 @@ case "${LIVE_FILESYSTEM}" in
Install_package
# Remove old ext2 image
if [ -f binary/casper/filesystem.ext2 ]
if [ -f binary/${INITFS}/filesystem.ext2 ]
then
rm -f binary/casper/filesystem.ext2
rm -f binary/${INITFS}/filesystem.ext2
fi
DU_DIM="`du -ks chroot | cut -f1`"
@ -72,7 +83,7 @@ case "${LIVE_FILESYSTEM}" in
Chroot "genext2fs --size-in-blocks=${REAL_DIM} --reserved-blocks=0 --root=chroot filesystem.ext2"
# Move image
mv chroot/filesystem.ext2 binary/casper
mv chroot/filesystem.ext2 binary/${INITFS}
rm -rf chroot/chroot
# Removing depends
@ -80,12 +91,12 @@ case "${LIVE_FILESYSTEM}" in
;;
plain)
if [ -d binary/casper/filesystem.dir ]
if [ -d binary/${INITFS}/filesystem.dir ]
then
rm -rf binary/casper/filesystem.dir
rm -rf binary/${INITFS}/filesystem.dir
fi
mv chroot/chroot binary/casper/filesystem.dir
mv chroot/chroot binary/${INITFS}/filesystem.dir
;;
squashfs)
@ -96,12 +107,12 @@ case "${LIVE_FILESYSTEM}" in
Install_package
# Remove old squashfs image
if [ -f binary/casper/filesystem.squashfs ]
if [ -f binary/${INITFS}/filesystem.squashfs ]
then
rm -f binary/casper/filesystem.squashfs
rm -f binary/${INITFS}/filesystem.squashfs
fi
if [ "${LH_QUIET}" = "enabled" ]
if [ "${LH_QUIET}" = "enabled" ] && [ "${LIVE_DISTRIBUTION}" != "etch" ] && [ "${LIVE_DISTRIBUTION}" != "testing" ]
then
MKSQUASHFS_OPTIONS="${MKSQUASHFS_OPTIONS} -no-progress"
fi
@ -120,12 +131,12 @@ case "${LIVE_FILESYSTEM}" in
fi
# Move image
${LH_ROOT_COMMAND} mv chroot/filesystem.squashfs binary/casper
${LH_ROOT_COMMAND} mv chroot/filesystem.squashfs binary/${INITFS}
${LH_ROOT_COMMAND} rm -rf chroot/chroot
if [ -n "${LH_ROOT_COMMAND}" ]
then
${LH_ROOT_COMMAND} chown -R `whoami`:`whoami` binary/casper
${LH_ROOT_COMMAND} chown -R `whoami`:`whoami` binary/${INITFS}
fi
# Removing depends

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
if [ "${LIVE_BOOTLOADER}" != "syslinux" ]
@ -74,18 +75,31 @@ Check_package chroot/usr/bin/syslinux syslinux
# Installing depends
Install_package
case "${LH_INITRAMFS}" in
casper)
INITFS="casper"
;;
live-initramfs)
INITFS="live"
;;
esac
# Setting destination directory
case "${LIVE_BINARY_IMAGE}" in
iso)
DESTDIR="binary/live"
DESTDIR_LIVE="binary/live"
DESTDIR_INSTALL="binary/install"
;;
net)
DESTDIR="tftpboot"
DESTDIR_LIVE="tftpboot"
DESTDIR_INSTALL="tftpboot"
;;
usb|hdd)
DESTDIR="binary"
usb-hdd|hdd)
DESTDIR_LIVE="binary"
DESTDIR_INSTALL="binary"
;;
esac
@ -96,17 +110,23 @@ then
if [ -n "${MULTIARCH}" ]
then
case "${LIVE_ARCHITECTURE}" in
amd64)
DESTDIR_LIVE="${DESTDIR_LIVE}.amd"
DESTDIR_INSTALL="${DESTDIR_INSTALL}.amd"
;;
i386)
DESTDIR="${DESTDIR}.386"
DESTDIR_LIVE="${DESTDIR_LIVE}.386"
DESTDIR_INSTALL="${DESTDIR_INSTALL}.386"
;;
esac
fi
fi
# Creating directory
if [ ! -d "${DESTDIR}" ]
if [ ! -d "${DESTDIR_LIVE}" ]
then
mkdir -p "${DESTDIR}"
mkdir -p "${DESTDIR_LIVE}"
fi
# Setting boot parameters
@ -134,12 +154,12 @@ FAILSAFE="noapic noapm nodma nomce nolapic nosmp vga=normal"
if [ "${LIVE_BINARY_IMAGE}" = "iso" ]
then
DEFAULT_FLAVOUR="`echo ${LIVE_KERNEL_FLAVOUR} | awk '{ print $1 }'`"
LINUX="label live\n kernel /`basename ${DESTDIR}`/`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n append initrd=/`basename ${DESTDIR}`/initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=casper LIVE_BOOTAPPEND"
LINUX="${LINUX}\n\nlabel live-failsafe\n kernel /`basename ${DESTDIR}`/`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n append initrd=/`basename ${DESTDIR}`/initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=casper LIVE_BOOTAPPEND ${FAILSAFE}"
LINUX="LABEL live\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
LINUX="${LINUX}\n\nLABEL live-failsafe\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
else
DEFAULT_FLAVOUR="`echo ${LIVE_KERNEL_FLAVOUR} | awk '{ print $1 }'`"
LINUX="label live\n kernel `basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n append initrd=initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=casper LIVE_BOOTAPPEND"
LINUX="${LINUX}\n\nlabel live-failsafe\n kernel `basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n append initrd=initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=casper LIVE_BOOTAPPEND ${FAILSAFE}"
LINUX="LABEL live\n\tkernel `basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
LINUX="${LINUX}\n\nLABEL live-failsafe\n\tkernel `basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
fi
if [ "`echo ${LIVE_KERNEL_FLAVOUR} | wc -w`" -gt "1" ]
@ -150,20 +170,20 @@ then
then
if [ "${LIVE_BINARY_IMAGE}" = "iso" ]
then
LINUX="label live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n kernel /`basename ${DESTDIR}`/`basename ${KERNEL}`\n append initrd=/`basename ${DESTDIR}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=casper LIVE_BOOTAPPEND"
LINUX="${LINUX}\n\nlabel live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`-failsafe\n kernel /`basename ${DESTDIR}`/`basename ${KERNEL}`\n append initrd=/`basename ${DESTDIR}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=casper LIVE_BOOTAPPEND ${FAILSAFE}"
LINUX="LABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
LINUX="${LINUX}\n\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`-failsafe\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
else
LINUX="label live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n kernel `basename ${KERNEL}`\n append initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=casper live_BOOTAPPEND"
LINUX="${LINUX}\n\nlabel live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n kernel `basename ${KERNEL}`\n append initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=casper LIVE_BOOTAPPEND ${FAILSAFE}"
LINUX="LABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel `basename ${KERNEL}`\n\tappend initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} live_BOOTAPPEND"
LINUX="${LINUX}\n\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel `basename ${KERNEL}`\n\tappend initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
fi
else
if [ "${LIVE_BINARY_IMAGE}" = "iso" ]
then
LINUX="${LINUX}\n\nlabel live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n kernel /`basename ${DESTDIR}`/`basename ${KERNEL}`\n append initrd=/`basename ${DESTDIR}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=casper LIVE_BOOTAPPEND"
LINUX="${LINUX}\n\nlabel live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`-failsafe\n kernel /`basename ${DESTDIR}`/`basename ${KERNEL}`\n append initrd=/`basename ${DESTDIR}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=casper LIVE_BOOTAPPEND ${FAILSAFE}"
LINUX="${LINUX}\n\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
LINUX="${LINUX}\n\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`-failsafe\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
else
LINUX="${LINUX}\n\nlabel live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n kernel `basename ${KERNEL}`\n append initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=casper LIVE_BOOTAPPEND"
LINUX="${LINUX}\n\nlabel live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n kernel `basename ${KERNEL}`\n append initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=casper LIVE_BOOTAPPEND ${FAILSAFE}"
LINUX="${LINUX}\n\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel `basename ${KERNEL}`\n\tappend initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
LINUX="${LINUX}\n\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel `basename ${KERNEL}`\n\tappend initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}"
fi
fi
done
@ -172,15 +192,29 @@ fi
# Removing '//'
LINUX="`echo ${LINUX} | sed -e 's#//#/#g'`"
# Assembling debian-installer configuration
if [ "${LIVE_DEBIAN_INSTALLER}" = "enabled" ]
then
LIVE_KERNEL_INSTALL="LABEL install\n\tkernel /`basename ${DESTDIR_INSTALL}`/vmlinuz\n\tappend vga=normal initrd=/`basename ${DESTDIR_INSTALL}`/initrd.gz -- "
LIVE_KERNEL_INSTALL="${LIVE_KERNEL_INSTALL}\n\nLABEL linux\n\tkernel /`basename ${DESTDIR_INSTALL}`/vmlinuz\n\tappend vga=normal initrd=/`basename ${DESTDIR_INSTALL}`/initrd.gz -- \n\n"
LIVE_KERNEL_INSTALL="${LIVE_KERNEL_INSTALL}\n\nLABEL installgui\n\tkernel /`basename ${DESTDIR_INSTALL}`/vmlinuz\n\tappend video=vesa:ywrap,mtrr vga=788 initrd=/`basename ${DESTDIR_INSTALL}`/gtk/initrd.gz -- "
LIVE_KENREL_INSTALL="${LIVE_KERNEL_INSTALL}\n\nLABEL expert\n\tkernel /`basename ${DESTDIR_INSTALL}`/vmlinuz\n\tappend priority=low vga=normal initrd=/`basename ${DESTDIR_INSTALL}`/initrd.gz -- "
LIVE_KERNEL_INSTALL="${LIVE_KERNEL_INSTALL}\n\nLABEL expertgui\n\tkernel /`basename ${DESTDIR_INSTALL}`/vmlinuz\n\tappend priority=low video=vesa:ywrap,mtrr vga=788 initrd=/`basename ${DESTDIR_INSTALL}`/gtk/initrd.gz -- "
LIVE_KERNEL_INSTALL="${LIVE_KERNEL_INSTALL}\n\nLABEL rescue\n\tkernel /`basename ${DESTDIR_INSTALL}`/vmlinuz\n\tappend vga=normal initrd=/`basename ${DESTDIR_INSTALL}`/initrd.gz rescue/enable=true -- "
LIVE_KERNEL_INSTALL="${LIVE_KERNEL_INSTALL}\n\nLABEL rescuegui\n\tkernel /`basename ${DESTDIR_INSTALL}`/vmlinuz\n\tappend video=vesa:ywrap,mtrr vga=788 initrd=/`basename ${DESTDIR_INSTALL}`/gtk/initrd.gz rescue/enable=true -- "
LIVE_KERNEL_INSTALL="${LIVE_KERNEL_INSTALL}\n\nLABEL auto\n\tkernel /`basename ${DESTDIR_INSTALL}`/vmlinuz\n\tappend auto=true priority=critical vga=normal initrd=/`basename ${DESTDIR_INSTALL}`/initrd.gz -- "
LIVE_KERNEL_INSTALL="${LIVE_KERNEL_INSTALL}\n\nLABEL autogui\n\tkernel /`basename ${DESTDIR_INSTALL}`/vmlinuz\n\tappend auto=true priority=critical video=vesa:ywrap,mtrr vga=788 initrd=/`basename ${DESTDIR_INSTALL}`/gtk/initrd.gz -- "
fi
# Assembling memtest configuration
if [ -f "${DESTDIR}"/memtest ]
if [ -f "${DESTDIR_LIVE}"/memtest ]
then
if [ "${LIVE_BINARY_IMAGE}" = "iso" ]
then
MEMTEST="label memtest\n kernel /`basename ${DESTDIR}`/memtest"
MEMTEST="LABEL memtest\n\tkernel /`basename ${DESTDIR_LIVE}`/memtest"
MEMTEST="`echo ${MEMTEST} | sed -e 's#//#/#g'`"
else
MEMTEST="label memtest\n kernel memtest"
MEMTEST="LABEL memtest\n\tkernel memtest"
fi
fi
@ -202,7 +236,7 @@ case "${LIVE_BINARY_IMAGE}" in
if [ "${LIVE_SYSLINUX_SPLASH}" = "none" ]
then
rm -f binary/isolinux/splash.rle
sed -e "s/.*splash.*//" binary/isolinux/isolinux.txt
sed -e "s/.*splash.*//" binary/isolinux/boot.txt
else
cp -f "${LIVE_SYSLINUX_SPLASH}" binary/isolinux/splash.rle
fi
@ -224,13 +258,13 @@ case "${LIVE_BINARY_IMAGE}" in
do
NUMBER=$(($NUMBER + 1))
mv "${DESTDIR}"/vmlinuz-*-${FLAVOUR} "${DESTDIR}"/vmlinuz${NUMBER}
mv "${DESTDIR}"/initrd.img-*-${FLAVOUR} "${DESTDIR}"/initrd${NUMBER}.img
mv "${DESTDIR_LIVE}"/vmlinuz-*-${FLAVOUR} "${DESTDIR_LIVE}"/vmlinuz${NUMBER}
mv "${DESTDIR_LIVE}"/initrd.img-*-${FLAVOUR} "${DESTDIR_LIVE}"/initrd${NUMBER}.img
sed -i -e "s/vmlinuz-.*-${FLAVOUR}/vmlinuz${NUMBER}/g" -e "s/initrd.img-.*-${FLAVOUR}/initrd${NUMBER}.img/g" binary/isolinux/isolinux.cfg
done
else
mv "${DESTDIR}"/vmlinuz-*-${LIVE_KERNEL_FLAVOUR} "${DESTDIR}"/vmlinuz
mv "${DESTDIR}"/initrd.img-*-${LIVE_KERNEL_FLAVOUR} "${DESTDIR}"/initrd.img
mv "${DESTDIR_LIVE}"/vmlinuz-*-${LIVE_KERNEL_FLAVOUR} "${DESTDIR_LIVE}"/vmlinuz
mv "${DESTDIR_LIVE}"/initrd.img-*-${LIVE_KERNEL_FLAVOUR} "${DESTDIR_LIVE}"/initrd.img
sed -i -e "s/vmlinuz-.*-${LIVE_KERNEL_FLAVOUR}/vmlinuz/g" -e "s/initrd.img-.*-${LIVE_KERNEL_FLAVOUR}/initrd.img/g" binary/isolinux/isolinux.cfg
fi
;;
@ -243,7 +277,7 @@ case "${LIVE_BINARY_IMAGE}" in
mkdir -p tftpboot/pxelinux.cfg
cp -r "${LIVE_TEMPLATES}"/syslinux/* tftpboot/pxelinux.cfg
mv tftpboot/pxelinux.cfg/pxelinux.cfg tftpboot/pxelinux.cfg/default
sed -i -e 's#splash.rle#pxelinux.cfg/splash.rle#' tftpboot/pxelinux.cfg/isolinux.txt
sed -i -e 's#splash.rle#pxelinux.cfg/splash.rle#' tftpboot/pxelinux.cfg/boot.txt
# Copying splash screen
if [ -f config/binary_syslinux/splash.rle ]
@ -256,7 +290,7 @@ case "${LIVE_BINARY_IMAGE}" in
if [ "${LIVE_SYSLINUX_SPLASH}" = "none" ]
then
rm -f tftpboot/pxelinux.cfg/splash.rle
sed -e "s/.*splash.*//" tftpboot/pxelinux.cfg/isolinux.txt
sed -e "s/.*splash.*//" tftpboot/pxelinux.cfg/boot.txt
else
cp -f "${LIVE_SYSLINUX_SPLASH}" tftpboot/pxelinux.cfg/splash.rle
fi
@ -278,25 +312,23 @@ case "${LIVE_BINARY_IMAGE}" in
do
NUMBER=$(($NUMBER + 1))
mv "${DESTDIR}"/vmlinuz-*-${FLAVOUR} "${DESTDIR}"/vmlinuz${NUMBER}
mv "${DESTDIR}"/initrd.img-*-${FLAVOUR} "${DESTDIR}"/initrd${NUMBER}.img
mv "${DESTDIR_LIVE}"/vmlinuz-*-${FLAVOUR} "${DESTDIR_LIVE}"/vmlinuz${NUMBER}
mv "${DESTDIR_LIVE}"/initrd.img-*-${FLAVOUR} "${DESTDIR_LIVE}"/initrd${NUMBER}.img
sed -i -e "s/vmlinuz-.*-${FLAVOUR}/vmlinuz${NUMBER}/g" -e "s/initrd.img-.*-${FLAVOUR}/initrd${NUMBER}.img/g" binary/isolinux/isolinux.cfg
done
else
mv "${DESTDIR}"/vmlinuz-*-${LIVE_KERNEL_FLAVOUR} "${DESTDIR}"/vmlinuz
mv "${DESTDIR}"/initrd.img-*-${LIVE_KERNEL_FLAVOUR} "${DESTDIR}"/initrd.img
mv "${DESTDIR_LIVE}"/vmlinuz-*-${LIVE_KERNEL_FLAVOUR} "${DESTDIR_LIVE}"/vmlinuz
mv "${DESTDIR_LIVE}"/initrd.img-*-${LIVE_KERNEL_FLAVOUR} "${DESTDIR_LIVE}"/initrd.img
sed -i -e "s/vmlinuz-.*-${LIVE_KERNEL_FLAVOUR}/vmlinuz/g" -e "s/initrd.img-.*-${LIVE_KERNEL_FLAVOUR}/initrd.img/g" binary/isolinux/isolinux.cfg
fi
;;
usb|hdd)
usb-hdd|hdd)
# Copying syslinux
mkdir -p binary
cp chroot/usr/lib/syslinux/isolinux.bin binary/syslinux.bin
cp -r "${LIVE_TEMPLATES}"/syslinux/* binary
mv binary/isolinux.cfg binary/syslinux.cfg
mv binary/isolinux.txt binary/syslinux.txt
sed -i -e "s/isolinux.txt/syslinux.txt/" binary/syslinux.cfg
# Copying splash screen
if [ -f config/binary_syslinux/splash.rle ]
@ -331,13 +363,13 @@ case "${LIVE_BINARY_IMAGE}" in
do
NUMBER=$(($NUMBER + 1))
mv "${DESTDIR}"/vmlinuz-*-${FLAVOUR} "${DESTDIR}"/vmlinuz${NUMBER}
mv "${DESTDIR}"/initrd.img-*-${FLAVOUR} "${DESTDIR}"/initrd${NUMBER}.img
mv "${DESTDIR_LIVE}"/vmlinuz-*-${FLAVOUR} "${DESTDIR_LIVE}"/vmlinuz${NUMBER}
mv "${DESTDIR_LIVE}"/initrd.img-*-${FLAVOUR} "${DESTDIR_LIVE}"/initrd${NUMBER}.img
sed -i -e "s/vmlinuz-.*-${FLAVOUR}/vmlinuz${NUMBER}/g" -e "s/initrd.img-.*-${FLAVOUR}/initrd${NUMBER}.img/g" binary/syslinux.cfg
done
else
mv "${DESTDIR}"/vmlinuz-*-${LIVE_KERNEL_FLAVOUR} "${DESTDIR}"/vmlinuz
mv "${DESTDIR}"/initrd.img-*-${LIVE_KERNEL_FLAVOUR} "${DESTDIR}"/initrd.img
mv "${DESTDIR_LIVE}"/vmlinuz-*-${LIVE_KERNEL_FLAVOUR} "${DESTDIR_LIVE}"/vmlinuz
mv "${DESTDIR_LIVE}"/initrd.img-*-${LIVE_KERNEL_FLAVOUR} "${DESTDIR_LIVE}"/initrd.img
sed -i -e "s/vmlinuz-.*-${LIVE_KERNEL_FLAVOUR}/vmlinuz/g" -e "s/initrd.img-.*-${LIVE_KERNEL_FLAVOUR}/initrd.img/g" binary/syslinux.cfg
fi
;;

View File

@ -1,6 +1,6 @@
#!/bin/sh
# lh_binary_usb(1) - build binary image
# lh_binary_usb-hdd(1) - build binary image
# Copyright (C) 2006-2007 Daniel Baumann <daniel@debian.org>
#
# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
@ -25,24 +25,25 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "binary_usb: Init"
Breakpoint "binary_usb-hdd: Init"
for IMAGE in ${LIVE_BINARY_IMAGE}
do
if [ "${IMAGE}" = "usb" ]
if [ "${IMAGE}" = "usb-hdd" ]
then
# Requiring stage file
Require_stagefile .stage/bootstrap
Require_stagefile .stage/chroot_proc
# Checking stage file
Check_stagefile .stage/binary_usb
Check_stagefile .stage/binary_usb-hdd
# Checking lock file
Check_lockfile .lock
@ -116,7 +117,7 @@ do
FREELO="`${LH_LOSETUP} -f`"
lh_losetup $FREELO binary.img 1
Chroot "mkfs.msdos -n DEBIAN_LIVE ${FREELO}"
Chroot " mkfs.vfat -F 16 -n DEBIAN_LIVE ${FREELO}"
mkdir -p binary.tmp
${LH_ROOT_COMMAND} mount ${FREELO} binary.tmp
cp -r binary/* binary.tmp
@ -152,6 +153,6 @@ do
Remove_package
# Creating stage file
Create_stagefile .stage/binary_usb
Create_stagefile .stage/binary_usb-hdd
fi
done

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
if [ "${LIVE_BOOTLOADER}" != "yaboot" ]
@ -74,13 +75,23 @@ Check_package chroot/usr/lib/yaboot/yaboot yaboot
# Installing depends
Install_package
case "${LH_INITRAMFS}" in
casper)
INITFS="casper"
;;
live-initramfs)
INITFS="live"
;;
esac
# Setting destination directory
case "${LIVE_BINARY_IMAGE}" in
iso)
DESTDIR="binary/live"
;;
net|usb|hdd)
net|usb-hdd|hdd)
Echo_error "not supported, FIXME"
;;
esac
@ -123,10 +134,10 @@ LIVE_BOOTAPPEND="`echo ${LIVE_BOOTAPPEND} | sed -e 's/ //'`"
if [ "${LIVE_BINARY_IMAGE}" = "iso" ]
then
DEFAULT_FLAVOUR="`echo ${LIVE_KERNEL_FLAVOUR} | awk '{ print $1 }'`"
LINUX="image=/`basename ${DESTDIR}`/`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tinitrd=/`basename ${DESTDIR}`/initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'`\n\tlabel=LIVE\n\tappend=\"boot=casper LIVE_BOOTAPPEND\"\n\tinitrd-size=1048576\n\tread-only"
LINUX="image=/`basename ${DESTDIR}`/`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tinitrd=/`basename ${DESTDIR}`/initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'`\n\tlabel=LIVE\n\tappend=\"boot=${INITFS} LIVE_BOOTAPPEND\"\n\tinitrd-size=1048576\n\tread-only"
else
DEFAULT_FLAVOUR="`echo ${LIVE_KERNEL_FLAVOUR} | awk '{ print $1 }'`"
LINUX="image=`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tinitrd=initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'`\n\tlabel=LIVE\n\tappend=\"boot=casper LIVE_BOOTAPPEND\"\n\tinitrd-size=1048576\n\tread-only"
LINUX="image=`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tinitrd=initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'`\n\tlabel=LIVE\n\tappend=\"boot=${INITFS} LIVE_BOOTAPPEND\"\n\tinitrd-size=1048576\n\tread-only"
fi
# FIXME
@ -138,16 +149,16 @@ then
then
if [ "${LIVE_BINARY_IMAGE}" = "iso" ]
then
LINUX="label LIVE-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n kernel /`basename ${DESTDIR}`/`basename ${KERNEL}`\n append initrd=/`basename ${DESTDIR}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=casper LIVE_BOOTAPPEND"
LINUX="label LIVE-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n kernel /`basename ${DESTDIR}`/`basename ${KERNEL}`\n append initrd=/`basename ${DESTDIR}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
else
LINUX="label LIVE-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n kernel `basename ${KERNEL}`\n append initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=casper LIVE_BOOTAPPEND"
LINUX="label LIVE-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n kernel `basename ${KERNEL}`\n append initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
fi
else
if [ "${LIVE_BINARY_IMAGE}" = "iso" ]
then
LINUX="${LINUX}\nlabel LIVE-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n kernel /`basename ${DESTDIR}`/`basename ${KERNEL}`\n append initrd=/`basename ${DESTDIR}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=casper LIVE_BOOTAPPEND"
LINUX="${LINUX}\nlabel LIVE-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n kernel /`basename ${DESTDIR}`/`basename ${KERNEL}`\n append initrd=/`basename ${DESTDIR}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
else
LINUX="${LINUX}\nlabel LIVE-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n kernel `basename ${KERNEL}`\n append initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=casper LIVE_BOOTAPPEND"
LINUX="${LINUX}\nlabel LIVE-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n kernel `basename ${KERNEL}`\n append initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND"
fi
fi
done

View File

@ -30,10 +30,11 @@ Echo_debug "Init ${PROGRAM}"
Breakpoint "bootstrap: Init"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
# Bootstrapping system

View File

@ -28,10 +28,11 @@ lh_testroot
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "bootstrap_cdeboostrap: Init"
@ -91,12 +92,12 @@ fi
if [ -x "/usr/bin/cdebootstrap" ]
then
if [ "${LH_CACHE}" = "enabled" ]
then
# Restore old cache
if [ -d cache/chroot_bootstrap ]
for STAGE in ${LH_CACHE_STAGES}
do
if [ "${STAGE}" = "bootstrap" ] && [ -d cache/stages_bootstrap ]
then
${LH_ROOT_COMMAND} cp -a cache/chroot_bootstrap/* chroot
# Restore old cache
${LH_ROOT_COMMAND} cp -a cache/stages_bootstrap/* chroot
if [ -n "${LH_ROOT_COMMAND}" ]
then
@ -108,11 +109,14 @@ then
exit 0
fi
done
if [ -d cache/bootstrap ]
if [ "${LH_CACHE_PACKAGES}" = "enabled" ]
then
if [ -d cache/packages_bootstrap ]
then
mkdir -p chroot/var/cache/bootstrap
cp cache/bootstrap/*.deb chroot/var/cache/bootstrap
cp cache/packages_bootstrap/*.deb chroot/var/cache/bootstrap
fi
# Executing cdebootstrap (download-only)
@ -124,18 +128,18 @@ then
fi
# Removing old cache
if [ -d cache/bootstrap ]
if [ -d cache/packages_bootstrap ]
then
rm -f cache/bootstrap/*.deb
rm -f cache/packages_bootstrap/*.deb
fi
# Saving new cache
if [ ! -d cache/bootstrap ]
if [ ! -d cache/packages_bootstrap ]
then
mkdir -p cache/bootstrap
mkdir -p cache/packages_bootstrap
fi
cp chroot/var/cache/bootstrap/*.deb cache/bootstrap
cp chroot/var/cache/bootstrap/*.deb cache/packages_bootstrap
fi
# Executing cdebootstrap (regular run)
@ -158,26 +162,26 @@ then
rm -f chroot/etc/resolv.conf
# Removing bootstrap cache
if [ -d chroot/var/cache/bootstrap ]
then
rm -rf chroot/var/cache/bootstrap
fi
rm -rf chroot/var/cache/bootstrap
# Saving new cache
if [ "${LH_CACHE}" = "enabled" ]
then
if [ -d cache/chroot_bootstrap ]
for STAGE in ${LH_CACHE_STAGES}
do
if [ "${STAGE}" = "bootstrap" ]
then
rm -rf cache/chroot_bootstrap
fi
if [ -d cache/stages_bootstrap ]
then
rm -rf cache/stages_bootstrap
fi
${LH_ROOT_COMMAND} cp -a chroot cache/chroot_bootstrap
${LH_ROOT_COMMAND} cp -a chroot cache/stages_bootstrap
if [ -n "${LH_ROOT_COMMAND}" ]
then
${LH_ROOT_COMMAND} chown -R `whoami`:`whoami` cache/chroot_bootstrap
if [ -n "${LH_ROOT_COMMAND}" ]
then
${LH_ROOT_COMMAND} chown -R `whoami`:`whoami` cache/stages_bootstrap
fi
fi
fi
done
# Creating stage file
Create_stagefile .stage/bootstrap

View File

@ -28,10 +28,11 @@ lh_testroot
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "bootstrap_debootstrap: Init"
@ -74,12 +75,12 @@ fi
if [ -x "/usr/sbin/debootstrap" ]
then
if [ "${LH_CACHE}" = "enabled" ]
then
# Restore old cache
if [ -d cache/chroot_bootstrap ]
for STAGE in ${LH_CACHE_STAGES}
do
if [ "${STAGE}" = "bootstrap" ] && [ -d cache/stages_bootstrap ]
then
${LH_ROOT_COMMAND} cp -a cache/chroot_bootstrap/* chroot
# Restore old cache
${LH_ROOT_COMMAND} cp -a cache/stages_bootstrap/* chroot
if [ -n "${LH_ROOT_COMMAND}" ]
then
@ -91,11 +92,14 @@ then
exit 0
fi
done
if [ -d cache/bootstrap ]
if [ "${LH_CACHE_PACKAGES}" = "enabled" ]
then
if [ -d cache/packages_bootstrap ]
then
mkdir -p chroot/var/cache/apt/archives
cp cache/bootstrap/*.deb chroot/var/cache/apt/archives
cp cache/packages_bootstrap/*.deb chroot/var/cache/apt/archives
fi
# Executing debootstrap (download-only)
@ -107,18 +111,18 @@ then
fi
# Removing old cache
if [ -d cache/bootstrap ]
if [ -d cache/packages_bootstrap ]
then
rm -f cache/bootstrap/*.deb
rm -f cache/packages_bootstrap/*.deb
fi
# Saving new cache
if [ ! -d cache/bootstrap ]
if [ ! -d cache/packages_bootstrap ]
then
mkdir -p cache/bootstrap
mkdir -p cache/packages_bootstrap
fi
cp chroot/var/cache/apt/archives/*.deb cache/bootstrap
cp chroot/var/cache/apt/archives/*.deb cache/packages_bootstrap
fi
# Executing debootstrap (regular run)
@ -130,23 +134,26 @@ then
fi
# Removing bootstrap cache
rm -rf chroot/var/cache/apt/archives/*.deb
rm -f chroot/var/cache/apt/archives/*.deb
# Saving new cache
if [ "${LH_CACHE}" = "enabled" ]
then
if [ -d cache/chroot_bootstrap ]
for STAGE in ${LH_CACHE_STAGES}
do
if [ "${STAGE}" = "bootstrap" ]
then
rm -rf cache/chroot_bootstrap
fi
if [ -d cache/stages_bootstrap ]
then
rm -rf cache/stages_bootstrap
fi
${LH_ROOT_COMMAND} cp -a chroot cache/chroot_bootstrap
${LH_ROOT_COMMAND} cp -a chroot cache/stages_bootstrap
if [ -n "${LH_ROOT_COMMAND}" ]
then
${LH_ROOT_COMMAND} chown -R `whoami`:`whoami` cache/chroot_bootstrap
if [ -n "${LH_ROOT_COMMAND}" ]
then
${LH_ROOT_COMMAND} chown -R `whoami`:`whoami` cache/stages_bootstrap
fi
fi
fi
done
# Creating stage file
Create_stagefile .stage/bootstrap

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_apt: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_debianchroot: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_hacks: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_hooks: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_hosts: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_interactive: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_linuximage: Init"
@ -71,9 +72,9 @@ EOF
done
fi
PACKAGES="${PACKAGES} casper"
PACKAGES="${PACKAGES} ${LH_INITRAMFS}"
# Installing linux-image, modules and casper
# Installing linux-image, modules and ${LH_INITRAMFS}
case "${LH_APT}" in
apt|apt-get)
Chroot "apt-get install --yes ${PACKAGES}"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_localhooks: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_localincludes: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_localization: Init"
@ -661,13 +662,13 @@ then
done
# Restoring cache
Restore_cache cache/chroot_localization
Restore_cache cache/packages_localization
# Installing packages
Install_package
# Saving cache
Save_cache cache/chroot_localization
Save_cache cache/packages_localization
# Creating stage file
Create_stagefile .stage/chroot_localization

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_localpackages: Init"
@ -48,7 +49,7 @@ Create_lockfile .lock
if ls config/chroot_localpackages/*.deb &> /dev/null
then
# Restoring cache
Restore_cache cache/chroot_localpackages
Restore_cache cache/packages_localpackages
# Copying packages
cp config/chroot_localpackages/*.deb chroot/root
@ -73,7 +74,7 @@ then
rm -f chroot/root/localpackages
# Saving cache
Save_cache cache/chroot_localpackages
Save_cache cache/packages_localpackages
# Creating stage file
Create_stagefile .stage/chroot_localpackages

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_localpackageslists: Init"
@ -48,7 +49,7 @@ Create_lockfile .lock
if ls config/chroot_localpackageslists/* &> /dev/null
then
# Restoring cache
Restore_cache cache/chroot_localpackageslists
Restore_cache cache/packages_localpackageslists
for PACKAGESLIST in config/chroot_localpackageslists/*
do
@ -71,7 +72,7 @@ then
done
# Saving cache
Save_cache cache/chroot_localpackageslists
Save_cache cache/packages_localpackageslists
# Creating stage file
Create_stagefile .stage/chroot_localpackageslists

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_packages: Init"
@ -48,7 +49,7 @@ Create_lockfile .lock
if [ -n "${LIVE_PACKAGES}" ]
then
# Restoring cache
Restore_cache cache/chroot_packages
Restore_cache cache/packages_packages
# Installing packages
case "${LH_APT}" in
@ -62,7 +63,7 @@ then
esac
# Saving cache
Save_cache cache/chroot_packages
Save_cache cache/packages_packages
# Creating stage file
Create_stagefile .stage/chroot_packages

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_packageslists: Init"
@ -48,7 +49,7 @@ Create_lockfile .lock
if [ -n "${LIVE_PACKAGES_LISTS}" ]
then
# Restoring cache
Restore_cache cache/chroot_packageslists
Restore_cache cache/packages_packageslists
for LIST in ${LIVE_PACKAGES_LISTS}
do
@ -74,7 +75,7 @@ then
done
# Saving cache
Save_cache cache/chroot_packageslists
Save_cache cache/packages_packageslists
# Creating stage file
Create_stagefile .stage/chroot_packageslists

View File

@ -28,10 +28,11 @@ lh_testroot
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_proc: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_resolv: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_sources: Init"
@ -93,48 +94,110 @@ case "${1}" in
done
fi
# Check local gpg keys
if ls config/chroot_sources/*.build.gpg &> /dev/null
# Update indices from cache
if [ "${LH_CACHE_INDICES}" = "enabled" ] && [ -d cache/indices_build ]
then
for FILE in config/chroot_sources/*.build.gpg
do
cp ${FILE} chroot/root
Chroot "apt-key add /root/`basename ${FILE}`"
rm -f chroot/root/`basename ${FILE}`
done
fi
# Check local keyring packages
if ls config/chroot_sources/*.deb &> /dev/null
then
for PACKAGE in config/chroot_sources/*.deb
do
cp ${PACKAGE} chroot/root
Chroot "dpkg -i `basename ${PACKAGE}`"
rm -f chroot/root/`basename ${PACKAGE}`
done
fi
# Installing aptitude
if [ "${LH_APT}" = "apt" ] || [ "${LH_APT}" = "apt-get" ]
then
Chroot "apt-get update"
elif [ "${LH_APT}" = "aptitude" ]
then
if [ ! -x /usr/bin/aptitude ]
if ls cache/indices_build/secring.gpg* &> /dev/null
then
Chroot "apt-get update"
Chroot "apt-get install --yes --force-yes aptitude"
cp -f cache/indices_build/secring.gpg* chroot/etc/apt
fi
Chroot "aptitude update"
fi
if ls cache/indices_build/trusted.gpg* &> /dev/null
then
cp -f cache/indices_build/trusted.gpg* chroot/etc/apt
fi
# Installing keyring packages
if [ -n "${LIVE_KEYRING_PACKAGES}" ]
then
Chroot "apt-get install --yes --force-yes ${LIVE_KEYRING_PACKAGES}"
Chroot "apt-get update"
if [ -f cache/indices_build/pkgcache.bin ]
then
cp -f cache/indices_build/pkgcache.bin chroot/var/cache/apt
fi
if [ -f cache/indices_build/srcpkgcache.bin ]
then
cp -f cache/indices_build/srcpkgcache.bin chroot/var/cache/apt
fi
if ls cache/indices_build/*_Packages &> /dev/null
then
cp -f cache/indices_build/*_Packages chroot/var/lib/apt/lists
fi
if ls cache/indices_build/*_Sources &> /dev/null
then
cp -f cache/indices_build/*_Sources chroot/var/lib/apt/lists
fi
if ls cache/indices_build/*_Release* &> /dev/null
then
cp -f cache/indices_build/*_Release* chroot/var/lib/apt/lists
fi
if [ "${LH_APT}" = "aptitude" ] && [ ! -x /usr/bin/aptitude ]
then
Chroot "apt-get install --yes --force-yes aptitude"
fi
else # Get fresh indices
# Check local gpg keys
if ls config/chroot_sources/*.build.gpg &> /dev/null
then
for FILE in config/chroot_sources/*.build.gpg
do
cp ${FILE} chroot/root
Chroot "apt-key add /root/`basename ${FILE}`"
rm -f chroot/root/`basename ${FILE}`
done
fi
# Check local keyring packages
if ls config/chroot_sources/*.deb &> /dev/null
then
for PACKAGE in config/chroot_sources/*.deb
do
cp ${PACKAGE} chroot/root
Chroot "dpkg -i `basename ${PACKAGE}`"
rm -f chroot/root/`basename ${PACKAGE}`
done
fi
# Installing aptitude
if [ "${LH_APT}" = "apt" ] || [ "${LH_APT}" = "apt-get" ]
then
Chroot "apt-get update"
elif [ "${LH_APT}" = "aptitude" ]
then
if [ ! -x /usr/bin/aptitude ]
then
Chroot "apt-get update"
Chroot "apt-get install --yes --force-yes aptitude"
fi
Chroot "aptitude update"
fi
# Installing keyring packages
if [ -n "${LIVE_KEYRING_PACKAGES}" ]
then
Chroot "apt-get install --yes --force-yes ${LIVE_KEYRING_PACKAGES}"
Chroot "apt-get update"
fi
if [ "${LH_CACHE_INDICES}" = "enabled" ]
then
if [ ! -d cache/indices_build ]
then
mkdir -p cache/indices_build
fi
cp -f chroot/etc/apt/secring.gpg* cache/indices_build
cp -f chroot/etc/apt/trusted.gpg* cache/indices_build
cp -f chroot/var/cache/apt/pkgcache.bin cache/indices_build
cp -f chroot/var/cache/apt/srcpkgcache.bin cache/indices_build
cp -f chroot/var/lib/apt/lists/*_Packages cache/indices_build
cp -f chroot/var/lib/apt/lists/*_Sources cache/indices_build
cp -f chroot/var/lib/apt/*_Release* cache/indices_build
fi
fi
# Creating stage file

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_symlinks: Init"

View File

@ -28,10 +28,11 @@ lh_testroot
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_sysfs: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_sysvinit: Init"
@ -54,7 +55,7 @@ then
done
# Re-enable all required (taken from -f standard chroot)
for PACKAGE in casper console-common cron dpkg ifupdown initscripts kbd klogd libc6 libdevmapper1.02 libselinux1 libsepol1 login makedev module-init-tools netbase openbsd-inetd procps sudo sysklogd udev util-linux
for PACKAGE in ${LH_INITRAMFS} console-common cron dpkg ifupdown initscripts kbd klogd libc6 libdevmapper1.02 libselinux1 libsepol1 login makedev module-init-tools netbase openbsd-inetd procps sudo sysklogd udev util-linux
do
if [ -f chroot/var/lib/dpkg/info/${PACKAGE}.postinst ]
then

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_sysvrc: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "chroot_tasks: Init"
@ -48,7 +49,7 @@ Create_lockfile .lock
if [ -n "${LIVE_TASKS}" ]
then
# Restoring cache
Restore_cache cache/chroot_tasks
Restore_cache cache/packages_tasks
# Checking depends
case "${LH_TASKSEL}" in
@ -82,7 +83,7 @@ then
Remove_package
# Saving cache
Save_cache cache/chroot_tasks
Save_cache cache/packages_tasks
# Creating stage file
Create_stagefile .stage/chroot_tasks

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
case "${1}" in
@ -60,9 +61,9 @@ case "${1}" in
${LH_ROOT_COMMAND} rm -rf chroot chroot.tmp
if [ "${PURGE}" != "true" ] && [ -d cache/chroot_bootstrap ]
if [ "${PURGE}" != "true" ] && [ -d cache/stages_bootstrap ]
then
${LH_ROOT_COMMAND} cp -a cache/chroot_bootstrap chroot
${LH_ROOT_COMMAND} cp -a cache/stages_bootstrap chroot
mkdir -p .stage
touch .stage/bootstrap
fi

View File

@ -46,7 +46,8 @@ then
Read_conffile "${LIVE_ROOT}"/config/common
Read_conffile "${LIVE_ROOT}"/config/bootstrap
Read_conffile "${LIVE_ROOT}"/config/chroot
Read_conffile "${LIVE_ROOT}"/config/image
Read_conffile "${LIVE_ROOT}"/config/binary
Read_conffile "${LIVE_ROOT}"/config/source
fi
# Setting defaults
@ -97,9 +98,17 @@ LH_APT_SECURE="${LH_APT_SECURE}"
# (Default: ${LH_BOOTSTRAP})
LH_BOOTSTRAP="${LH_BOOTSTRAP}"
# \$LH_CACHE: control if downloaded packages should be cached
# (Default: ${LH_CACHE})
LH_CACHE="${LH_CACHE}"
# \$LH_CACHE_INDICES: control if downloaded packages should be cached
# (Default: ${LH_CACHE_INDICES})
LH_CACHE_INDICES="${LH_CACHE_INDICES}"
# \$LH_CACHE_PACKAGES: control if downloaded packages should be cached
# (Default: ${LH_CACHE_PACKAGES})
LH_CACHE_PACKAGES="${LH_CACHE_PACKAGES}"
# \$LH_CACHE_STAGES: control if downloaded packages should be cached
# (Default: ${LH_CACHE_STAGES})
LH_CACHE_STAGES="${LH_CACHE_STAGES}"
# \$LH_DEBCONF_FRONTEND: set the debconf(1) frontend to use
# (Default: ${LH_DEBCONF_FRONTEND})
@ -125,10 +134,22 @@ LH_LOSETUP="${LH_LOSETUP}"
# (Default: ${LH_TASKSEL})
LH_TASKSEL="${LH_TASKSEL}"
# \$LH_INITRAMFS: set the initramfs generator
# (Default: ${LH_INITRAMFS})
LH_INITRAMFS="${LH_INITRAMFS}"
# \$LIVE_ROOT: set the root directory
# (Default: ${LIVE_ROOT})
LIVE_ROOT="${LIVE_ROOT}"
# \$LIVE_INCLUDES: set includes
# (Default: ${LIVE_INCLUDES})
LIVE_INCLUDES="${LIVE_INCLUDES}"
# \$LIVE_TEMPLATES: set templates
# (Default: ${LIVE_TEMPLATES})
LIVE_TEMPLATES="${LIVE_TEMPLATES}"
# Live-helper options
# \$LH_ROOT_COMMAND: use sudo or equivalent
@ -257,9 +278,9 @@ LIVE_MIRROR_IMAGE_SECURITY="${LIVE_MIRROR_IMAGE_SECURITY}"
LIVE_SECTIONS="${LIVE_SECTIONS}"
EOF
# Creating lh_image_* configuration
cat > "${LIVE_ROOT}"/config/image << EOF
# config/chroot: configuration for lh_image_*
# Creating lh_binary_* configuration
cat > "${LIVE_ROOT}"/config/binary << EOF
# config/chroot: configuration for lh_binary_*
# \$LIVE_BOOTAPPEND: set boot parameters
# (Default: empty)
@ -285,6 +306,10 @@ LIVE_FILESYSTEM="${LIVE_FILESYSTEM}"
# (Default: ${LIVE_MEMTEST})
LIVE_MEMTEST="${LIVE_MEMTEST}"
# \$LIVE_DEBIAN_INSTALLER: set debian-installer
# (Default: ${LIVE_DEBIAN_INSTALLER})
LIVE_DEBIAN_INSTALLER="${LIVE_DEBIAN_INSTALLER}"
# \$LIVE_ISO_VOLUME: set iso volume
# (Default: ${LIVE_ISO_VOLUME})
LIVE_ISO_VOLUME="${LIVE_ISO_VOLUME}"
@ -297,10 +322,6 @@ LIVE_SERVER_ADDRESS="${LIVE_SERVER_ADDRESS}"
# (Default: ${LIVE_SERVER_PATH})
LIVE_SERVER_PATH="${LIVE_SERVER_PATH}"
# \$LIVE_SOURCE: set source option
# (Default: ${LH_SOURCE})
LIVE_SOURCE="${LIVE_SOURCE}"
# \$LIVE_BOOTLOADER: set bootloader
# (Default: ${LIVE_BOOTLOADER})
LIVE_BOOTLOADER="${LIVE_BOOTLOADER}"
@ -316,18 +337,19 @@ LIVE_SYSLINUX_SPLASH="${LIVE_SYSLINUX_SPLASH}"
# \$LIVE_BINARY_IMAGE: set image type
# (Default: ${LIVE_BINARY_IMAGE})
LIVE_BINARY_IMAGE="${LIVE_BINARY_IMAGE}"
EOF
# Creating lh_source_* configuration
cat > "${LIVE_ROOT}"/config/source << EOF
# config/chroot: configuration for lh_source_*
# \$LIVE_SOURCE: set source option
# (Default: ${LH_SOURCE})
LIVE_SOURCE="${LIVE_SOURCE}"
# \$LIVE_SOURCE_IMAGE: set image type
# (Default: ${LIVE_SOURCE_IMAGE})
LIVE_SOURCE_IMAGE="${LIVE_SOURCE_IMAGE}"
# \$LIVE_INCLUDES: set includes
# (Default: ${LIVE_INCLUDES})
LIVE_INCLUDES="${LIVE_INCLUDES}"
# \$LIVE_TEMPLATES: set templates
# (Default: ${LIVE_TEMPLATES})
LIVE_TEMPLATES="${LIVE_TEMPLATES}"
EOF
# Creating lh_binary_* directories

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "losetup: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "source: Init"
@ -48,7 +49,7 @@ lh_source_generic "${@}"
lh_source_hdd "${@}"
lh_source_iso "${@}"
lh_source_net "${@}"
lh_source_usb "${@}"
lh_source_usb-hdd "${@}"
# Deconfiguring chroot
rm -f .stage/chroot_sources

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "source_config: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "source_download: Init"
@ -59,7 +60,7 @@ fi
# Download sources
Chroot "dpkg --get-selections" | awk '{ print $1 }' > chroot/root/dpkg-selection.txt
echo "${LIVE_BOOTLOADER}" >> chroot/root/dpkg-selection.txt
#echo "live-helper" >> chroot/root/dpkg-selection.txt
echo "live-helper" >> chroot/root/dpkg-selection.txt
Chroot "xargs --arg-file=/root/dpkg-selection.txt apt-get source --download-only"
rm -f chroot/root/dpkg-selection.txt

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "source_generic: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "source_hdd: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "source_iso: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "source_md5sum: Init"

View File

@ -25,10 +25,11 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "source_net: Init"

View File

@ -1,6 +1,6 @@
#!/bin/sh
# lh_source_usb(1) - build source image
# lh_source_usb-hdd(1) - build source image
# Copyright (C) 2006-2007 Daniel Baumann <daniel@debian.org>
#
# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
@ -25,13 +25,14 @@ Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/common
Read_conffile config/image
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Breakpoint "source_usb: Init"
Breakpoint "source_usb-hdd: Init"
if [ "${LIVE_SOURCE}" != "enabled" ]
then
@ -40,13 +41,13 @@ fi
for IMAGE in ${LIVE_SOURCE_IMAGE}
do
if [ "${IMAGE}" = "usb" ]
if [ "${IMAGE}" = "usb-hdd" ]
then
# Requiring stage file
Require_stagefile .stage/source_download
# Checking stage file
Check_stagefile .stage/source_usb
Check_stagefile .stage/source_usb-hdd
# Checking lock file
Check_lockfile .lock
@ -88,7 +89,7 @@ do
${LH_LOSETUP} -d ${FREELO}
lh_losetup $FREELO source.img 1
Chroot "mkfs.msdos -n DEBIAN_LIVE ${FREELO}"
Chroot " mkfs.vfat -F 16 -n DEBIAN_LIVE ${FREELO}"
mkdir -p source.tmp
${LH_ROOT_COMMAND} mount ${FREELO} source.tmp
cp -r source/* source.tmp
@ -107,6 +108,6 @@ do
Remove_package
# Creating stage file
Create_stagefile .stage/source_usb
Create_stagefile .stage/source_usb-hdd
fi
done

View File

@ -24,6 +24,10 @@ Arguments "${@}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/binary
Read_conffile config/source
Set_defaults
Echo_debug "Init ${PROGRAM}"

View File

@ -31,7 +31,7 @@ done
# Set static variables
PROGRAM="`basename ${0}`"
DESCRIPTION="utility to build Debian Live systems"
USAGE="${PROGRAM} [config] [--mode MODE] [--config CONFIG] [--apt apt|aptitude] [--apt-ftpproxy URL] [--apt-httpproxy URL] [--apt-generic enabled|disabled] [--apt-pdiffs enabled|disabled] [--apt-recommends enabled|disabled] [--apt-secure enabled|disabled] [--bootstrap cdebootstrap|deboostrap] [--cache enabled|disabled] [--debconf-frontend dialog|readline|noninteractive] [--debconf-priority low|medium|high|critical] [--debconf-nowarnings yes|no] [--genisoimage genisoimage|mkisofs] [--losetup losetup|losetup.org] [--tasksel aptitude|tasksel] [-r|--root DIRECTORY] [-a|--architecture ARCHITECTURE] [-d|--distribution stable|testing|unstable|etch|lenny|sid] [--distribution-config DIRECTORY] [-f|--bootstrap-flavour minimal|standard] [-m|--mirror-build URL] [--mirror-build-security URL] [--mirror-image URL] [--mirror-image-security URL] [--sections SECTION|\"SECTIONS\"] [--interactive shell|x11|xnest] [-k|--kernel-flavour FLAVOUR] [--kernel-packages PACKAGE|\"PACKAGES\"] [--keyring-packages PACKAGE|\"PACKAGES\"] [--hooks \"COMMAND\"|\"COMMANDS\"] [-l|--language LANGUAGE] [--packages PACKAGE|\"PACKAGES\"] [-p|--packages-lists LIST|\"LISTS\"] [--tasks TASK|\"TASKS\"] [--security enabled|disabled] [--symlinks enabled|disabled] [--sysvinit enabled|disabled] [--bootappend KERNEL_PARAMETER|\"KERNEL_PARAMETERS\"] [-e|--encryption ALGORITHM] [--username NAME] [--hostname NAME] [--filesystem ext2|plain|squashfs] [--memtest memtest86|memtest86+] [--iso-volume STRING] [--server-address HOSTNAME|IP] [--server-path DIRECTORY] [--source enabled|disabled] [--bootloader grub|syslinux] [--grub-splash FILE] [--syslinux-splash FILE] [-b|--binary-image hdd|iso|usb|net] [-s|--source-image generic|hdd|iso|usb|net] [--includes PATH] [--templates PATH] [--breakpoints] [--debug] [--force] [--quiet] [--verbose] [--root-command sudo]"
USAGE="${PROGRAM} [config] [--mode MODE] [--config CONFIG] [--apt apt|aptitude] [--apt-ftpproxy URL] [--apt-httpproxy URL] [--apt-generic enabled|disabled] [--apt-pdiffs enabled|disabled] [--apt-recommends enabled|disabled] [--apt-secure enabled|disabled] [--bootstrap cdebootstrap|deboostrap] [--cache enabled|disabled] [--debconf-frontend dialog|readline|noninteractive] [--debconf-priority low|medium|high|critical] [--debconf-nowarnings yes|no] [--genisoimage genisoimage|mkisofs] [--losetup losetup|losetup.org] [--tasksel aptitude|tasksel] [-r|--root DIRECTORY] [-a|--architecture ARCHITECTURE] [-d|--distribution stable|testing|unstable|etch|lenny|sid] [--distribution-config DIRECTORY] [-f|--bootstrap-flavour minimal|standard] [-m|--mirror-build URL] [--mirror-build-security URL] [--mirror-image URL] [--mirror-image-security URL] [--sections SECTION|\"SECTIONS\"] [--interactive shell|x11|xnest] [-k|--kernel-flavour FLAVOUR] [--kernel-packages PACKAGE|\"PACKAGES\"] [--keyring-packages PACKAGE|\"PACKAGES\"] [--hooks \"COMMAND\"|\"COMMANDS\"] [-l|--language LANGUAGE] [--packages PACKAGE|\"PACKAGES\"] [-p|--packages-lists LIST|\"LISTS\"] [--tasks TASK|\"TASKS\"] [--security enabled|disabled] [--symlinks enabled|disabled] [--sysvinit enabled|disabled] [--bootappend KERNEL_PARAMETER|\"KERNEL_PARAMETERS\"] [-e|--encryption ALGORITHM] [--username NAME] [--hostname NAME] [--filesystem ext2|plain|squashfs] [--memtest memtest86|memtest86+] [--iso-volume STRING] [--server-address HOSTNAME|IP] [--server-path DIRECTORY] [--source enabled|disabled] [--bootloader grub|syslinux] [--grub-splash FILE] [--syslinux-splash FILE] [-b|--binary-image hdd|iso|usb-hdd|net] [-s|--source-image generic|hdd|iso|usb-hdd|net] [--includes PATH] [--templates PATH] [--breakpoints] [--debug] [--force] [--quiet] [--verbose] [--root-command sudo]"
HELP="Lists: gnome, gnome-core, gnome-desktop, gnome-full, gnome-junior, gnustep, kde, kde-core, kde-desktop, kde-extra, kde-full, kde-junior, mini, minimal, minimal-net, rescue, standard, standard-x11, xfce, xfce-desktop, xfce-junior"

View File

@ -1,431 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>The Debian GNU/Linux FAQ - Definitions and overview</title>
</head>
<body>
<p><a name="ch-basic_defs"></a></p>
<hr>
<p>
[ <a href="index.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ 1 ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-getting.en.html">next</a> ]
</p>
<hr>
<h1>
The Debian GNU/Linux FAQ
<br>Chapter 1 - Definitions and overview
</h1>
<hr>
<h2><a name="s-whatisfaq"></a>1.1 What is this FAQ?</h2>
<p>
This document gives frequently asked questions (with their answers!) about the
Debian distribution (Debian GNU/Linux and others) and about the Debian project.
If applicable, pointers to other documentation will be given: we won't quote
large parts of external documentation in this document. You'll find out that
some answers assume some knowledge of Unix-like operating systems. We'll try
to assume as little prior knowledge as possible: answers to general beginners
questions will be kept simple.
</p>
<p>
If you can't find what you're looking for in this FAQ, be sure to check out <a
href="ch-support.en.html#s-debiandocs">What other documentation exists on and
for a Debian system?, Section 11.1</a>. If even that doesn't help, refer to <a
href="ch-faqinfo.en.html#s-feedback">Feedback, Section 15.2</a>.
</p>
<hr>
<h2><a name="s-whatisdebian"></a>1.2 What is Debian GNU/Linux?</h2>
<p>
Debian GNU/Linux is a particular <em>distribution</em> of the Linux operating
system, and numerous packages that run on it.
</p>
<p>
In principle, users could obtain the Linux kernel via the Internet or from
elsewhere, and compile it themselves. They could then obtain source code for
many applications in the same way, compile the programs, then install them into
their systems. For complicated programs, this process can be not only
time-consuming but error-prone. To avoid it, users often choose to obtain the
operating system and the application packages from one of the Linux
distributors. What distinguishes the various Linux distributors are the
software, protocols, and practices they use for packaging, installing, and
tracking applications packages on users' systems, combined with installation
and maintenance tools, documentation, and other services.
</p>
<p>
Debian GNU/Linux is the result of a volunteer effort to create a free,
high-quality Unix-compatible operating system, complete with a suite of
applications. The idea of a free Unix-like system originates from the GNU
project, and many of the applications that make Debian GNU/Linux so useful were
developed by the GNU project.
</p>
<p>
For Debian, free has the GNUish meaning (see the <code><a
href="http://www.debian.org/social_contract#guidelines">Debian Free Software
Guidelines</a></code>). When we speak of free software, we are referring to
freedom, not price. Free software means that you have the freedom to
distribute copies of free software, that you receive source code or can get it
if you want it, that you can change the software or use pieces of it in new
free programs; and that you know you can do these things.
</p>
<p>
The Debian Project was created by Ian Murdock in 1993, initially under the
sponsorship of the Free Software Foundation's GNU project. Today, Debian's
developers think of it as a direct descendent of the GNU project.
</p>
<p>
Debian GNU/Linux is:
</p>
<ul>
<li>
<p>
<strong>full featured</strong>: Debian includes more than 18347 software
packages at present. Users can select which packages to install; Debian
provides a tool for this purpose. You can find a list and descriptions of the
packages currently available in Debian at any of the Debian <code><a
href="http://www.debian.org/distrib/ftplist">mirror sites</a></code>.
</p>
</li>
</ul>
<ul>
<li>
<p>
<strong>free to use and redistribute</strong>: There is no consortium
membership or payment required to participate in its distribution and
development. All packages that are formally part of Debian GNU/Linux are free
to redistribute, usually under terms specified by the GNU General Public
License.
</p>
<p>
The Debian FTP archives also carry approximately 444 software packages (in the
<samp>non-free</samp> and <samp>contrib</samp> sections), which are
distributable under specific terms included with each package.
</p>
</li>
</ul>
<ul>
<li>
<p>
<strong>dynamic</strong>: With about 1950 volunteers constantly contributing
new and improved code, Debian is evolving rapidly. New releases are planned to
be made every several months, and the FTP archives are updated daily.
</p>
</li>
</ul>
<p>
Although Debian GNU/Linux itself is free software, it is a base upon which
value-added Linux distributions can be built. By providing a reliable,
full-featured base system, Debian provides Linux users with increased
compatibility, and allows Linux distribution creators to eliminate duplication
of effort and focus on the things that make their distribution special. See <a
href="ch-redistrib.en.html#s-childistro">I am making a special Linux
distribution for a &quot;vertical market&quot;. Can I use Debian GNU/Linux for
the guts of a Linux system and add my own applications on top of it?, Section
13.3</a> for more information.
</p>
<hr>
<h2><a name="s-linux"></a>1.3 OK, now I know what Debian is... what is Linux?!</h2>
<p>
In short, Linux is the kernel of a Unix-like operating system. It was
originally designed for 386 (and better) PCs; today Linux also runs on a dozen
of other systems. Linux is written by Linus Torvalds and many computer
scientists around the world.
</p>
<p>
Besides its kernel, a &quot;Linux&quot; system usually has:
</p>
<ul>
<li>
<p>
a file system that follows the Linux Filesystem Hierarchy Standard <code><a
href="http://www.pathname.com/fhs/">http://www.pathname.com/fhs/</a></code>.
</p>
</li>
</ul>
<ul>
<li>
<p>
a wide range of Unix utilities, many of which have been developed by the GNU
project and the Free Software Foundation.
</p>
</li>
</ul>
<p>
The combination of the Linux kernel, the file system, the GNU and FSF
utilities, and the other utilities are designed to achieve compliance with the
POSIX (IEEE 1003.1) standard; see <a href="ch-compat.en.html#s-otherunices">How
source code compatible is Debian with other Unix systems?, Section 3.3</a>.
</p>
<p>
For more information about Linux, see Michael K. Johnson's <code><a
href="ftp://ibiblio.org/pub/Linux/docs/HOWTO/INFO-SHEET">Linux Information
Sheet</a></code> and <code><a
href="ftp://ibiblio.org/pub/Linux/docs/HOWTO/META-FAQ">Meta-FAQ</a></code>.
</p>
<hr>
<h2><a name="s-non-linux"></a>1.4 Does Debian just do GNU/Linux?</h2>
<p>
Currently, Debian is only available for Linux, but with Debian GNU/Hurd and
Debian on BSD kernels, we have started to offer non-Linux-based OSes as a
development, server and desktop platform, too. However, these non-linux ports
are not officially released yet.
</p>
<p>
The oldest porting effort is Debian GNU/Hurd.
</p>
<p>
The Hurd is a set of servers running on top of the GNU Mach microkernel.
Together they build the base for the GNU operating system.
</p>
<p>
Please see <code><a
href="http://www.gnu.org/software/hurd/">http://www.gnu.org/software/hurd/</a></code>
for more information about the GNU/Hurd in general, and <code><a
href="http://www.debian.org/ports/hurd/">http://www.debian.org/ports/hurd/</a></code>
for more information about Debian GNU/Hurd.
</p>
<p>
A second effort is the port to a BSD kernel. People are working with both the
NetBSD and the FreeBSD kernels.
</p>
<p>
See <code><a
href="http://www.debian.org/ports/#nonlinux">http://www.debian.org/ports/#nonlinux</a></code>
for more information about these non-linux ports.
</p>
<hr>
<h2><a name="s-difference"></a>1.5 What is the difference between Debian GNU/Linux and other Linux distributions? Why should I choose Debian over some other distribution?</h2>
<p>
These key features distinguish Debian from other Linux distributions:
</p>
<dl>
<dt>Freedom:</dt>
<dd>
<p>
As stated in the <code><a href="http://www.debian.org/social_contract">Debian
Social Contract</a></code>, Debian will remain 100% free. Debian is very
strict about shipping truly free software. The guidelines used to determine if
a work is &quot;free&quot; are provided in <code><a
href="http://www.debian.org/social_contract#guidelines">The Debian Free
Software</a></code>.
</p>
</dd>
</dl>
<dl>
<dt>The Debian package maintenance system:</dt>
<dd>
<p>
The entire system, or any individual component of it, can be upgraded in place
without reformatting, without losing custom configuration files, and (in most
cases) without rebooting the system. Most Linux distributions available today
have some kind of package maintenance system; the Debian package maintenance
system is unique and particularly robust (see <a
href="ch-pkg_basics.en.html">Basics of the Debian package management system,
Chapter 6</a>).
</p>
</dd>
</dl>
<dl>
<dt>Open development:</dt>
<dd>
<p>
Whereas other Linux distributions are developed by individuals, small, closed
groups, or commercial vendors, Debian is the only major Linux distribution that
is being developed cooperatively by many individuals through the Internet, in
the same spirit as Linux and other free software.
</p>
<p>
More than 1950 volunteer package maintainers are working on over 18347 packages
and improving Debian GNU/Linux. The Debian developers contribute to the
project not by writing new applications (in most cases), but by packaging
existing software according to the standards of the project, by communicating
bug reports to upstream developers, and by providing user support. See also
additional information on how to become a contributor in <a
href="ch-contributing.en.html#s-contrib">How can I become a Debian software
developer?, Section 12.1</a>.
</p>
</dd>
</dl>
<dl>
<dt>The Universal Operating System:</dt>
<dd>
<p>
Debian comes with <code><a href="http://packages.debian.org/stable/">more than
18347 packages</a></code> and runs on <code><a
href="http://www.debian.org/ports/">10 architectures</a></code>. This is far
more than is available for any other GNU/Linux distribution. See <a
href="ch-software.en.html#s-apps">What types of applications and development
software are available for Debian GNU/Linux?, Section 4.1</a> for an overview
of the provided software and see <a href="ch-compat.en.html#s-arches">On what
hardware architectures/systems does Debian GNU/Linux run?, Section 3.1</a> for
a description of the supported hardware platforms.
</p>
</dd>
</dl>
<dl>
<dt>The Bug Tracking System:</dt>
<dd>
<p>
The geographical dispersion of the Debian developers required sophisticated
tools and quick communication of bugs and bug-fixes to accelerate the
development of the system. Users are encouraged to send bugs in a formal
style, which are quickly accessible by WWW archives or via e-mail. See
additional information in this FAQ on the management of the bug log in <a
href="ch-support.en.html#s-buglogs">Are there logs of known bugs?, Section
11.4</a>.
</p>
</dd>
</dl>
<dl>
<dt>The Debian Policy:</dt>
<dd>
<p>
Debian has an extensive specification of our standards of quality, the Debian
Policy. This document defines the qualities and standards to which we hold
Debian packages.
</p>
</dd>
</dl>
<p>
For additional information about this, please see our web page about <code><a
href="http://www.debian.org/intro/why_debian">reasons to choose
Debian</a></code>.
</p>
<hr>
<h2><a name="s-gnu"></a>1.6 How does the Debian project fit in or compare with the Free Software Foundation's GNU project?</h2>
<p>
The Debian system builds on the ideals of free software first championed by the
<code><a href="http://www.gnu.org/">Free Software Foundation</a></code> and in
particular by <code><a href="http://www.stallman.org/">Richard
Stallman</a></code>. FSF's powerful system development tools, utilities, and
applications are also a key part of the Debian system.
</p>
<p>
The Debian Project is a separate entity from the FSF, however we communicate
regularly and cooperate on various projects. The FSF explicitly requested that
we call our system &quot;Debian GNU/Linux&quot;, and we are happy to comply
with that request.
</p>
<p>
The FSF's long-standing objective is to develop a new operating system called
GNU, based on <code><a
href="http://www.gnu.org/software/hurd/">Hurd</a></code>. Debian is working
with FSF on this system, called <code><a
href="http://www.debian.org/ports/hurd/">Debian GNU/Hurd</a></code>.
</p>
<hr>
<h2><a name="s-pronunciation"></a>1.7 How does one pronounce Debian and what does this word mean?</h2>
<p>
The project name is pronounced Deb'-ee-en, with a short e in Deb, and emphasis
on the first syllable. This word is a contraction of the names of Debra and
Ian Murdock, who founded the project. (Dictionaries seem to offer some
ambiguity in the pronunciation of Ian (!), but Ian prefers ee'-en.)
</p>
<hr>
<p>
[ <a href="index.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ 1 ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-getting.en.html">next</a> ]
</p>
<hr>
<p>
The Debian GNU/Linux FAQ
</p>
<address>
version 3.1.5, 17 January 2007<br>
<br>
Authors are listed at <a href="ch-faqinfo.en.html#s-authors">Debian FAQ Authors</a><br>
<br>
</address>
<hr>
</body>
</html>

View File

@ -0,0 +1 @@
ch-basic_defs.en.html

View File

@ -1,386 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>The Debian GNU/Linux FAQ - Compatibility issues</title>
</head>
<body>
<p><a name="ch-compat"></a></p>
<hr>
<p>
[ <a href="ch-getting.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ 3 ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-software.en.html">next</a> ]
</p>
<hr>
<h1>
The Debian GNU/Linux FAQ
<br>Chapter 3 - Compatibility issues
</h1>
<hr>
<h2><a name="s-arches"></a>3.1 On what hardware architectures/systems does Debian GNU/Linux run?</h2>
<p>
Debian GNU/Linux includes complete source-code for all of the included
programs, so it should work on all systems which are supported by the Linux
kernel; see the <code><a
href="http://en.tldp.org/FAQ/Linux-FAQ/intro.html#DOES-LINUX-RUN-ON-MY-COMPUTER">Linux
FAQ</a></code> for details.
</p>
<p>
The current Debian GNU/Linux release, 4.0, contains a complete, binary
distribution for the following architectures:
</p>
<p>
<em>i386</em>: this covers PCs based on Intel and compatible processors,
including Intel's 386, 486, Pentium, Pentium Pro, Pentium II (both Klamath and
Celeron), and Pentium III, and most compatible processors by AMD, Cyrix and
others.
</p>
<p>
<em>m68k</em>: this covers Amigas and ATARIs having a Motorola 680x0 processor
for x&gt;=2; with MMU.
</p>
<p>
<em>alpha</em>: Compaq/Digital's Alpha systems.
</p>
<p>
<em>sparc</em>: this covers Sun's SPARC and most UltraSPARC systems.
</p>
<p>
<em>powerpc</em>: this covers some IBM/Motorola PowerPC machines, including
CHRP, PowerMac and PReP machines.
</p>
<p>
<em>arm</em>: ARM and StrongARM machines.
</p>
<p>
<em>mips</em>: SGI's big-endian MIPS systems, Indy and Indigo2;
<em>mipsel</em>: little-endian MIPS machines, Digital DECstations.
</p>
<p>
<em>hppa</em>: Hewlett-Packard's PA-RISC machines (712, C3000, L2000, A500).
</p>
<p>
<em>ia64</em>: Intel IA-64 (&quot;Itanium&quot;) computers.
</p>
<p>
<em>s390</em>: IBM S/390 mainframe systems.
</p>
<p>
The development of binary distributions of Debian for Sparc64 (UltraSPARC
native) architectures is currently underway.
</p>
<p>
For further information on booting, partitioning your drive, enabling PCMCIA
(PC Card) devices and similar issues please follow the instructions given in
the Installation Manual, which is available from our WWW site at <code><a
href="http://www.debian.org/releases/stable/installmanual">http://www.debian.org/releases/stable/installmanual</a></code>.
</p>
<hr>
<h2><a name="s-otherdistribs"></a>3.2 How compatible is Debian with other distributions of Linux?</h2>
<p>
Debian developers communicate with other Linux distribution creators in an
effort to maintain binary compatibility across Linux distributions. Most
commercial Linux products run as well under Debian as they do on the system
upon which they were built.
</p>
<p>
Debian GNU/Linux adheres to the <code><a
href="http://www.pathname.com/fhs/">Linux Filesystem Hierarchy
Standard</a></code>. However, there is room for interpretation in some of the
rules within this standard, so there may be slight differences between a Debian
system and other Linux systems.
</p>
<p>
Debian GNU/Linux supports software developed for the <code><a
href="http://www.linuxbase.org/">Linux Standard Base</a></code>. The LSB is a
specification for allowing the same binary package to be used on multiple
distributions. Packages for the Debian Etch release must not conflict with
requirements of the LSB, v1.3. As of this writing, Debian GNU/Linux is not
formally LSB-certified. However, some Debian derived distributions are.
Discussion and coordination of efforts towards ensuring Debian meets the
requirements of the Linux Standard Base is taking place on the <code><a
href="http://lists.debian.org/debian-lsb/">debian-lsb mailing list</a></code>.
</p>
<hr>
<h2><a name="s-otherunices"></a>3.3 How source code compatible is Debian with other Unix systems?</h2>
<p>
For most applications Linux source code is compatible with other Unix systems.
It supports almost everything that is available in System V Unix systems and
the free and commercial BSD-derived systems. However in the Unix business such
claim has nearly no value because there is no way to prove it. In the software
development area complete compatibility is required instead of compatibility in
&quot;about most&quot; cases. So years ago the need for standards arose, and
nowadays POSIX.1 (IEEE Standard 1003.1-1990) is one of the major standards for
source code compatibility in Unix-like operating systems.
</p>
<p>
Linux is intended to adhere to POSIX.1, but the POSIX standards cost real money
and the POSIX.1 (and FIPS 151-2) certification is quite expensive; this made it
more difficult for the Linux developers to work on complete POSIX conformance.
The certification costs make it unlikely that Debian will get an official
conformance certification even if it completely passed the validation suite.
(The validation suite is now freely available, so it is expected that more
people will work on POSIX.1 issues.)
</p>
<p>
Unifix GmbH (Braunschweig, Germany) developed a Linux system that has been
certified to conform to FIPS 151-2 (a superset of POSIX.1). This technology
was available in Unifix' own distribution called Unifix Linux 2.0 and in
Lasermoon's Linux-FT.
</p>
<hr>
<h2><a name="s-otherpackages"></a>3.4 Can I use Debian packages (&quot;.deb&quot; files) on my Red Hat/Slackware/... Linux system? Can I use Red Hat packages (&quot;.rpm&quot; files) on my Debian GNU/Linux system?</h2>
<p>
Different Linux distributions use different package formats and different
package management programs.
</p>
<dl>
<dt><strong>You probably can:</strong></dt>
<dd>
<p>
A program to unpack a Debian package onto a Linux host that is been built from
a `foreign' distribution is available, and will generally work, in the sense
that files will be unpacked. The converse is probably also true, that is, a
program to unpack a Red Hat or Slackware package on a host that is based on
Debian GNU/Linux will probably succeed in unpacking the package and placing
most files in their intended directories. This is largely a consequence of the
existence (and broad adherence to) the Linux Filesystem Hierarchy Standard.
The <code><a href="http://packages.debian.org/alien">Alien</a></code> package
is used to convert between different package formats.
</p>
</dd>
</dl>
<dl>
<dt><strong>You probably do not want to:</strong></dt>
<dd>
<p>
Most package managers write administrative files when they are used to unpack
an archive. These administrative files are generally not standardized.
Therefore, the effect of unpacking a Debian package on a `foreign' host will
have unpredictable (certainly not useful) effects on the package manager on
that system. Likewise, utilities from other distributions might succeed in
unpacking their archives on Debian systems, but will probably cause the Debian
package management system to fail when the time comes to upgrade or remove some
packages, or even simply to report exactly what packages are present on a
system.
</p>
</dd>
</dl>
<dl>
<dt><strong>A better way:</strong></dt>
<dd>
<p>
The Linux File System Standard (and therefore Debian GNU/Linux) requires that
subdirectories under <samp>/usr/local/</samp> be entirely under the user's
discretion. Therefore, users can unpack `foreign' packages into this
directory, and then manage their configuration, upgrade and removal
individually.
</p>
</dd>
</dl>
<hr>
<h2><a name="s-libc5"></a>3.5 Is Debian able to run my old libc5 programs?</h2>
<p>
Yes. Just install the required <code>libc5</code> libraries, from the
<samp>oldlibs</samp> section (containing old packages included for
compatibility with older applications).
</p>
<hr>
<h2><a name="s-libc5-compile"></a>3.6 Can Debian be used to compile libc5 programs?</h2>
<p>
Yes. Install <code>libc5-altdev</code> and <code>altgcc</code> packages (from
the <samp>oldlibs</samp> section). You can find the appropriate libc5-compiled
<code>gcc</code> and <code>g++</code> in directory
<samp>/usr/i486-linuxlibc1/bin</samp>. Put them in your $PATH variable to get
<code>make</code> and other programs to execute these first.
</p>
<p>
Be aware that libc5 environment isn't fully supported by our other packages
anymore.
</p>
<hr>
<h2><a name="s-non-debian-programs"></a>3.7 How should I install a non-Debian program?</h2>
<p>
Files under the directory <samp>/usr/local/</samp> are not under the control of
the Debian package management system. Therefore, it is good practice to place
the source code for your program in /usr/local/src/. For example, you might
extract the files for a package named &quot;foo.tar&quot; into the directory
<samp>/usr/local/src/foo</samp>. After you compile them, place the binaries in
<samp>/usr/local/bin/</samp>, the libraries in <samp>/usr/local/lib/</samp>,
and the configuration files in <samp>/usr/local/etc/</samp>.
</p>
<p>
If your programs and/or files really must be placed in some other directory,
you could still store them in <samp>/usr/local/</samp>, and build the
appropriate symbolic links from the required location to its location in
<samp>/usr/local/</samp>, e.g., you could make the link
</p>
<pre>
ln -s /usr/local/bin/foo /usr/bin/foo
</pre>
<p>
In any case, if you obtain a package whose copyright allows redistribution, you
should consider making a Debian package of it, and uploading it for the Debian
system. Guidelines for becoming a package developer are included in the Debian
Policy manual (see <a href="ch-support.en.html#s-debiandocs">What other
documentation exists on and for a Debian system?, Section 11.1</a>).
</p>
<hr>
<h2><a name="s-termcap"></a>3.8 Why can't I compile programs that require libtermcap?</h2>
<p>
Debian uses the <samp>terminfo</samp> database and the <samp>ncurses</samp>
library of terminal interface routes, rather than the <samp>termcap</samp>
database and the <samp>termcap</samp> library. Users who are compiling
programs that require some knowledge of the terminal interface should replace
references to <samp>libtermcap</samp> with references to
<samp>libncurses</samp>.
</p>
<p>
To support binaries that have already been linked with the <samp>termcap</samp>
library, and for which you do not have the source, Debian provides a package
called <code>termcap-compat</code>. This provides both
<samp>libtermcap.so.2</samp> and <samp>/etc/termcap</samp>. Install this
package if the program fails to run with the error message &quot;can't load
library 'libtermcap.so.2'&quot;, or complains about a missing
<samp>/etc/termcap</samp> file.
</p>
<hr>
<h2><a name="s-accelx"></a>3.9 Why can't I install AccelX?</h2>
<p>
AccelX uses the <samp>termcap</samp> library for installation. See <a
href="#s-termcap">Why can't I compile programs that require libtermcap?,
Section 3.8</a> above.
</p>
<hr>
<h2><a name="s-motifnls"></a>3.10 Why do my old XFree 2.1 Motif applications crash?</h2>
<p>
You need to install the <code>motifnls</code> package, which provides the
XFree-2.1 configuration files needed to allow Motif applications compiled under
XFree-2.1 to run under XFree-3.1.
</p>
<p>
Without these files, some Motif applications compiled on other machines (such
as Netscape) may crash when attempting to copy or paste from or to a text
field, and may also exhibit other problems.
</p>
<hr>
<p>
[ <a href="ch-getting.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ 3 ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-software.en.html">next</a> ]
</p>
<hr>
<p>
The Debian GNU/Linux FAQ
</p>
<address>
version 3.1.5, 17 January 2007<br>
<br>
Authors are listed at <a href="ch-faqinfo.en.html#s-authors">Debian FAQ Authors</a><br>
<br>
</address>
<hr>
</body>
</html>

View File

@ -0,0 +1 @@
ch-compat.en.html

View File

@ -1,191 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>The Debian GNU/Linux FAQ - Contributing to the Debian Project</title>
</head>
<body>
<p><a name="ch-contributing"></a></p>
<hr>
<p>
[ <a href="ch-support.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ 12 ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-redistrib.en.html">next</a> ]
</p>
<hr>
<h1>
The Debian GNU/Linux FAQ
<br>Chapter 12 - Contributing to the Debian Project
</h1>
<hr>
<p>
<code><a href="http://www.debian.org/donations">Donations</a></code> of time
(to develop new packages, maintain existing packages, or provide user support),
resources (to mirror the FTP and WWW archives), and money (to pay for new
testbeds as well as hardware for the archives) can help the project.
</p>
<hr>
<h2><a name="s-contrib"></a>12.1 How can I become a Debian software developer?</h2>
<p>
The development of Debian is open to all, and new users with the right skills
and/or the willingness to learn are needed to maintain existing packages which
have been &quot;orphaned&quot; by their previous maintainers, to develop new
packages, and to provide user support.
</p>
<p>
The description of becoming a Debian developer can be found at the <code><a
href="http://www.debian.org/devel/join/newmaint">New Maintainer's
Corner</a></code> at the Debian web site.
</p>
<hr>
<h2><a name="s-contribresources"></a>12.2 How can I contribute resources to the Debian project?</h2>
<p>
Since the project aims to make a substantial body of software rapidly and
easily accessible throughout the globe, mirrors are urgently needed. It is
desirable but not absolutely necessary to mirror all of the archive. Please
visit the <code><a href="http://www.debian.org/mirror/size">Debian mirror
size</a></code> page for information on the disk space requirements.
</p>
<p>
Most of the mirroring is accomplished entirely automatically by scripts,
without any interaction. However, the occasional glitch or system change
occurs which requires human intervention.
</p>
<p>
If you have a high-speed connection to the Internet, the resources to mirror
all or part of the distribution, and are willing to take the time (or find
someone) who can provide regular maintenance of the system, then please contact
<code><a
href="mailto:debian-admin@lists.debian.org">debian-admin@lists.debian.org</a></code>.
</p>
<hr>
<h2><a name="s-supportingorganizations"></a>12.3 How can I contribute financially to the Debian project?</h2>
<p>
One can make individual donations to one of two organizations that are critical
to the development of the Debian project.
</p>
<hr>
<h3><a name="s-SPI"></a>12.3.1 Software in the Public Interest</h3>
<p>
Software in the Public Interest (SPI) is an IRS 501(c)(3) non-profit
organization, formed when FSF withdrew their sponsorship of Debian. The
purpose of the organization is to develop and distribute free software.
</p>
<p>
Our goals are very much like those of FSF, and we encourage programmers to use
the GNU General Public License on their programs. However, we have a slightly
different focus in that we are building and distributing a Linux system that
diverges in many technical details from the GNU system planned by FSF. We
still communicate with FSF, and we cooperate in sending them changes to GNU
software and in asking our users to donate to FSF and the GNU project.
</p>
<p>
SPI can be reached at: <code><a
href="http://www.spi-inc.org/">http://www.spi-inc.org/</a></code>.
</p>
<hr>
<h3><a name="s-FSF"></a>12.3.2 Free Software Foundation</h3>
<p>
At this time there is no formal connection between Debian and the Free Software
Foundation. However, the Free Software Foundation is responsible for some of
the most important software components in Debian, including the GNU C compiler,
GNU Emacs, and much of the C run-time library that is used by all programs on
the system. FSF pioneered much of what free software is today: they wrote the
General Public License that is used on much of the Debian software, and they
invented the &quot;GNU&quot; project to create an entirely free Unix system.
Debian should be considered a descendent of the GNU system.
</p>
<p>
FSF can be reached at: <code><a
href="http://www.fsf.org/">http://www.fsf.org/</a></code>.
</p>
<hr>
<p>
[ <a href="ch-support.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ 12 ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-redistrib.en.html">next</a> ]
</p>
<hr>
<p>
The Debian GNU/Linux FAQ
</p>
<address>
version 3.1.5, 17 January 2007<br>
<br>
Authors are listed at <a href="ch-faqinfo.en.html#s-authors">Debian FAQ Authors</a><br>
<br>
</address>
<hr>
</body>
</html>

View File

@ -0,0 +1 @@
ch-contributing.en.html

View File

@ -1,522 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>The Debian GNU/Linux FAQ - Customizing your installation of Debian GNU/Linux</title>
</head>
<body>
<p><a name="ch-customizing"></a></p>
<hr>
<p>
[ <a href="ch-kernel.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ 10 ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-support.en.html">next</a> ]
</p>
<hr>
<h1>
The Debian GNU/Linux FAQ
<br>Chapter 10 - Customizing your installation of Debian GNU/Linux
</h1>
<hr>
<h2><a name="s-papersize"></a>10.1 How can I ensure that all programs use the same paper size?</h2>
<p>
Install the <code>libpaper1</code> package, and it will ask you for a
system-wide default paper size. This setting will be kept in the file
<samp>/etc/papersize</samp>.
</p>
<p>
Users can override the paper size setting using the <samp>PAPERSIZE</samp>
environment variable. For details, see the manual page
<code>papersize(5)</code>.
</p>
<hr>
<h2><a name="s-hardwareaccess"></a>10.2 How can I provide access to hardware peripherals, without compromising security?</h2>
<p>
Many device files in the <samp>/dev</samp> directory belong to some predefined
groups. For example, <samp>/dev/fd0</samp> belongs to the <samp>floppy</samp>
group, and <samp>/dev/dsp</samp> belongs to the <samp>audio</samp> group.
</p>
<p>
If you want a certain user to have access to one of these devices, just add the
user to the group the device belongs to, i.e. do:
</p>
<pre>
adduser user group
</pre>
<p>
This way you won't have to change the file permissions on the device.
</p>
<hr>
<h2><a name="s-consolefont"></a>10.3 How do I load a console font on startup the Debian way?</h2>
<p>
The <code>kbd</code> and <code>console-tools</code> packages support this, edit
<samp>/etc/kbd/config</samp> or <samp>/etc/console-tools/config</samp> files.
</p>
<hr>
<h2><a name="s-appdefaults"></a>10.4 How can I configure an X11 program's application defaults?</h2>
<p>
Debian's X programs will install their application resource data in the
<samp>/etc/X11/app-defaults/</samp> directory. If you want to customize X
applications globally, put your customizations in those files. They are marked
as configuration files, so their contents will be preserved during upgrades.
</p>
<hr>
<h2><a name="s-booting"></a>10.5 Every distribution seems to have a different boot-up method. Tell me about Debian's.</h2>
<p>
Like all Unices, Debian boots up by executing the program <samp>init</samp>.
The configuration file for <samp>init</samp> (which is
<samp>/etc/inittab</samp>) specifies that the first script to be executed
should be <samp>/etc/init.d/rcS</samp>. This script runs all of the scripts in
<samp>/etc/rcS.d/</samp> by sourcing or forking subprocess depending on their
file extension to perform initialization such as to check and to mount file
systems, to load modules, to start the network services, to set the clock, and
to perform other initialization. Then, for compatibility, it runs the files
(except those with a `.'in the filename) in <samp>/etc/rc.boot/</samp> too.
Any scripts in the latter directory are usually reserved for system
administrator use, and using them in packages is deprecated.
</p>
<p>
After completing the boot process, <samp>init</samp> executes all start scripts
in a directory specified by the default runlevel (this runlevel is given by the
entry for <samp>id</samp> in <samp>/etc/inittab</samp>). Like most System V
compatible Unices, Linux has 7 runlevels:
</p>
<ul>
<li>
<p>
0 (halt the system),
</p>
</li>
</ul>
<ul>
<li>
<p>
1 (single-user mode),
</p>
</li>
</ul>
<ul>
<li>
<p>
2 through 5 (various multi-user modes), and
</p>
</li>
</ul>
<ul>
<li>
<p>
6 (reboot the system).
</p>
</li>
</ul>
<p>
Debian systems come with id=2, which indicates that the default runlevel will
be '2' when the multi-user state is entered, and the scripts in
<samp>/etc/rc2.d/</samp> will be run.
</p>
<p>
In fact, the scripts in any of the directories, <samp>/etc/rcN.d/</samp> are
just symbolic links back to scripts in <samp>/etc/init.d/</samp>. However, the
<em>names</em> of the files in each of the <samp>/etc/rcN.d/</samp> directories
are selected to indicate the <em>way</em> the scripts in
<samp>/etc/init.d/</samp> will be run. Specifically, before entering any
runlevel, all the scripts beginning with 'K' are run; these scripts kill
services. Then all the scripts beginning with 'S' are run; these scripts start
services. The two-digit number following the 'K' or 'S' indicates the order in
which the script is run. Lower numbered scripts are executed first.
</p>
<p>
This approach works because the scripts in <samp>/etc/init.d/</samp> all take
an argument which can be either `start', `stop', `reload', `restart' or
`force-reload' and will then do the task indicated by the argument. These
scripts can be used even after a system has been booted, to control various
processes.
</p>
<p>
For example, with the argument `reload' the command
</p>
<pre>
/etc/init.d/sendmail reload
</pre>
<p>
sends the sendmail daemon a signal to reread its configuration file. (BTW,
Debian supplies <code>invoke-rc.d</code> as a wrapper for invoking the scripts
in <samp>/etc/init.d/</samp>.)
</p>
<hr>
<h2><a name="s-custombootscripts"></a>10.6 It looks as if Debian does not use <samp>rc.local</samp> to customize the boot process; what facilities are provided?</h2>
<p>
Suppose a system needs to execute script <samp>foo</samp> on start-up, or on
entry to a particular (System V) runlevel. Then the system administrator
should:
</p>
<ul>
<li>
<p>
Enter the script <samp>foo</samp> into the directory <samp>/etc/init.d/</samp>.
</p>
</li>
</ul>
<ul>
<li>
<p>
Run the Debian command <samp>update-rc.d</samp> with appropriate arguments, to
set up links between the (command-line-specified) directories rc?.d and
<samp>/etc/init.d/foo</samp>. Here, '?' is a number from 0 through 6 and
corresponds to each of the System V runlevels.
</p>
</li>
</ul>
<ul>
<li>
<p>
Reboot the system.
</p>
</li>
</ul>
<p>
The command <samp>update-rc.d</samp> will set up links between files in the
directories rc?.d and the script in <samp>/etc/init.d/</samp>. Each link will
begin with a 'S' or a 'K', followed by a number, followed by the name of the
script. Scripts beginning with 'S' in <samp>/etc/rcN.d/</samp> are executed
when runlevel <samp>N</samp> is entered. Scripts beginning with a 'K' are
executed when leaving runlevel <samp>N</samp>.
</p>
<p>
One might, for example, cause the script <samp>foo</samp> to execute at
boot-up, by putting it in <samp>/etc/init.d/</samp> and installing the links
with <samp>update-rc.d foo defaults 19</samp>. The argument 'defaults' refers
to the default runlevels, which are 2 through 5. The argument '19' ensures
that <samp>foo</samp> is called before any scripts containing numbers 20 or
larger.
</p>
<hr>
<h2><a name="s-interconffiles"></a>10.7 How does the package management system deal with packages that contain configuration files for other packages?</h2>
<p>
Some users wish to create, for example, a new server by installing a group of
Debian packages and a locally generated package consisting of configuration
files. This is not generally a good idea, because <code>dpkg</code> will not
know about those configuration files if they are in a different package, and
may write conflicting configurations when one of the initial &quot;group&quot;
of packages is upgraded.
</p>
<p>
Instead, create a local package that modifies the configuration files of the
&quot;group&quot; of Debian packages of interest. Then <code>dpkg</code> and
the rest of the package management system will see that the files have been
modified by the local &quot;sysadmin&quot; and will not try to overwrite them
when those packages are upgraded.
</p>
<hr>
<h2><a name="s-divert"></a>10.8 How do I override a file installed by a package, so that a different version can be used instead?</h2>
<p>
Suppose a sysadmin or local user wishes to use a program
&quot;login-local&quot; rather than the program &quot;login&quot; provided by
the Debian <code>login</code> package.
</p>
<p>
Do <strong>not</strong>:
</p>
<ul>
<li>
<p>
Overwrite <samp>/bin/login</samp> with <samp>login-local</samp>.
</p>
</li>
</ul>
<p>
The package management system will not know about this change, and will simply
overwrite your custom <samp>/bin/login</samp> whenever <samp>login</samp> (or
any package that provides <samp>/bin/login</samp>) is installed or updated.
</p>
<p>
Rather, do
</p>
<ul>
<li>
<p>
Execute:
</p>
<pre>
dpkg-divert --divert /bin/login.debian /bin/login
</pre>
<p>
in order to cause all future installations of the Debian <code>login</code>
package to write the file <samp>/bin/login</samp> to
<samp>/bin/login.debian</samp> instead.
</p>
</li>
</ul>
<ul>
<li>
<p>
Then execute:
</p>
<pre>
cp login-local /bin/login
</pre>
<p>
to move your own locally-built program into place.
</p>
</li>
</ul>
<p>
Details are given in the manual page <code>dpkg-divert(8)</code>.
</p>
<hr>
<h2><a name="s-localpackages"></a>10.9 How can I have my locally-built package included in the list of available packages that the package management system knows about?</h2>
<p>
Execute the command:
</p>
<pre>
dpkg-scanpackages BIN_DIR OVERRIDE_FILE [PATHPREFIX] &gt; my_Packages
</pre>
<p>
where:
</p>
<ul>
<li>
<p>
BIN-DIR is a directory where Debian archive files (which usually have an
extension of &quot;.deb&quot;) are stored.
</p>
</li>
</ul>
<ul>
<li>
<p>
OVERRIDE_FILE is a file that is edited by the distribution maintainers and is
usually stored on a Debian FTP archive at <samp>indices/override.main.gz</samp>
for the Debian packages in the &quot;main&quot; distribution. You can ignore
this for local packages.
</p>
</li>
</ul>
<ul>
<li>
<p>
PATHPREFIX is an <em>optional</em> string that can be prepended to the
<samp>my_Packages</samp> file being produced.
</p>
</li>
</ul>
<p>
Once you have built the file <samp>my_Packages</samp>, tell the package
management system about it by using the command:
</p>
<pre>
dpkg --merge-avail my_Packages
</pre>
<p>
If you are using APT, you can add the local repository to your
<code>sources.list(5)</code> file, too.
</p>
<hr>
<h2><a name="s-diverse"></a>10.10 Some users like mawk, others like gawk; some like vim, others like elvis; some like trn, others like tin; how does Debian support diversity?</h2>
<p>
There are several cases where two packages provide two different versions of a
program, both of which provide the same core functionality. Users might prefer
one over another out of habit, or because the user interface of one package is
somehow more pleasing than the interface of another. Other users on the same
system might make a different choice.
</p>
<p>
Debian uses a &quot;virtual&quot; package system to allow system administrators
to choose (or let users choose) their favorite tools when there are two or more
that provide the same basic functionality, yet satisfy package dependency
requirements without specifying a particular package.
</p>
<p>
For example, there might exist two different versions of newsreaders on a
system. The news server package might 'recommend' that there exist
<em>some</em> news reader on the system, but the choice of <samp>tin</samp> or
<samp>trn</samp> is left up to the individual user. This is satisfied by
having both the <code>tin</code> and <code>trn</code> packages provide the
virtual package <code>news-reader</code>. <em>Which</em> program is invoked is
determined by a link pointing from a file with the virtual package name
<samp>/etc/alternatives/news-reader</samp> to the selected file, e.g.,
<samp>/usr/bin/trn</samp>.
</p>
<p>
A single link is insufficient to support full use of an alternate program;
normally, manual pages, and possibly other supporting files must be selected as
well. The Perl script <samp>update-alternatives</samp> provides a way of
ensuring that all the files associated with a specified package are selected as
a system default.
</p>
<p>
For example, to check what executables provide `x-window-manager', run:
</p>
<pre>
update-alternatives --display x-window-manager
</pre>
<p>
If you want to change it, run:
</p>
<pre>
update-alternatives --config x-window-manager
</pre>
<p>
And follow the instructions on the screen (basically, press the number next to
the entry you'd like better).
</p>
<p>
If a package doesn't register itself as a window manager for some reason (file
a bug if it's in error), or if you use a window manager from /usr/local
directory, the selections on screen won't contain your preferred entry. You
can update the link through command line options, like this:
</p>
<pre>
update-alternatives --install /usr/bin/x-window-manager \
x-window-manager /usr/local/bin/wmaker-cvs 50
</pre>
<p>
The first argument to `--install' option is the symlink that points to
/etc/alternatives/NAME, where NAME is the second argument. The third argument
is the program to which /etc/alternatives/NAME should point to, and the fourth
argument is the priority (larger value means the alternative will more probably
get picked automatically).
</p>
<p>
To remove an alternative you added, simply run:
</p>
<pre>
update-alternatives --remove x-window-manager /usr/local/bin/wmaker-cvs
</pre>
<hr>
<p>
[ <a href="ch-kernel.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ 10 ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-support.en.html">next</a> ]
</p>
<hr>
<p>
The Debian GNU/Linux FAQ
</p>
<address>
version 3.1.5, 17 January 2007<br>
<br>
Authors are listed at <a href="ch-faqinfo.en.html#s-authors">Debian FAQ Authors</a><br>
<br>
</address>
<hr>
</body>
</html>

View File

@ -0,0 +1 @@
ch-customizing.en.html

View File

@ -1,210 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>The Debian GNU/Linux FAQ - General information about the FAQ</title>
</head>
<body>
<p><a name="ch-faqinfo"></a></p>
<hr>
<p>
[ <a href="ch-nexttime.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ 15 ]
[ <a href="index.en.html">next</a> ]
</p>
<hr>
<h1>
The Debian GNU/Linux FAQ
<br>Chapter 15 - General information about the FAQ
</h1>
<hr>
<h2><a name="s-authors"></a>15.1 Authors</h2>
<p>
The first edition of this FAQ was made and maintained by J.H.M. Dassen (Ray)
and Chuck Stickelman. Authors of the rewritten Debian GNU/Linux FAQ are Susan
G. Kleinmann and Sven Rudolph. After them, the FAQ was maintained by Santiago
Vila and, later, by Josip Rodin. The current maintainer is Javier
Fernandez-Sanguino.
</p>
<p>
Parts of the information came from:
</p>
<ul>
<li>
<p>
The Debian-1.1 release announcement, by <code><a
href="http://www.perens.com/">Bruce Perens</a></code>.
</p>
</li>
</ul>
<ul>
<li>
<p>
The Linux FAQ, by <code><a
href="http://www.chiark.greenend.org.uk/~ijackson/">Ian Jackson</a></code>.
</p>
</li>
</ul>
<ul>
<li>
<p>
<code><a href="http://lists.debian.org/">Debian Mailing Lists
Archives</a></code>,
</p>
</li>
</ul>
<ul>
<li>
<p>
the dpkg programmers' manual and the Debian Policy manual (see <a
href="ch-support.en.html#s-debiandocs">What other documentation exists on and
for a Debian system?, Section 11.1</a>)
</p>
</li>
</ul>
<ul>
<li>
<p>
many developers, volunteers, and beta testers, and
</p>
</li>
</ul>
<ul>
<li>
<p>
the flaky memories of its authors. :-)
</p>
</li>
</ul>
<p>
The authors would like to thank all those who helped make this document
possible.
</p>
<p>
All warranties are disclaimed. All trademarks are property of their respective
trademark owners.
</p>
<hr>
<h2><a name="s-feedback"></a>15.2 Feedback</h2>
<p>
Comments and additions to this document are always welcome. Please send e-mail
to <code><a
href="mailto:doc-debian@packages.debian.org">doc-debian@packages.debian.org</a></code>,
or submit a wishlist bug report against the <code><code><a
href="http://bugs.debian.org/doc-debian">doc-debian</a></code></code> package.
</p>
<hr>
<h2><a name="s-latest"></a>15.3 Availability</h2>
<p>
The latest version of this document can be viewed on the Debian WWW pages at
<code><a
href="http://www.debian.org/doc/FAQ/">http://www.debian.org/doc/FAQ/</a></code>.
</p>
<p>
It is also available for download in plain text, HTML, PostScript and PDF
formats at <code><a
href="http://www.debian.org/doc/user-manuals#faq">http://www.debian.org/doc/user-manuals#faq</a></code>.
Also, there are several translations there.
</p>
<p>
The original SGML files used to create this document are also available in
<code>doc-debian</code>'s source package, or in CVS at:
<samp>:pserver:anonymous@cvs.debian.org:/cvs/debian-doc/ddp/manuals.sgml/faq</samp>
</p>
<hr>
<h2><a name="s-docformat"></a>15.4 Document format</h2>
<p>
This document was written using the DebianDoc SGML DTD (rewritten from LinuxDoc
SGML). DebianDoc SGML systems enables us to create files in a variety of
formats from one source, e.g. this document can be viewed as HTML, plain text,
TeX DVI, PostScript, PDF, or GNU info.
</p>
<p>
Conversion utilities for DebianDoc SGML are available in Debian package
<code>debiandoc-sgml</code>.
</p>
<hr>
<p>
[ <a href="ch-nexttime.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ 15 ]
[ <a href="index.en.html">next</a> ]
</p>
<hr>
<p>
The Debian GNU/Linux FAQ
</p>
<address>
version 3.1.5, 17 January 2007<br>
<br>
Authors are listed at <a href="ch-faqinfo.en.html#s-authors">Debian FAQ Authors</a><br>
<br>
</address>
<hr>
</body>
</html>

View File

@ -0,0 +1 @@
ch-faqinfo.en.html

View File

@ -1,575 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>The Debian GNU/Linux FAQ - The Debian FTP archives</title>
</head>
<body>
<p><a name="ch-ftparchives"></a></p>
<hr>
<p>
[ <a href="ch-software.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ 5 ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-pkg_basics.en.html">next</a> ]
</p>
<hr>
<h1>
The Debian GNU/Linux FAQ
<br>Chapter 5 - The Debian FTP archives
</h1>
<hr>
<h2><a name="s-dirtree"></a>5.1 What are all those directories at the Debian FTP archives?</h2>
<p>
The software that has been packaged for Debian GNU/Linux is available in one of
several directory trees on each Debian mirror site.
</p>
<p>
The <samp>dists</samp> directory is short for &quot;distributions&quot;, and it
is the canonical way to access the currently available Debian releases (and
pre-releases).
</p>
<p>
The <samp>pool</samp> directory contains the actual packages, see <a
href="#s-pools">What's in the <samp>pool</samp> directory?, Section 5.10</a>.
</p>
<p>
There are the following supplementary directories:
</p>
<dl>
<dt><em>/tools/</em>:</dt>
<dd>
<p>
DOS utilities for creating boot disks, partitioning your disk drive,
compressing/decompressing files, and booting Linux.
</p>
</dd>
</dl>
<dl>
<dt><em>/doc/</em>:</dt>
<dd>
<p>
The basic Debian documentation, such as the FAQ, the bug reporting system
instructions, etc.
</p>
</dd>
</dl>
<dl>
<dt><em>/indices/</em>:</dt>
<dd>
<p>
The Maintainers file and the override files.
</p>
</dd>
</dl>
<dl>
<dt><em>/project/</em>:</dt>
<dd>
<p>
mostly developer-only materials, such as:
</p>
<dl>
<dt><em>project/experimental/</em>:</dt>
<dd>
<p>
This directory contains packages and tools which are still being developed, and
are still in the alpha testing stage. Users shouldn't be using packages from
here, because they can be dangerous and harmful even for the most experienced
people.
</p>
</dd>
</dl>
</dd>
</dl>
<hr>
<h2><a name="s-dists"></a>5.2 How many Debian distributions are there in the <samp>dists</samp> directory?</h2>
<p>
There are three distributions, the &quot;stable&quot; distribution, the
&quot;testing&quot; distribution, and the &quot;unstable&quot; distribution.
The &quot;testing&quot; distribution is sometimes `frozen' (see <a
href="#s-frozen">What about &quot;testing&quot;? How is it `frozen'?, Section
5.6.1</a>).
</p>
<hr>
<h2><a name="s-codenames"></a>5.3 What are all those names like slink, potato, etc.?</h2>
<p>
They are just &quot;codenames&quot;. When a Debian distribution is in the
development stage, it has no version number but a codename. The purpose of
these codenames is to make easier the mirroring of the Debian distributions (if
a real directory like <samp>unstable</samp> suddenly changed its name to
<samp>stable</samp>, a lot of stuff would have to be needlessly downloaded
again).
</p>
<p>
Currently, <samp>stable</samp> is a symbolic link to <samp>etch</samp> (i.e.
Debian GNU/Linux 4.0) and <samp>testing</samp> is a symbolic link to
<samp>lenny</samp>. This means that <samp>etch</samp> is the current stable
distribution and <samp>lenny</samp> is the current testing distribution.
</p>
<p>
<samp>unstable</samp> is a permanent symbolic link to <samp>sid</samp>, as
<samp>sid</samp> is always the unstable distribution (see <a href="#s-sid">What
about &quot;sid&quot;?, Section 5.4</a>).
</p>
<hr>
<h3><a name="s-oldcodenames"></a>5.3.1 Which other codenames have been used in the past?</h3>
<p>
Other codenames that have been already used are: <samp>buzz</samp> for release
1.1, <samp>rex</samp> for release 1.2, <samp>bo</samp> for releases 1.3.x,
<samp>hamm</samp> for release 2.0, <samp>slink</samp> for release 2.1,
<samp>potato</samp> for release 2.2, <samp>woody</samp> for release 3.0 and
<samp>sarge</samp> for release 3.1.
</p>
<hr>
<h3><a name="s-sourceforcodenames"></a>5.3.2 Where do these codenames come from?</h3>
<p>
So far they have been characters taken from the movie &quot;Toy Story&quot; by
Pixar.
</p>
<ul>
<li>
<p>
<em>buzz</em> (Buzz Lightyear) was the spaceman,
</p>
</li>
</ul>
<ul>
<li>
<p>
<em>rex</em> was the tyrannosaurus,
</p>
</li>
</ul>
<ul>
<li>
<p>
<em>bo</em> (Bo Peep) was the girl who took care of the sheep,
</p>
</li>
</ul>
<ul>
<li>
<p>
<em>hamm</em> was the piggy bank,
</p>
</li>
</ul>
<ul>
<li>
<p>
<em>slink</em> (Slinky Dog (R)) was the toy dog,
</p>
</li>
</ul>
<ul>
<li>
<p>
<em>potato</em> was, of course, Mr. Potato (R),
</p>
</li>
</ul>
<ul>
<li>
<p>
<em>woody</em> was the cowboy,
</p>
</li>
</ul>
<ul>
<li>
<p>
<em>sarge</em> was the sergeant of the Green Plastic Army Men,
</p>
</li>
</ul>
<ul>
<li>
<p>
<em>etch</em> was the toy blackboard (Etch-a-Sketch (R)),
</p>
</li>
</ul>
<ul>
<li>
<p>
<em>lenny</em> was the binoculars.
</p>
</li>
</ul>
<ul>
<li>
<p>
<em>sid</em> was the boy next door who destroyed toys.
</p>
</li>
</ul>
<hr>
<h2><a name="s-sid"></a>5.4 What about &quot;sid&quot;?</h2>
<p>
<em>sid</em> or <em>unstable</em> is the place where most of the packages are
initially uploaded. It will never be released directly, because packages which
are to be released will first have to be included in <em>testing</em>, in order
to be released in <em>stable</em> later on. sid contains packages for both
released and unreleased architectures.
</p>
<p>
The name &quot;sid&quot; also comes from the &quot;Toy Story&quot; animated
motion picture: Sid was the boy next door who destroyed toys :-)
</p>
<p>
[<a href="footnotes.en.html#f1" name="fr1">1</a>]
</p>
<hr>
<h2><a name="s-stable"></a>5.5 What does the stable directory contain?</h2>
<ul>
<li>
<p>
stable/main/: This directory contains the packages which formally constitute
the most recent release of the Debian GNU/Linux system.
</p>
<p>
These packages all comply with the <code><a
href="http://www.debian.org/social_contract#guidelines">Debian Free Software
Guidelines</a></code>, and are all freely usable and distributable.
</p>
</li>
</ul>
<ul>
<li>
<p>
stable/non-free/: This directory contains packages distribution of which is
restricted in a way that requires that distributors take careful account of the
specified copyright requirements.
</p>
<p>
For example, some packages have licenses which prohibit commercial
distribution. Others can be redistributed but are in fact shareware and not
freeware. The licenses of each of these packages must be studied, and possibly
negotiated, before the packages are included in any redistribution (e.g., in a
CD-ROM).
</p>
</li>
</ul>
<ul>
<li>
<p>
stable/contrib/: This directory contains packages which are DFSG-free and
<em>freely distributable</em> themselves, but somehow depend on a package that
is <em>not</em> freely distributable and thus available only in the non-free
section.
</p>
</li>
</ul>
<hr>
<h2><a name="s-testing"></a>5.6 What does the testing directory contain?</h2>
<p>
Packages are installed into the `testing' directory after they have undergone
some degree of testing in <a href="#s-unstable">unstable</a>.
</p>
<p>
They must be in sync on all architectures where they have been built and
mustn't have dependencies that make them uninstallable; they also have to have
fewer release-critical bugs than the versions currently in testing. This way,
we hope that `testing' is always close to being a release candidate.
</p>
<p>
More information about the status of &quot;testing&quot; in general and the
individual packages is available at <code><a
href="http://www.debian.org/devel/testing">http://www.debian.org/devel/testing</a></code>
</p>
<hr>
<h3><a name="s-frozen"></a>5.6.1 What about &quot;testing&quot;? How is it `frozen'?</h3>
<p>
When the &quot;testing&quot; distribution is mature enough, the release manager
starts `freezing' it. The normal propagation delays are increased to ensure
that as little as possible new bugs from &quot;unstable&quot; enter
&quot;testing&quot;.
</p>
<p>
After a while, the &quot;testing&quot; distribution becomes truly `frozen'.
This means that all new packages that are to propagate to the
&quot;testing&quot; are held back, unless they include release-critical bug
fixes. The &quot;testing&quot; distribution can also remain in such a deep
freeze during the so-called `test cycles', when the release is imminent.
</p>
<p>
We keep a record of bugs in the &quot;testing&quot; distribution that can hold
off a package from being released, or bugs that can hold back the whole
release. For details, please see <code><a
href="http://www.debian.org/releases/testing/">current testing release
information</a></code>.
</p>
<p>
Once that bug count lowers to maximum acceptable values, the frozen
&quot;testing&quot; distribution is declared &quot;stable&quot; and released
with a version number.
</p>
<p>
With each new release, the previous &quot;stable&quot; distribution becomes
obsolete and moves to the archive. For more information please see <code><a
href="http://www.debian.org/distrib/archive">Debian archive</a></code>.
</p>
<hr>
<h2><a name="s-unstable"></a>5.7 What does the unstable directory contain?</h2>
<p>
The `unstable' directory contains a snapshot of the current development system.
Users are welcome to use and test these packages, but are warned about their
state of readiness. The advantage of using the unstable distribution is that
you are always up-to-date with the latest in GNU/Linux software industry, but
if it breaks: you get to keep both parts :-)
</p>
<p>
There are also main, contrib and non-free subdirectories in `unstable',
separated on the same criteria as in `stable'.
</p>
<hr>
<h2><a name="s-archsections"></a>5.8 What are all those directories inside <samp>dists/stable/main</samp>?</h2>
<p>
Within each of the major directory trees[<a href="footnotes.en.html#f2"
name="fr2">2</a>], there are three sets of subdirectories containing index
files.
</p>
<p>
There's one set of <samp>binary-<var>something</var></samp> subdirectories
which contain index files for binary packages of each available computer
architecture, for example <samp>binary-i386</samp> for packages which execute
on Intel x86 PC machines or <samp>binary-sparc</samp> for packages which
execute on Sun SPARCStations.
</p>
<p>
The complete list of available architectures for each release is available at
<code><a href="http://www.debian.org/releases/">the release's web
page</a></code>. For the current release, please see <a
href="ch-compat.en.html#s-arches">On what hardware architectures/systems does
Debian GNU/Linux run?, Section 3.1</a>.
</p>
<p>
The index files in binary-* are called Packages(.gz) and they include a summary
of each binary package that is included in that distribution. The actual
binary packages (for <em>woody</em> and subsequent releases) reside in the top
level <a href="#s-pools"><samp>pool</samp> directory</a>.
</p>
<p>
Furthermore, there's a subdirectory called source/ which contains index files
for source packages included in the distribution. The index file is called
Sources(.gz).
</p>
<p>
Last but not least, there's a set of subdirectories meant for the installation
system index files. In the <em>woody</em> release, these are named
<samp>disks-<var>architecture</var></samp>; in <em>sarge</em>, they are at
<samp>debian-installer/binary-<var>architecture</var></samp>.
</p>
<hr>
<h2><a name="s-source"></a>5.9 Where is the source code?</h2>
<p>
Source code is included for everything in the Debian system. Moreover, the
license terms of most programs in the system <em>require</em> that source code
be distributed along with the programs, or that an offer to provide the source
code accompany the programs.
</p>
<p>
The source code is distributed in the <samp>pool</samp> directory (see <a
href="#s-pools">What's in the <samp>pool</samp> directory?, Section 5.10</a>)
together with all the architecture-specific binary directories. To retrieve
the source code without having to be familiar with the structure of the FTP
archive, try a command like <samp>apt-get source mypackagename</samp>.
</p>
<p>
Some packages are only distributed as source code due to the restrictions in
their licenses. Notably, one such package is <samp>pine</samp>, see <a
href="ch-software.en.html#s-pine">Where is pine?, Section 4.10</a> for more
information.
</p>
<p>
Source code may or may not be available for packages in the &quot;contrib&quot;
and &quot;non-free&quot; directories, which are not formally part of the Debian
system.
</p>
<hr>
<h2><a name="s-pools"></a>5.10 What's in the <samp>pool</samp> directory?</h2>
<p>
Packages are kept in a large `pool', structured according to the name of the
source package. To make this manageable, the pool is subdivided by section
(`main', `contrib' and `non-free') and by the first letter of the source
package name. These directories contain several files: the binary packages for
each architecture, and the source packages from which the binary packages were
generated.
</p>
<p>
You can find out where each package is placed by executing a command like
<samp>apt-cache showsrc mypackagename</samp> and looking at the `Directory:'
line. For example, the <samp>apache</samp> packages are stored in
<samp>pool/main/a/apache/</samp>.
</p>
<p>
Additionally, since there are so many <samp>lib*</samp> packages, these are
treated specially: for instance, libpaper packages are stored in
<samp>pool/main/libp/libpaper/</samp>.
</p>
<p>
[<a href="footnotes.en.html#f3" name="fr3">3</a>]
</p>
<hr>
<h2><a name="s-incoming"></a>5.11 What is &quot;incoming&quot;?</h2>
<p>
After a developer uploads a package, it stays for a short while in the
&quot;incoming&quot; directory before it is checked that it's genuine and
allowed into the archive.
</p>
<p>
Usually nobody should install things from this place. However, in some rare
cases of emergency, the incoming directory is available at <code><a
href="http://incoming.debian.org/">http://incoming.debian.org/</a></code>. You
can manually fetch packages, check the GPG signature and MD5sums in the
.changes and .dsc files, and then install them.
</p>
<hr>
<h2><a name="s-ownrepository"></a>5.12 How do I set up my own apt-able repository?</h2>
<p>
If you have built some private Debian packages which you'd like to install
using the standard Debian package management tools, you can set up your own
apt-able package archive. This is also useful if you'd like to share your
Debian packages while these are not distributed by the Debian project.
Instructions on how to do this are given in the <code><a
href="http://www.debian.org/doc/manuals/repository-howto/repository-howto">Debian
Repository HOWTO</a></code>.
</p>
<hr>
<p>
[ <a href="ch-software.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ 5 ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-pkg_basics.en.html">next</a> ]
</p>
<hr>
<p>
The Debian GNU/Linux FAQ
</p>
<address>
version 3.1.5, 17 January 2007<br>
<br>
Authors are listed at <a href="ch-faqinfo.en.html#s-authors">Debian FAQ Authors</a><br>
<br>
</address>
<hr>
</body>
</html>

View File

@ -0,0 +1 @@
ch-ftparchives.en.html

View File

@ -1,374 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>The Debian GNU/Linux FAQ - Getting and installing Debian GNU/Linux</title>
</head>
<body>
<p><a name="ch-getting"></a></p>
<hr>
<p>
[ <a href="ch-basic_defs.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ 2 ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-compat.en.html">next</a> ]
</p>
<hr>
<h1>
The Debian GNU/Linux FAQ
<br>Chapter 2 - Getting and installing Debian GNU/Linux
</h1>
<hr>
<p>
The official document giving installation instructions is the <code><a
href="http://www.debian.org/releases/stable/installmanual">Debian GNU/Linux
Installation Guide</a></code>. We'll give some additional notes about getting
and installing Debian GNU/Linux here.
</p>
<hr>
<h2><a name="s-version"></a>2.1 What is the latest version of Debian?</h2>
<p>
Currently there are three versions of Debian GNU/Linux:
</p>
<dl>
<dt><em>release 4.0, a.k.a. the `stable' distribution</em></dt>
<dd>
<p>
This is stable and well tested software, it changes if major security or
usability fixes are incorporated.
</p>
</dd>
</dl>
<dl>
<dt><em>the `testing' distribution</em></dt>
<dd>
<p>
This is where packages that will be released as the next `stable' are placed;
they've had some testing in unstable but they may not be completely fit for
release yet. This distribution is updated more often than `stable', but not
more often than `unstable'.
</p>
</dd>
</dl>
<dl>
<dt><em>the `unstable' distribution</em></dt>
<dd>
<p>
This is the version currently under development; it is updated continuously.
You can retrieve packages from the `unstable' archive on any Debian FTP site
and use them to upgrade your system at any time, but you may not expect the
system to be as usable or as stable as before - that's why it's called
`<strong>unstable</strong>'!
</p>
</dd>
</dl>
<p>
Please see <a href="ch-ftparchives.en.html#s-dists">How many Debian
distributions are there in the <samp>dists</samp> directory?, Section 5.2</a>
for more information.
</p>
<hr>
<h2><a name="s-updatestable"></a>2.2 Are there package upgrades in `stable'?</h2>
<p>
No new functionality is added to the stable release. Once a Debian version is
released and tagged `stable' it will only get security updates. That is, only
packages for which a security vulnerability has been found after the release
will be upgraded. All the security updates are served through <code><a
href="ftp://security.debian.org">security.debian.org</a></code>.
</p>
<p>
Security updates serve one purpose: to supply a fix for a security
vulnerability. They are not a method for sneaking additional changes into the
stable release without going through normal point release procedure.
Consequently, fixes for packages with security issues will not upgrade the
software. The Debian Security Team will backport the necessary fixes to the
version of the software distributed in `stable' instead.
</p>
<p>
For more information related to security support please read the <code><a
href="http://www.debian.org/security/faq">Security FAQ</a></code> or the
<code><a href="http://www.debian.org/doc/manuals/securing-debian-howto/">Debian
Security Manual</a></code>.
</p>
<hr>
<h2><a name="s-boot-floppies"></a>2.3 Where/how can I get the Debian installation disks?</h2>
<p>
You can get the installation disks by downloading the appropriate files from
one of the <code><a href="http://www.debian.org/mirror/list">Debian
mirrors</a></code>.
</p>
<p>
The installation system files are separated in subdirectories of
<code>dists/stable/main</code> directory, and the names of these subdirectories
correspond to your architecture like this: <samp>disks-<var>arch</var></samp>
(<var>arch</var> is &quot;i386&quot;, &quot;sparc&quot;, etc, check the site
for an exact list). In each of these architecture subdirectories there can be
several directories, each for a version of the installation system, and the
currently used one is in the `current' directory (that's a symbolic link).
</p>
<p>
See the <code>README.txt</code> file in that directory for further
instructions.
</p>
<hr>
<h2><a name="s-cdrom"></a>2.4 How do I install the Debian from CD-ROMs?</h2>
<p>
Linux supports the ISO 9660 (CD-ROM) file system with Rock Ridge extensions
(formerly known as &quot;High Sierra&quot;). Several <code><a
href="http://www.debian.org/CD/vendors/">vendors</a></code> provide Debian
GNU/Linux in this format.
</p>
<p>
Warning: When installing from CD-ROM, it is usually not a good idea to choose
dselect's <samp>cdrom</samp> access method. This method is usually very slow.
The <samp>mountable</samp> and <samp>apt</samp> methods, for example, are much
better for installing from CD-ROM (see <a
href="ch-uptodate.en.html#s-dpkg-mountable">dpkg-mountable, Section 8.2.5</a>
and <a href="ch-uptodate.en.html#s-apt">apt-get, dselect and apt-cdrom, Section
8.2.2</a>).
</p>
<hr>
<h2><a name="s-cdimage-symlinks"></a>2.5 Why does the official stable released CD-ROM contain symlinks for `frozen' and `unstable'? I thought this CD contains just `stable'!</h2>
<p>
Official Debian CD images indeed contain symlinks like:
</p>
<pre>
/dists/frozen -&gt; sarge/
/dists/stable -&gt; sarge/
/dists/testing -&gt; sarge/
/dists/unstable -&gt; sarge/
</pre>
<p>
so that they work when your sources.list has an entry like
</p>
<pre>
deb cdrom:[&lt;name as on cd label&gt;]/ unstable main [...]
</pre>
<p>
.
</p>
<p>
The fact these symlinks are present does <em>not</em> mean the image is
`unstable' or `testing' or anything. Read the CD label in
<code>/.disk/info</code> to find out which Debian version it contains. This
information is also present in <code>/README.txt</code> on the CD.
</p>
<p>
Read <code><a
href="http://www.debian.org/releases/">http://www.debian.org/releases/</a></code>
to find out what the current `stable' and `testing' releases are.
</p>
<hr>
<h2><a name="s-cdimages"></a>2.6 I have my own CD-writer, are there CD images available somewhere?</h2>
<p>
Yes. To make it easier for CD vendors to provide high quality disks, we
provide the <code><a href="http://cdimage.debian.org/">Official CD
images</a></code>.
</p>
<hr>
<h2><a name="s-floppy"></a>2.7 Can I install it from a pile of floppy disks?</h2>
<p>
First of all, a warning: whole Debian GNU/Linux is way too large to be
installed from media as small as a standard 1.44MB floppy disk - you may not
find installing from floppies a very pleasant experience.
</p>
<p>
Copy the Debian packages onto formatted floppy disks. Either a DOS, the native
Linux &quot;ext2&quot;, or the &quot;minix&quot; format will do; one just has
to use a mount command appropriate to the floppy being used.
</p>
<p>
Using floppy disks has these complications:
</p>
<ul>
<li>
<p>
Short MS-DOS file names: If you are trying to place Debian package files onto
MS-DOS formatted disks, you will find that their names are generally too long,
and do not conform to the MS-DOS 8.3 filename limitation. To overcome this,
you would have to use VFAT formatted disks, since VFAT supports longer file
names.
</p>
</li>
</ul>
<ul>
<li>
<p>
Large file sizes: Some packages are larger than 1.44 MBytes, and will not fit
onto a single floppy disk. To solve this problem, use the dpkg-split tool (see
<a href="ch-pkgtools.en.html#s-dpkg-split">dpkg-split, Section 7.1.5.2</a>),
available in the <samp>tools</samp> directory on <code><a
href="http://www.debian.org/mirror/list">Debian mirrors</a></code>.
</p>
</li>
</ul>
<p>
You must have support in the kernel for floppy disks in order to read and write
to floppy disk; most kernels come with floppy drive support included in them.
</p>
<p>
To mount a floppy disk under the mount point <samp>/floppy</samp> (a directory
which should have been created during installation), use:
</p>
<ul>
<li>
<pre>
mount -t msdos /dev/fd0 /floppy/
</pre>
<p>
if the floppy disk is in drive A: and has an MS-DOS file system,
</p>
</li>
</ul>
<ul>
<li>
<pre>
mount -t msdos /dev/fd1 /floppy/
</pre>
<p>
if the floppy disk is in drive B: and has an MS-DOS file system,
</p>
</li>
</ul>
<ul>
<li>
<pre>
mount -t ext2 /dev/fd0 /floppy/
</pre>
<p>
if the floppy disk is in drive A: and has an ext2 (i.e., a normal Linux) file
system.
</p>
</li>
</ul>
<hr>
<h2><a name="s-remoteinstall"></a>2.8 Can I get and install Debian directly from a remote Internet site?</h2>
<p>
Yes. You can boot the Debian installation system from a set of files you can
download from our FTP site and its mirrors.
</p>
<p>
You can download a small CD image file, create a bootable CD from it, install
the basic system from it and the rest over the network. For more information
please see <code><a
href="http://www.debian.org/CD/netinst/">http://www.debian.org/CD/netinst/</a></code>.
</p>
<p>
You can also download even smaller floppy disk image files, create bootable
diskettes from them, start the installation procedure and get the rest of
Debian over the network. For more information, please see <code><a
href="http://www.debian.org/distrib/floppyinst">http://www.debian.org/distrib/floppyinst</a></code>.
</p>
<hr>
<p>
[ <a href="ch-basic_defs.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ 2 ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-compat.en.html">next</a> ]
</p>
<hr>
<p>
The Debian GNU/Linux FAQ
</p>
<address>
version 3.1.5, 17 January 2007<br>
<br>
Authors are listed at <a href="ch-faqinfo.en.html#s-authors">Debian FAQ Authors</a><br>
<br>
</address>
<hr>
</body>
</html>

View File

@ -0,0 +1 @@
ch-getting.en.html

View File

@ -1,315 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>The Debian GNU/Linux FAQ - Debian and the kernel</title>
</head>
<body>
<p><a name="ch-kernel"></a></p>
<hr>
<p>
[ <a href="ch-uptodate.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ 9 ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-customizing.en.html">next</a> ]
</p>
<hr>
<h1>
The Debian GNU/Linux FAQ
<br>Chapter 9 - Debian and the kernel
</h1>
<hr>
<h2><a name="s-non-debian-kernel"></a>9.1 Can I install and compile a kernel without some Debian-specific tweaking?</h2>
<p>
Yes.
</p>
<p>
There's only one common catch: the Debian C libraries are built with the most
recent <em>stable</em> releases of the <strong>kernel</strong> headers. If you
happen to need to compile a program with kernel headers newer than the ones
from the stable branch, then you should either upgrade the package containing
the headers (<code>libc6-dev</code>), or use the new headers from an unpacked
tree of the newer kernel. That is, if the kernel sources are in
<code>/usr/src/linux</code>, then you should add
<samp>-I/usr/src/linux/include/</samp> to your command line when compiling.
</p>
<hr>
<h2><a name="s-customkernel"></a>9.2 What tools does Debian provide to build custom kernels?</h2>
<p>
Users who wish to (or must) build a custom kernel are encouraged to download
the package <code>kernel-package</code>. This package contains the script to
build the kernel package, and provides the capability to create a Debian
<code>kernel-image-<var>version</var></code> package just by running the
command
</p>
<pre>
make-kpkg kernel_image
</pre>
<p>
in the top-level kernel source directory. Help is available by executing the
command
</p>
<pre>
make-kpkg --help
</pre>
<p>
and through the manual page <code>make-kpkg(1)</code>.
</p>
<p>
Users must separately download the source code for the most recent kernel (or
the kernel of their choice) from their favorite Linux archive site, unless a
<code>kernel-source-<var>version</var></code> package is available (where
<var>version</var> stands for the kernel version).
</p>
<p>
Detailed instructions for using the <code>kernel-package</code> package are
given in the file <code>/usr/share/doc/kernel-package/README.gz</code>.
Briefly, one should:
</p>
<ul>
<li>
<p>
Unpack the kernel sources, and <samp>cd</samp> to the newly created directory.
</p>
</li>
</ul>
<ul>
<li>
<p>
Modify the kernel configuration using one of these commands:
</p>
<ul>
<li>
<p>
<samp>make config</samp> (for a text-based interface).
</p>
</li>
</ul>
<ul>
<li>
<p>
<samp>make menuconfig</samp> (for an ncurses-based menu driven interface).
Note that to use this option, the <code>libncurses5-dev</code> package must be
installed.
</p>
</li>
</ul>
<ul>
<li>
<p>
<samp>make xconfig</samp> (for an X11 interface). Using this option requires
that relevant X and Tcl/Tk packages be installed.
</p>
</li>
</ul>
<p>
Any of the above steps generates a new <samp>.config</samp> in the top-level
kernel source directory.
</p>
</li>
</ul>
<ul>
<li>
<p>
Execute the command: <samp>make-kpkg -rev Custom.<var>N</var>
kernel_image</samp>, where <var>N</var> is a revision number assigned by the
user. The new Debian archive thus formed would have revision
Custom.<var>N</var>, e.g. <code>kernel-image-2.2.14_Custom.1_i386.deb</code>
for the Linux kernel 2.2.14 on i386.
</p>
</li>
</ul>
<ul>
<li>
<p>
Install the package created.
</p>
<ul>
<li>
<p>
Run <samp>dpkg --install
../kernel-image-<var>VVV</var>_Custom.<var>N</var>_i386.deb</samp> to install
the kernel itself. The installation script will:
</p>
<ul>
<li>
<p>
run the boot loader (grub, LILO or some other) if needed,
</p>
</li>
</ul>
<ul>
<li>
<p>
install the custom kernel in
<code>/boot/vmlinuz_<var>VVV</var>-Custom.<var>N</var></code>, and set up
appropriate symbolic links to the most recent kernel version.
</p>
</li>
</ul>
<ul>
<li>
<p>
prompt the user to make a boot floppy. This boot floppy will contain the raw
kernel only. See <a href="#s-custombootdisk">How can I make a custom boot
floppy?, Section 9.3</a>.
</p>
</li>
</ul>
</li>
</ul>
<ul>
<li>
<p>
To employ secondary boot loaders such as <code>loadlin</code>, copy this image
to other locations (e.g. to an <samp>MS-DOS</samp> partition).
</p>
</li>
</ul>
</li>
</ul>
<hr>
<h2><a name="s-custombootdisk"></a>9.3 How can I make a custom boot floppy?</h2>
<p>
This task is greatly aided by the Debian package <code>boot-floppies</code>,
normally found in the <samp>admin</samp> section of the Debian FTP archive.
Shell scripts in this package produce boot floppies in the
<samp>SYSLINUX</samp> format. These are <samp>MS-DOS</samp> formatted floppies
whose master boot records have been altered so that they boot Linux directly
(or whatever other operating system has been defined in the
<code>syslinux.cfg</code> file on the floppy). Other scripts in this package
produce emergency root disks and can even reproduce the base disks.
</p>
<p>
You will find more information about this in the
<code>/usr/share/doc/boot-floppies/README</code> file after installing the
<code>boot-floppies</code> package.
</p>
<hr>
<h2><a name="s-modules"></a>9.4 What special provisions does Debian provide to deal with modules?</h2>
<p>
Debian's <code>modconf</code> package provides a shell script
(<code>/usr/sbin/modconf</code>) which can be used to customize the
configuration of modules. This script presents a menu-based interface,
prompting the user for particulars on the loadable device drivers in his
system. The responses are used to customize the file
<code>/etc/modules.conf</code> (which lists aliases, and other arguments that
must be used in conjunction with various modules) through files in
<code>/etc/modutils/</code>, and <code>/etc/modules</code> (which lists the
modules that must be loaded at boot time).
</p>
<p>
Like the (new) <code>Configure.help</code> files that are now available to
support the construction of custom kernels, the <code>modconf</code> package
comes with a series of help files (in <code>/usr/lib/modules_help/</code>)
which provide detailed information on appropriate arguments for each of the
modules.
</p>
<hr>
<h2><a name="s-removeoldkernel"></a>9.5 Can I safely de-install an old kernel package, and if so, how?</h2>
<p>
Yes. The <code>kernel-image-<var>NNN</var>.prerm</code> script checks to see
whether the kernel you are currently running is the same as the kernel you are
trying to de-install. Therefore you can remove unwanted kernel image packages
using this command:
</p>
<pre>
dpkg --purge --force-remove-essential kernel-image-<var>NNN</var>
</pre>
<p>
(replace <var>NNN</var> with your kernel version and revision number, of
course)
</p>
<hr>
<p>
[ <a href="ch-uptodate.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ 9 ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-customizing.en.html">next</a> ]
</p>
<hr>
<p>
The Debian GNU/Linux FAQ
</p>
<address>
version 3.1.5, 17 January 2007<br>
<br>
Authors are listed at <a href="ch-faqinfo.en.html#s-authors">Debian FAQ Authors</a><br>
<br>
</address>
<hr>
</body>
</html>

View File

@ -0,0 +1 @@
ch-kernel.en.html

View File

@ -1,147 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>The Debian GNU/Linux FAQ - Changes expected in the next major release of Debian</title>
</head>
<body>
<p><a name="ch-nexttime"></a></p>
<hr>
<p>
[ <a href="ch-redistrib.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ 14 ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-faqinfo.en.html">next</a> ]
</p>
<hr>
<h1>
The Debian GNU/Linux FAQ
<br>Chapter 14 - Changes expected in the next major release of Debian
</h1>
<hr>
<h2><a name="s-security"></a>14.1 Increased security</h2>
<p>
Debian contains support for shadow passwords since release 1.3. In addition,
the Linux library of Pluggable Authentication Modules (a.k.a. <code><a
href="http://www.kernel.org/pub/linux/libs/pam/">libpam</a></code>;) that
allows sysadmins to choose authorization modes on an application-specific basis
is available, and initially set to authenticate via shadow password.
</p>
<p>
Including full support for additional security enhancements for mandatory
access control mechanisms such as SElinux, RSBAC and buffer overflow protection
like Exec-shield or PaX is still in progress.
</p>
<hr>
<h2><a name="s-i18n"></a>14.2 Extended support for non-English users</h2>
<p>
Debian already has very good support for non-English users, see <a
href="ch-software.en.html#s-nonenglish">How does Debian support non-English
languages?, Section 4.8</a>.
</p>
<p>
We hope to find people who will provide support for even more languages, and
translate. Some programs already support internationalization, so we need
message catalogs translators. Many programs still remain to be properly
internationalized.
</p>
<p>
The GNU Translation Project <code><a
href="ftp://ftp.gnu.org/pub/gnu/ABOUT-NLS">ftp://ftp.gnu.org/pub/gnu/ABOUT-NLS</a></code>
works on internationalizing the GNU programs.
</p>
<hr>
<h2><a name="s-morearches"></a>14.3 More architectures</h2>
<p>
Complete Debian system on other architectures such as AMD64 or SuperH is
expected soon. Notice that even though some architectures are dropped for a
given the release there still might be a way to install and upgrade using the
latest <samp>sid</samp>.
</p>
<hr>
<h2><a name="s-morekernels"></a>14.4 More kernels</h2>
<p>
In addition to Debian GNU/Hurd, Debian is being ported also to BSD kernels,
namely to <code><a href="http://www.debian.org/ports/netbsd">NetBSD</a></code>.
</p>
<hr>
<p>
[ <a href="ch-redistrib.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ 14 ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-faqinfo.en.html">next</a> ]
</p>
<hr>
<p>
The Debian GNU/Linux FAQ
</p>
<address>
version 3.1.5, 17 January 2007<br>
<br>
Authors are listed at <a href="ch-faqinfo.en.html#s-authors">Debian FAQ Authors</a><br>
<br>
</address>
<hr>
</body>
</html>

View File

@ -0,0 +1 @@
ch-nexttime.en.html

View File

@ -1,863 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>The Debian GNU/Linux FAQ - Basics of the Debian package management system</title>
</head>
<body>
<p><a name="ch-pkg_basics"></a></p>
<hr>
<p>
[ <a href="ch-ftparchives.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ 6 ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-pkgtools.en.html">next</a> ]
</p>
<hr>
<h1>
The Debian GNU/Linux FAQ
<br>Chapter 6 - Basics of the Debian package management system
</h1>
<hr>
<h2><a name="s-package"></a>6.1 What is a Debian package?</h2>
<p>
Packages generally contain all of the files necessary to implement a set of
related commands or features. There are two types of Debian packages:
</p>
<ul>
<li>
<p>
<em>Binary packages</em>, which contain executables, configuration files,
man/info pages, copyright information, and other documentation. These packages
are distributed in a Debian-specific archive format (see <a
href="#s-deb-format">What is the format of a Debian binary package?, Section
6.2</a>); they are usually distinguished by having a '.deb' file extension.
Binary packages can be unpacked using the Debian utility <samp>dpkg</samp>;
details are given in its manual page.
</p>
</li>
</ul>
<ul>
<li>
<p>
<em>Source packages</em>, which consist of a <samp>.dsc</samp> file describing
the source package (including the names of the following files), a
<samp>.orig.tar.gz</samp> file that contains the original unmodified source in
gzip-compressed tar format and usually a <samp>.diff.gz</samp> file that
contains the Debian-specific changes to the original source. The utility
<samp>dpkg-source</samp> packs and unpacks Debian source archives; details are
provided in its manual page.
</p>
</li>
</ul>
<p>
Installation of software by the package system uses &quot;dependencies&quot;
which are carefully designed by the package maintainers. These dependencies
are documented in the <samp>control</samp> file associated with each package.
For example, the package containing the GNU C compiler (<code>gcc</code>)
&quot;depends&quot; on the package <code>binutils</code> which includes the
linker and assembler. If a user attempts to install <code>gcc</code> without
having first installed <code>binutils</code>, the package management system
(dpkg) will send an error message that it also needs <code>binutils</code>, and
stop installing <code>gcc</code>. (However, this facility can be overridden by
the insistent user, see <code>dpkg(8)</code>.) See more in <a
href="#s-depends">What is meant by saying that a package <em>Depends</em>,
<em>Recommends</em>, <em>Suggests</em>, <em>Conflicts</em>, <em>Replaces</em>
or <em>Provides</em> another package?, Section 6.9</a> below.
</p>
<p>
Debian's packaging tools can be used to:
</p>
<ul>
<li>
<p>
manipulate and manage packages or parts of packages,
</p>
</li>
</ul>
<ul>
<li>
<p>
aid the user in the break-up of packages that must be transmitted through a
limited-size medium such as floppy disks,
</p>
</li>
</ul>
<ul>
<li>
<p>
aid developers in the construction of package archives, and
</p>
</li>
</ul>
<ul>
<li>
<p>
aid users in the installation of packages which reside on a remote FTP site.
</p>
</li>
</ul>
<hr>
<h2><a name="s-deb-format"></a>6.2 What is the format of a Debian binary package?</h2>
<p>
A Debian &quot;package&quot;, or a Debian archive file, contains the executable
files, libraries, and documentation associated with a particular suite of
program or set of related programs. Normally, a Debian archive file has a
filename that ends in <samp>.deb</samp>.
</p>
<p>
The internals of this Debian binary packages format are described in the
<code>deb(5)</code> manual page. This internal format is subject to change
(between major releases of Debian GNU/Linux), therefore please always use
<code>dpkg-deb(1)</code> for manipulating <samp>.deb</samp> files.
</p>
<hr>
<h2><a name="s-pkgname"></a>6.3 Why are Debian package file names so long?</h2>
<p>
The Debian binary package file names conform to the following convention:
&lt;foo&gt;_&lt;VersionNumber&gt;-&lt;DebianRevisionNumber&gt;.deb
</p>
<p>
Note that <samp>foo</samp> is supposed to be the package name. As a check, one
can learn the package name associated with a particular Debian archive file
(.deb file) in one of these ways:
</p>
<ul>
<li>
<p>
inspect the &quot;Packages&quot; file in the directory where it was stored at a
Debian FTP archive site. This file contains a stanza describing each package;
the first field in each stanza is the formal package name.
</p>
</li>
</ul>
<ul>
<li>
<p>
use the command <samp>dpkg --info foo_VVV-RRR.deb</samp> (where VVV and RRR are
the version and revision of the package in question, respectively). This
displays, among other things, the package name corresponding to the archive
file being unpacked.
</p>
</li>
</ul>
<p>
The <samp>VVV</samp> component is the version number specified by the upstream
developer. There are no standards in place here, so the version number may
have formats as different as &quot;19990513&quot; and &quot;1.3.8pre1&quot;.
</p>
<p>
The <samp>RRR</samp> component is the Debian revision number, and is specified
by the Debian developer (or an individual user if he chooses to build the
package himself). This number corresponds to the revision level of the Debian
package, thus, a new revision level usually signifies changes in the Debian
Makefile (<samp>debian/rules</samp>), the Debian control file
(<samp>debian/control</samp>), the installation or removal scripts
(<samp>debian/p*</samp>), or in the configuration files used with the package.
</p>
<hr>
<h2><a name="s-controlfile"></a>6.4 What is a Debian control file?</h2>
<p>
Specifics regarding the contents of a Debian control file are provided in the
Debian Policy Manual, section 5, see <a
href="ch-support.en.html#s-debiandocs">What other documentation exists on and
for a Debian system?, Section 11.1</a>.
</p>
<p>
Briefly, a sample control file is shown below for the Debian package hello:
</p>
<pre>
Package: hello
Priority: optional
Section: devel
Installed-Size: 45
Maintainer: Adam Heath &lt;doogie@debian.org&gt;
Architecture: i386
Version: 1.3-16
Depends: libc6 (&gt;= 2.1)
Description: The classic greeting, and a good example
The GNU hello program produces a familiar, friendly greeting. It
allows nonprogrammers to use a classic computer science tool which
would otherwise be unavailable to them.
.
Seriously, though: this is an example of how to do a Debian package.
It is the Debian version of the GNU Project's `hello world' program
(which is itself an example for the GNU Project).
</pre>
<p>
The Package field gives the package name. This is the name by which the
package can be manipulated by the package tools, and usually similar to but not
necessarily the same as the first component string in the Debian archive file
name.
</p>
<p>
The Version field gives both the upstream developer's version number and (in
the last component) the revision level of the Debian package of this program as
explained in <a href="#s-pkgname">Why are Debian package file names so long?,
Section 6.3</a>.
</p>
<p>
The Architecture field specifies the chip for which this particular binary was
compiled.
</p>
<p>
The Depends field gives a list of packages that have to be installed in order
to install this package successfully.
</p>
<p>
The Installed-Size indicates how much disk space the installed package will
consume. This is intended to be used by installation front-ends in order to
show whether there is enough disk space available to install the program.
</p>
<p>
The Section line gives the &quot;section&quot; where this Debian package is
stored at the Debian FTP sites. This is the name of a subdirectory (within one
of the main directories, see <a href="ch-ftparchives.en.html#s-dirtree">What
are all those directories at the Debian FTP archives?, Section 5.1</a>) where
the package is stored.
</p>
<p>
The Priority indicates how important is this package for installation, so that
semi-intelligent software like dselect or console-apt can sort the package into
a category of e.g. packages optionally installed. See <a
href="#s-priority">What is an <em>Essential</em> <em>Required</em>,
<em>Important</em>, <em>Standard</em>, <em>Optional</em>, or <em>Extra</em>
package?, Section 6.7</a>.
</p>
<p>
The Maintainer field gives the e-mail address of the person who is currently
responsible for maintaining this package.
</p>
<p>
The Description field gives a brief summary of the package's features.
</p>
<p>
For more information about all possible fields a package can have, please see
the Debian Policy Manual, section 5., &quot;Control files and their
fields&quot;.
</p>
<hr>
<h2><a name="s-conffile"></a>6.5 What is a Debian conffile?</h2>
<p>
Conffiles is a list of configuration files (usually placed in
<samp>/etc</samp>) that the package management system will not overwrite when
the package is upgraded. This ensures that local values for the contents of
these files will be preserved, and is a critical feature enabling the in-place
upgrade of packages on a running system.
</p>
<p>
To determine exactly which files are preserved during an upgrade, run:
</p>
<pre>
dpkg --status package
</pre>
<p>
And look under &quot;Conffiles:&quot;.
</p>
<hr>
<h2><a name="s-maintscripts"></a>6.6 What is a Debian preinst, postinst, prerm, and postrm script?</h2>
<p>
These files are executable scripts which are automatically run before or after
a package is installed. Along with a file named <samp>control</samp>, all of
these files are part of the &quot;control&quot; section of a Debian archive
file.
</p>
<p>
The individual files are:
</p>
<dl>
<dt>preinst</dt>
<dd>
<p>
This script executes before that package will be unpacked from its Debian
archive (&quot;.deb&quot;) file. Many 'preinst' scripts stop services for
packages which are being upgraded until their installation or upgrade is
completed (following the successful execution of the 'postinst' script).
</p>
</dd>
</dl>
<dl>
<dt>postinst</dt>
<dd>
<p>
This script typically completes any required configuration of the package
<samp>foo</samp> once <samp>foo</samp> has been unpacked from its Debian
archive (&quot;.deb&quot;) file. Often, 'postinst' scripts ask the user for
input, and/or warn the user that if he accepts default values, he should
remember to go back and re-configure that package as the situation warrants.
Many 'postinst' scripts then execute any commands necessary to start or restart
a service once a new package has been installed or upgraded.
</p>
</dd>
</dl>
<dl>
<dt>prerm</dt>
<dd>
<p>
This script typically stops any daemons which are associated with a package.
It is executed before the removal of files associated with the package.
</p>
</dd>
</dl>
<dl>
<dt>postrm</dt>
<dd>
<p>
This script typically modifies links or other files associated with
<samp>foo</samp>, and/or removes files created by the package. (Also see <a
href="#s-virtual">What is a Virtual Package?, Section 6.8</a>.)
</p>
</dd>
</dl>
<p>
Currently all of the control files can be found in directory
<samp>/var/lib/dpkg/info</samp>. The files relevant to package
<samp>foo</samp> begin with the name &quot;foo&quot; and have file extensions
of &quot;preinst&quot;, &quot;postinst&quot;, etc., as appropriate. The file
<samp>foo.list</samp> in that directory lists all of the files that were
installed with the package <samp>foo</samp>. (Note that the location of these
files is a dpkg internal; you should not rely on it.)
</p>
<hr>
<h2><a name="s-priority"></a>6.7 What is an <em>Essential</em> <em>Required</em>, <em>Important</em>, <em>Standard</em>, <em>Optional</em>, or <em>Extra</em> package?</h2>
<p>
Each Debian package is assigned a <em>priority</em> by the distribution
maintainers, as an aid to the package management system. The priorities are:
</p>
<ul>
<li>
<p>
<strong>Required</strong>: packages that are necessary for the proper
functioning of the system.
</p>
<p>
This includes all tools that are necessary to repair system defects. You must
not remove these packages or your system may become totally broken and you may
probably not even be able to use dpkg to put things back. Systems with only
the Required packages are probably unusable, but they do have enough
functionality to allow the sysadmin to boot and install more software.
</p>
</li>
</ul>
<ul>
<li>
<p>
<strong>Important</strong> packages should be found on any Unix-like system.
</p>
<p>
Other packages which the system will not run well or be usable without will be
here. This does <em>NOT</em> include Emacs or X11 or TeX or any other large
applications. These packages only constitute the bare infrastructure.
</p>
</li>
</ul>
<ul>
<li>
<p>
<strong>Standard</strong> packages are standard on any Linux system, including
a reasonably small but not too limited character-mode system. Tools are
included to be able to browse the web (using w3m), send e-mail (with mutt) and
download files from FTP servers.
</p>
<p>
This is what will install by default if users do not select anything else. It
does not include many large applications, but it does include the Python
interpreter and some server software like OpenSSH (for remote administration),
Exim (for mail delivery, although it can be configured for local delivery
only), an identd server (pidentd) and the RPC portmapper
(<samp>portmap</samp>). It also includes some common generic documentation
that most users will find helpful.
</p>
</li>
</ul>
<ul>
<li>
<p>
<strong>Optional</strong> packages include all those that you might reasonably
want to install if you did not know what it was, or do not have specialized
requirements.
</p>
<p>
This includes X11, a full TeX distribution, and lots of applications.
</p>
</li>
</ul>
<ul>
<li>
<p>
<strong>Extra</strong>: packages that either conflict with others with higher
priorities, are only likely to be useful if you already know what they are, or
have specialized requirements that make them unsuitable for
&quot;Optional&quot;.
</p>
</li>
</ul>
<p>
If you do a default Debian installation all the packages of priority
<strong>Standard</strong> or higher will be installed in your system. If you
select pre-defined tasks you will get lower priority packages too.
</p>
<p>
Additionally, some packages are marked as <strong>Essential</strong> since they
are absolutely necessary for the proper functioning of the system. The package
management tools will refuse to remove these.
</p>
<hr>
<h2><a name="s-virtual"></a>6.8 What is a Virtual Package?</h2>
<p>
A virtual package is a generic name that applies to any one of a group of
packages, all of which provide similar basic functionality. For example, both
the <samp>tin</samp> and <samp>trn</samp> programs are news readers, and should
therefore satisfy any dependency of a program that required a news reader on a
system, in order to work or to be useful. They are therefore both said to
provide the &quot;virtual package&quot; called <samp>news-reader</samp>.
</p>
<p>
Similarly, <samp>smail</samp> and <samp>sendmail</samp> both provide the
functionality of a mail transport agent. They are therefore said to provide
the virtual package, &quot;mail transport agent&quot;. If either one is
installed, then any program depending on the installation of a
<samp>mail-transport-agent</samp> will be satisfied by the existence of this
virtual package.
</p>
<p>
Debian provides a mechanism so that, if more than one package which provide the
same virtual package is installed on a system, then system administrators can
set one as the preferred package. The relevant command is
<samp>update-alternatives</samp>, and is described further in <a
href="ch-customizing.en.html#s-diverse">Some users like mawk, others like gawk;
some like vim, others like elvis; some like trn, others like tin; how does
Debian support diversity?, Section 10.10</a>.
</p>
<hr>
<h2><a name="s-depends"></a>6.9 What is meant by saying that a package <em>Depends</em>, <em>Recommends</em>, <em>Suggests</em>, <em>Conflicts</em>, <em>Replaces</em> or <em>Provides</em> another package?</h2>
<p>
The Debian package system has a range of package &quot;dependencies&quot; which
are designed to indicate (in a single flag) the level at which Program A can
operate independently of the existence of Program B on a given system:
</p>
<ul>
<li>
<p>
Package A <em>depends</em> on Package B if B absolutely must be installed in
order to run A. In some cases, A depends not only on B, but on a version of B.
In this case, the version dependency is usually a lower limit, in the sense
that A depends on any version of B more recent than some specified version.
</p>
</li>
</ul>
<ul>
<li>
<p>
Package A <em>recommends</em> Package B, if the package maintainer judges that
most users would not want A without also having the functionality provided by
B.
</p>
</li>
</ul>
<ul>
<li>
<p>
Package A <em>suggests</em> Package B if B contains files that are related to
(and usually enhance) the functionality of A.
</p>
</li>
</ul>
<ul>
<li>
<p>
Package A <em>conflicts</em> with Package B when A will not operate if B is
installed on the system. Most often, conflicts are cases where A contains
files which are an improvement over those in B. &quot;Conflicts&quot; are
often combined with &quot;replaces&quot;.
</p>
</li>
</ul>
<ul>
<li>
<p>
Package A <em>replaces</em> Package B when files installed by B are removed and
(in some cases) over-written by files in A.
</p>
</li>
</ul>
<ul>
<li>
<p>
Package A <em>provides</em> Package B when all of the files and functionality
of B are incorporated into A. This mechanism provides a way for users with
constrained disk space to get only that part of package A which they really
need.
</p>
</li>
</ul>
<p>
More detailed information on the use of each these terms can be found in the
Policy manual.
</p>
<hr>
<h2><a name="s-pre-depends"></a>6.10 What is meant by Pre-Depends?</h2>
<p>
&quot;Pre-Depends&quot; is a special dependency. In the case of most packages,
<samp>dpkg</samp> will unpack its archive file (i.e., its <samp>.deb</samp>
file) independently of whether or not the files on which it depends exist on
the system. Simplistically, unpacking means that <samp>dpkg</samp> will
extract the files from the archive file that were meant to be installed on your
file system, and put them in place. If those packages <em>depend</em> on the
existence of some other packages on your system, <samp>dpkg</samp> will refuse
to complete the installation (by executing its &quot;configure&quot; action)
until the other packages are installed.
</p>
<p>
However, for some packages, <samp>dpkg</samp> will refuse even to unpack them
until certain dependencies are resolved. Such packages are said to
&quot;Pre-depend&quot; on the presence of some other packages. The Debian
project provided this mechanism to support the safe upgrading of systems from
<samp>a.out</samp> format to <samp>ELF</samp> format, where the <em>order</em>
in which packages were unpacked was critical. There are other large upgrade
situations where this method is useful, e.g. the packages with the required
priority and their LibC dependency.
</p>
<p>
As before, more detailed information about this can be found in the Policy
manual.
</p>
<hr>
<h2><a name="s-pkgstatus"></a>6.11 What is meant by <em>unknown</em>, <em>install</em>, <em>remove</em> <em>purge</em> and <em>hold</em> in the package status?</h2>
<p>
These &quot;want&quot; flags tell what the user wanted to do with a package (as
indicated either by the user's actions in the &quot;Select&quot; section of
<samp>dselect</samp>, or by the user's direct invocations of
<samp>dpkg</samp>).
</p>
<p>
Their meanings are:
</p>
<ul>
<li>
<p>
unknown - the user has never indicated whether he wants the package
</p>
</li>
</ul>
<ul>
<li>
<p>
install - the user wants the package installed or upgraded
</p>
</li>
</ul>
<ul>
<li>
<p>
remove - the user wants the package removed, but does not want to remove any
existing configuration files.
</p>
</li>
</ul>
<ul>
<li>
<p>
purge - the user wants the package to be removed completely, including its
configuration files.
</p>
</li>
</ul>
<ul>
<li>
<p>
hold - the user wants this package not to be processed, i.e., he wants to keep
the current version with the current status whatever that is.
</p>
</li>
</ul>
<hr>
<h2><a name="s-puttingonhold"></a>6.12 How do I put a package on hold?</h2>
<p>
There are three ways of holding back packages, with dpkg, aptitude or with
dselect.
</p>
<p>
With dpkg, you just have to export the list of package selections, with:
</p>
<pre>
dpkg --get-selections \* &gt; selections.txt
</pre>
<p>
Then edit the resulting file <code>selections.txt</code>, change the line
containing the package you wish to hold, e.g. <code>libc6</code>, from this:
</p>
<pre>
libc6 install
</pre>
<p>
to this:
</p>
<pre>
libc6 hold
</pre>
<p>
Save the file, and reload it into dpkg database with:
</p>
<pre>
dpkg --set-selections &lt; selections.txt
</pre>
<p>
With aptitude, you can hold a package using
</p>
<pre>
aptitude hold package_name
</pre>
<p>
and remove the hold with
</p>
<pre>
aptitude unhold package_name
</pre>
<p>
With dselect, you just have to enter the [S]elect screen, find the package you
wish to hold in its present state, and press the `=' key (or `H'). The changes
will go live immediately after you exit the [S]elect screen.
</p>
<hr>
<h2><a name="s-sourcepkgs"></a>6.13 How do I install a source package?</h2>
<p>
Debian source packages can't actually be &quot;installed&quot;, they are just
unpacked in whatever directory you want to build the binary packages they
produce.
</p>
<p>
Source packages are distributed on most of the same mirrors where you can
obtain the binary packages. If you set up your APT's
<code>sources.list(5)</code> to include the appropriate &quot;deb-src&quot;
lines, you'll be able to easily download any source packages by running
</p>
<pre>
apt-get source foo
</pre>
<p>
To help you in actually building the source package, Debian source package
provide the so-called build-dependencies mechanism. This means that the source
package maintainer keeps a list of other packages that are required to build
their package. To see how this is useful, run
</p>
<pre>
apt-get build-dep foo
</pre>
<p>
before building the source.
</p>
<hr>
<h2><a name="s-sourcebuild"></a>6.14 How do I build binary packages from a source package?</h2>
<p>
You will need all of foo_*.dsc, foo_*.tar.gz and foo_*.diff.gz to compile the
source (note: there is no .diff.gz for some packages that are native to
Debian).
</p>
<p>
Once you have them (<a href="#s-sourcepkgs">How do I install a source package?,
Section 6.13</a>), if you have the <code>dpkg-dev</code> package installed, the
following command:
</p>
<pre>
dpkg-source -x foo_version-revision.dsc
</pre>
<p>
will extract the package into a directory called <samp>foo-version</samp>.
</p>
<p>
If you want just to compile the package, you may cd into
<samp>foo-version</samp> directory and issue the command
</p>
<pre>
dpkg-buildpackage -rfakeroot -b
</pre>
<p>
to build the package (note that this also requires the <code>fakeroot</code>
package), and then
</p>
<pre>
dpkg -i ../foo_version-revision_arch.deb
</pre>
<p>
to install the newly-built package(s).
</p>
<hr>
<h2><a name="s-creatingdebs"></a>6.15 How do I create Debian packages myself?</h2>
<p>
For more detailed description on this, read the New Maintainers' Guide,
available in the <code>maint-guide</code> package, or at <code><a
href="http://www.debian.org/doc/devel-manuals#maint-guide">http://www.debian.org/doc/devel-manuals#maint-guide</a></code>.
</p>
<hr>
<p>
[ <a href="ch-ftparchives.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ 6 ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-pkgtools.en.html">next</a> ]
</p>
<hr>
<p>
The Debian GNU/Linux FAQ
</p>
<address>
version 3.1.5, 17 January 2007<br>
<br>
Authors are listed at <a href="ch-faqinfo.en.html#s-authors">Debian FAQ Authors</a><br>
<br>
</address>
<hr>
</body>
</html>

View File

@ -0,0 +1 @@
ch-pkg_basics.en.html

View File

@ -1,936 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>The Debian GNU/Linux FAQ - The Debian package management tools</title>
</head>
<body>
<p><a name="ch-pkgtools"></a></p>
<hr>
<p>
[ <a href="ch-pkg_basics.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ 7 ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-uptodate.en.html">next</a> ]
</p>
<hr>
<h1>
The Debian GNU/Linux FAQ
<br>Chapter 7 - The Debian package management tools
</h1>
<hr>
<h2><a name="s-pkgprogs"></a>7.1 What programs does Debian provide for managing its packages?</h2>
<p>
There are multiple tools that are used to manage Debian packages, from graphic
or text-based interfaces to the low level tools used to install packages. All
the available tools rely on the lower level tools to properly work and are
presented here in decreasing complexity level.
</p>
<p>
It is important to understand that the higher level package management tools
such as <code>aptitude</code> or <code>dselect</code> rely on <code>apt</code>
which, itself, relies on <code>dpkg</code> to manage the packages in the
system.
</p>
<p>
See the <code><a href="http://www.debian.org/doc/manuals/apt-howto/">APT
HOWTO</a></code> for more information about the Debian package management
utilities. This document is available in various languages and formats, see
<code><a href="http://www.debian.org/doc/user-manuals#apt-howto">the APT HOWTO
entry on the DDP Users' Manuals overview</a></code>.
</p>
<hr>
<h3><a name="s-dpkg"></a>7.1.1 dpkg</h3>
<p>
This is the main package management program. <code>dpkg</code> can be invoked
with many options. Some common uses are:
</p>
<ul>
<li>
<p>
Find out all the options: <samp>dpkg --help</samp>.
</p>
</li>
</ul>
<ul>
<li>
<p>
Print out the control file (and other information) for a specified package:
<samp>dpkg --info foo_VVV-RRR.deb</samp>
</p>
</li>
</ul>
<ul>
<li>
<p>
Install a package (including unpacking and configuring) onto the file system of
the hard disk: <samp>dpkg --install foo_VVV-RRR.deb</samp>.
</p>
</li>
</ul>
<ul>
<li>
<p>
Unpack (but do not configure) a Debian archive into the file system of the hard
disk: <samp>dpkg --unpack foo_VVV-RRR.deb</samp>. Note that this operation
does <em>not</em> necessarily leave the package in a usable state; some files
may need further customization to run properly. This command removes any
already-installed version of the program and runs the preinst (see <a
href="ch-pkg_basics.en.html#s-maintscripts">What is a Debian preinst, postinst,
prerm, and postrm script?, Section 6.6</a>) script associated with the package.
</p>
</li>
</ul>
<ul>
<li>
<p>
Configure a package that already has been unpacked: <samp>dpkg --configure
foo</samp>. Among other things, this action runs the postinst (see <a
href="ch-pkg_basics.en.html#s-maintscripts">What is a Debian preinst, postinst,
prerm, and postrm script?, Section 6.6</a>) script associated with the package.
It also updates the files listed in the <samp>conffiles</samp> for this
package. Notice that the 'configure' operation takes as its argument a package
name (e.g., foo), <em>not</em> the name of a Debian archive file (e.g.,
foo_VVV-RRR.deb).
</p>
</li>
</ul>
<ul>
<li>
<p>
Extract a single file named &quot;blurf&quot; (or a group of files named
&quot;blurf*&quot; from a Debian archive: <samp>dpkg --fsys-tarfile
foo_VVV-RRR.deb | tar -xf - blurf*</samp>
</p>
</li>
</ul>
<ul>
<li>
<p>
Remove a package (but not its configuration files): <samp>dpkg --remove
foo</samp>.
</p>
</li>
</ul>
<ul>
<li>
<p>
Remove a package (including its configuration files): <samp>dpkg --purge
foo</samp>.
</p>
</li>
</ul>
<ul>
<li>
<p>
List the installation status of packages containing the string (or regular
expression) &quot;foo*&quot;: <samp>dpkg --list 'foo*'</samp>.
</p>
</li>
</ul>
<hr>
<h3><a name="s-apt-get"></a>7.1.2 APT</h3>
<p>
APT is the <em>Advanced Package Tool</em> and provides the <code>apt-get</code>
program. <code>apt-get</code> provides a simple way to retrieve and install
packages from multiple sources using the command line. Unlike
<code>dpkg</code>, <code>apt-get</code> does not understand .deb files, it
works with the packages proper name and can only install .deb archives from a
source specified in <code>/etc/apt/sources.list</code>. <code>apt-get</code>
will call <code>dpkg</code> directly after downloading the .deb archives[<a
href="footnotes.en.html#f4" name="fr4">4</a>] from the configured sources.
</p>
<p>
Some common ways to use <code>apt-get</code> are:
</p>
<ul>
<li>
<p>
To update the list of package known by your system, you can run:
</p>
<pre>
apt-get update
</pre>
<p>
(you should execute this regularly to update your package lists)
</p>
</li>
</ul>
<ul>
<li>
<p>
To upgrade all the packages on your system, run:
</p>
<pre>
apt-get upgrade
</pre>
</li>
</ul>
<ul>
<li>
<p>
To install the <var>foo</var> package and all its dependencies, run:
</p>
<pre>
apt-get install foo
</pre>
</li>
</ul>
<ul>
<li>
<p>
To remove the foo package from your system, run:
</p>
<pre>
apt-get remove foo
</pre>
</li>
</ul>
<ul>
<li>
<p>
To remove the foo package and its configuration files from your system, run:
</p>
<pre>
apt-get --purge remove foo
</pre>
</li>
</ul>
<ul>
<li>
<p>
To upgrade all the packages on your system to a new Debian GNU/Linux release,
run:
</p>
<pre>
apt-get dist-upgrade
</pre>
</li>
</ul>
<p>
Note that you must be logged in as root to perform any commands that modify the
system packages.
</p>
<p>
The apt tool suite also includes the <code>apt-cache</code> tool to query the
package lists. You can use it to find packages providing specific
functionality through simple text or regular expression queries and through
queries of dependencies in the package management system. Some common ways to
use <code>apt-cache</code> are:
</p>
<ul>
<li>
<p>
To find packages whose description contain <var>word</var>:
</p>
<pre>
apt-cache search <var>word</var>
</pre>
</li>
</ul>
<ul>
<li>
<p>
To print the detailed information of a package:
</p>
<pre>
apt-cache show <var>package</var>
</pre>
</li>
</ul>
<ul>
<li>
<p>
To print the packages a given package depends on:
</p>
<pre>
apt-cache depends <var>package</var>
</pre>
</li>
</ul>
<ul>
<li>
<p>
To print detailed information of the versions available for a package and the
packages that reverse-depends on it:
</p>
<pre>
apt-cache showpkg <var>package</var>
</pre>
</li>
</ul>
<p>
For more information, install the <code>apt</code> package and read
<code>apt-get(8)</code>, <code>sources.list(5)</code> and install the
<code>apt-doc</code> package and read
<code>/usr/share/doc/apt-doc/guide.html/index.html</code>.
</p>
<hr>
<h3><a name="s-aptitude"></a>7.1.3 aptitude</h3>
<p>
<code>aptitude</code> is a package manager for Debian GNU/Linux systems that
provides a frontend to the apt package management infrastructure.
<code>aptitude</code> is a text-based interface using the curses library, it
can be used to perform management tasks in a fast and easy way.
</p>
<p>
<code>aptitude</code> provides the functionality of <code>dselect</code> and
<code>apt-get</code>, as well as many additional features not found in either
program:
</p>
<ul>
<li>
<p>
<code>aptitude</code> offers access to all versions of a package.
</p>
</li>
</ul>
<ul>
<li>
<p>
<code>aptitude</code> logs all its actions in <code>/var/log/aptitude</code>.
</p>
</li>
</ul>
<ul>
<li>
<p>
<code>aptitude</code> makes it easy to keep track of obsolete software by
listing it under &quot;Obsolete and Locally Created Packages&quot;.
</p>
</li>
</ul>
<ul>
<li>
<p>
<code>aptitude</code> includes a fairly powerful system for searching
particular packages and limiting the package display. Users familiar with
<code>mutt</code> will pick up quickly, as <code>mutt</code> was the
inspiration for the expression syntax.
</p>
</li>
</ul>
<ul>
<li>
<p>
<code>aptitude</code> tracks which packages have been installed due to
dependencies and removes them automatically when the packages that needed them
are removed from the system.
</p>
</li>
</ul>
<ul>
<li>
<p>
<code>aptitude</code> can automatically install <em>Recommended:</em>
packages[<a href="footnotes.en.html#f5" name="fr5">5</a>].
</p>
</li>
</ul>
<ul>
<li>
<p>
<code>aptitude</code> in full screen mode has <code>su</code> functionality
embedded and can be run by a normal user. It will call <code>su</code> (and
ask for the root password, if any) when you really need administrative
privileges
</p>
</li>
</ul>
<p>
You can use <code>aptitude</code> through a visual interface (simply run
<samp>aptitude</samp>) or directly from the command line. The command line
syntax used is very similar to the one used in <code>apt-get</code>. For
example, to install the <var>foo</var> package, you can run <samp>aptitude
install <var>foo</var></samp>.
</p>
<p>
Note that <code>aptitude</code> is the recommended program by Debian to install
a package and/or to upgrade your system.
</p>
<p>
For more informations, read the manual page <code>aptitude(8)</code> and
install the <code>aptitude-doc-en</code> package.
</p>
<hr>
<h3><a name="s-dselect"></a>7.1.4 dselect</h3>
<p>
This program is a menu-driven interface to the Debian package management
system. It is particularly useful for first-time installations. Some users
might feel more comfortable using <code>aptitude</code> which is also
recommended over <code>dselect</code> for large-scale upgrades. For more
information on <code>aptitude</code> please see <a href="#s-aptitude">aptitude,
Section 7.1.3</a>.
</p>
<p>
<code>dselect</code> can:
</p>
<ul>
<li>
<p>
guide the user as he/she chooses among packages to install or remove, ensuring
that no packages are installed that conflict with one another, and that all
packages required to make each package work properly are installed;
</p>
</li>
</ul>
<ul>
<li>
<p>
warn the user about inconsistencies or incompatibilities in their selections;
</p>
</li>
</ul>
<ul>
<li>
<p>
determine the order in which the packages must be installed;
</p>
</li>
</ul>
<ul>
<li>
<p>
automatically perform the installation or removal; and
</p>
</li>
</ul>
<ul>
<li>
<p>
guide the user through whatever configuration process are required for each
package.
</p>
</li>
</ul>
<p>
<code>dselect</code> begins by presenting the user with a menu of 7 items, each
of which is a specific action. The user can select one of the actions by using
the arrow keys to move the highlighter bar, then pressing the
<em>&lt;enter&gt;</em> key to select the highlighted action.
</p>
<p>
What the user sees next depends on the action he selected. If he selects any
option but <samp>Access</samp> or <samp>Select</samp>, then
<code>dselect</code> will simply proceed to execute the specified action: e.g.,
if the user selected the action <samp>Remove</samp>, then dselect would proceed
to remove all of the files selected for removal when the user last chose the
<samp>Select</samp> action.
</p>
<p>
Both the <samp>Access</samp> menu item and the <samp>Select</samp> menu item
lead to additional menus. In both cases, the menus are presented as split
screens; the top screen gives a scrollable list of choices, while the bottom
screen gives a brief explanation (&quot;info&quot;) for each choice.
</p>
<p>
Extensive on-line help is available, use the '?' key to get to a help screen
at any time.
</p>
<p>
The order in which the actions are presented in the first <code>dselect</code>
menu represents the order in which a user would normally choose
<code>dselect</code> to install packages. However, a user can pick any of the
main menu choices as often as needed (including not at all, depending on what
one wants to do).
</p>
<ul>
<li>
<p>
Begin by choosing an <strong>Access Method</strong>. This is the method by
which the user plans on accessing Debian packages; e.g., some users have Debian
packages available on CD-ROM, while others plan to fetch them using anonymous
FTP. The selected &quot;Access Method&quot; is stored after
<code>dselect</code> exits, so if it does not change, then this option need not
be invoked again.
</p>
</li>
</ul>
<ul>
<li>
<p>
Then <strong>Update</strong> the list of available packages. To do this,
<code>dselect</code> reads the file &quot;Packages.gz&quot; which should be
included in the top level of the directory where the Debian packages to be
installed are stored. (But if it is not there, <code>dselect</code> will offer
to make it for you.)
</p>
</li>
</ul>
<ul>
<li>
<p>
<strong>Select</strong> specific packages for installation on his system.
After choosing this menu item, the user is first presented with a full screen
of help (unless the `--expert' command line option was used). Once the user
exits the Help screen, he sees the split-screen menu for choosing packages to
install (or remove).
</p>
<p>
The top part of the screen is a relatively narrow window into the list of
Debian's 18347 packages; the bottom part of the screen contains description of
the package or group of packages which are highlighted above.
</p>
<p>
One can specify which packages should be operated on by highlighting a package
name or the label for a group of packages. After that, you can select
packages:
</p>
<dl>
<dt>to be installed:</dt>
<dd>
<p>
This is accomplished by pressing the `+' key.
</p>
</dd>
</dl>
<dl>
<dt>to be deleted:</dt>
<dd>
<p>
Packages can be deleted two ways:
</p>
<ul>
<li>
<p>
removed: this removes most of the files associated with the package, but
preserves the files listed as configuration files (see <a
href="ch-pkg_basics.en.html#s-conffile">What is a Debian conffile?, Section
6.5</a>) and package configuration information. This is done by pressing the
`-' key.
</p>
</li>
</ul>
<ul>
<li>
<p>
purged: this removes <em>every</em> file that is part of the package. This is
done by pressing the `_' key.
</p>
</li>
</ul>
<p>
Note that it's not possible to remove &quot;All Packages&quot;. If you try
that, your system will instead be reduced to the initial installed base
packages.
</p>
</dd>
</dl>
<dl>
<dt>to be put &quot;on hold&quot;</dt>
<dd>
<p>
This is done by pressing `=', and it effectively tells <code>dselect</code> not
to upgrade a package even if the version currently installed on your system is
not as recent as the version that is available in the Debian repository you are
using (this was specified when you set the <strong>Access Method</strong>, and
acquired when you used <strong>Update</strong>).
</p>
<p>
Just like you can put a package on hold, you can reverse such setting by
pressing `:'. That tells <code>dselect</code> that the package(s) may be
upgraded if a newer version is available. This is the default setting.
</p>
</dd>
</dl>
<p>
You can select a different order in which the packages are presented, by using
the `o' key to cycle between various options for sorting the packages. The
default order is to present packages by Priority; within each priority,
packages are presented in order of the directory (a.k.a. section) of the
archive in which they are stored. Given this sort order, some packages in
section A (say) may be presented first, followed by some packages in section B,
followed by more packages (of lower priority) in section A.
</p>
<p>
You can also expand meanings of the labels at the top of the screen, by using
the `v' (verbose) key. This action pushes much of the text that formerly fit
onto the display off to the right. To see it, press the right arrow; to scroll
back to the left, press the left arrow.
</p>
<p>
If you select a package for installation or removal, e.g.,
<code>foo.deb</code>, and that package depends on (or recommends) another
package, e.g., <code>blurf.deb</code>, then <code>dselect</code> will place the
you in a sub-screen of the main selection screen. There you can choose among
the related packages, accepting the suggested actions (to install or not), or
rejecting them. To do the latter, press Shift-D; to return to the former,
press Shift-U. In any case, you can save your selections and return to the
main selection screen by pressing Shift-Q.
</p>
</li>
</ul>
<ul>
<li>
<p>
Users returning to the main menu can then select the &quot;Install&quot; menu
item to unpack and configure the selected packages. Alternatively, users
wishing to remove files can choose the &quot;Remove&quot; menu item. At any
point, users can choose &quot;Quit&quot; to exit dselect; users' selections are
preserved by <code>dselect</code>.
</p>
</li>
</ul>
<hr>
<h3><a name="s-dpkg-extra"></a>7.1.5 Other package management tools</h3>
<hr>
<h4><a name="s-dpkg-deb"></a>7.1.5.1 dpkg-deb</h4>
<p>
This program manipulates Debian archive(<samp>.deb</samp>) files. Some common
uses are:
</p>
<ul>
<li>
<p>
Find out all the options: <samp>dpkg-deb --help</samp>.
</p>
</li>
</ul>
<ul>
<li>
<p>
Determine what files are contained in a Debian archive file: <samp>dpkg-deb
--contents foo_VVV-RRR.deb</samp>)
</p>
</li>
</ul>
<ul>
<li>
<p>
Extract the files contained in a named Debian archive into a user specified
directory: <samp>dpkg-deb --extract foo_VVV-RRR.deb tmp</samp> extracts each of
the files in <samp>foo_VVV-RRR.deb</samp> into the directory <samp>tmp/</samp>.
This is convenient for examining the contents of a package in a localized
directory, without installing the package into the root file system.
</p>
</li>
</ul>
<p>
Note that any packages that were merely unpacked using <samp>dpkg-deb
--extract</samp> will be incorrectly installed, you should use <samp>dpkg
--install</samp> instead.
</p>
<p>
More information is given in the manual page <code>dpkg-deb(1)</code>.
</p>
<hr>
<h4><a name="s-dpkg-split"></a>7.1.5.2 dpkg-split</h4>
<p>
This program splits large package into smaller files (e.g., for writing onto a
set of floppy disks), and can also be used to merge a set of split files back
into a single file. It can only be used on a Debian system (i.e. a system
containing the <code>dpkg</code> package), since it calls the program
<samp>dpkg-deb</samp> to parse the debian package file into its component
records.
</p>
<p>
For example, to split a big .deb file into N parts,
</p>
<ul>
<li>
<p>
Execute the command <samp>dpkg-split --split foo.deb</samp>. This will produce
N files each of approximately 460 KBytes long in the current directory.
</p>
</li>
</ul>
<ul>
<li>
<p>
Copy those N files to floppy disks.
</p>
</li>
</ul>
<ul>
<li>
<p>
Copy the contents of the floppy disks onto the hard disk of your choice on the
other machine.
</p>
</li>
</ul>
<ul>
<li>
<p>
Join those part-files together using <samp>dpkg-split --join
&quot;foo*&quot;</samp>.
</p>
</li>
</ul>
<hr>
<h2><a name="s-updaterunning"></a>7.2 Debian claims to be able to update a running program; how is this accomplished?</h2>
<p>
The kernel (file system) in Debian GNU/Linux systems supports replacing files
even while they're being used.
</p>
<p>
We also provide a program called <code>start-stop-daemon</code> which is used
to start daemons at boot time or to stop daemons when the kernel runlevel is
changed (e.g., from multi-user to single-user or to halt). The same program is
used by installation scripts when a new package containing a daemon is
installed, to stop running daemons, and restart them as necessary.
</p>
<hr>
<h2><a name="s-whatpackages"></a>7.3 How can I tell what packages are already installed on a Debian system?</h2>
<p>
To learn the status of all the packages installed on a Debian system, execute
the command
</p>
<pre>
dpkg --list
</pre>
<p>
This prints out a one-line summary for each package, giving a 2-letter status
symbol (explained in the header), the package name, the version which is
<em>installed</em>, and a brief description.
</p>
<p>
To learn the status of packages whose names match the string any pattern
beginning with &quot;foo&quot; by executing the command:
</p>
<pre>
dpkg --list 'foo*'
</pre>
<p>
To get a more verbose report for a particular package, execute the command:
</p>
<pre>
dpkg --status packagename
</pre>
<hr>
<h2><a name="s-filesearch"></a>7.4 How can I find out what package produced a particular file?</h2>
<p>
To identify the package that produced the file named <samp>foo</samp> execute
either:
</p>
<ul>
<li>
<p>
<samp>dpkg --search filename</samp>
</p>
<p>
This searches for <samp>filename</samp> in installed packages. (This is
(currently) equivalent to searching all of the files having the file extension
of <samp>.list</samp> in the directory <samp>/var/lib/dpkg/info/</samp>, and
adjusting the output to print the names of all the packages containing it, and
diversions.)
</p>
<p>
A faster alternative to this is the <code>dlocate</code> tool.
</p>
</li>
</ul>
<ul>
<li>
<p>
<samp>zgrep foo Contents-ARCH.gz</samp>
</p>
<p>
This searches for files which contain the substring <samp>foo</samp> in their
full path names. The files <samp>Contents-ARCH.gz</samp> (where ARCH
represents the wanted architecture) reside in the major package directories
(main, non-free, contrib) at a Debian FTP site (i.e. under
<samp>/debian/dists/etch</samp>). A <samp>Contents</samp> file refers only to
the packages in the subdirectory tree where it resides. Therefore, a user
might have to search more than one <samp>Contents</samp> files to find the
package containing the file <samp>foo</samp>.
</p>
<p>
This method has the advantage over <samp>dpkg --search</samp> in that it will
find files in packages that are not currently installed on your system.
</p>
</li>
</ul>
<ul>
<li>
<p>
<samp>apt-file search <var>foo</var></samp>
</p>
<p>
Similar to the above, it searches files which contain the substring or regular
expression <samp>foo</samp> in their full path names. The advantage over the
sample above is that there is no need to retrieve the
<samp>Contents-ARCH.gz</samp> files as it will do this automatically for all
the sources defined in <code>/etc/apt/sources.list</code> when you run (as
root) <samp>apt-file update</samp>.
</p>
</li>
</ul>
<hr>
<h2><a name="s-datapackages"></a>7.5 Why doesn't get `foo-data' removed when I uninstall `foo'? How do I make sure old unused library-packages get purged?</h2>
<p>
Some packages that are split in program (`foo') and data (`foo-data'). This is
true for many games, multimedia applications and dictionaries in Debian and has
been introduced since some users might want to access the raw data without
installing the program or because the program can be run without the data
itself, making it optional.
</p>
<p>
Similar situations occur when dealing with libraries: generally these get
installed since packages containing applications depend on them. When the
application-package is purged, the library-package might stay on the system.
Or: when the application-package no longer depends upon e.g. libdb4.2, but
upon libdb4.3, the libdb4.2 package might stay when the application-package is
upgraded.
</p>
<p>
In these cases, `foo-data' doesn't depend on `foo', so when you remove the
`foo' package it will not get automatically removed by most package management
tools. The same holds true for the library packages. This is necessary to
avoid circular dependencies. If you use <code>aptitude</code> (see <a
href="#s-aptitude">aptitude, Section 7.1.3</a>) as your package management tool
it will, however, track automatically installed packages and remove them when
no packages remain that need them in your system.
</p>
<hr>
<p>
[ <a href="ch-pkg_basics.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ 7 ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-uptodate.en.html">next</a> ]
</p>
<hr>
<p>
The Debian GNU/Linux FAQ
</p>
<address>
version 3.1.5, 17 January 2007<br>
<br>
Authors are listed at <a href="ch-faqinfo.en.html#s-authors">Debian FAQ Authors</a><br>
<br>
</address>
<hr>
</body>
</html>

View File

@ -0,0 +1 @@
ch-pkgtools.en.html

View File

@ -1,170 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>The Debian GNU/Linux FAQ - Redistributing Debian GNU/Linux in a commercial product</title>
</head>
<body>
<p><a name="ch-redistrib"></a></p>
<hr>
<p>
[ <a href="ch-contributing.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ 13 ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-nexttime.en.html">next</a> ]
</p>
<hr>
<h1>
The Debian GNU/Linux FAQ
<br>Chapter 13 - Redistributing Debian GNU/Linux in a commercial product
</h1>
<hr>
<h2><a name="s-sellcds"></a>13.1 Can I make and sell Debian CDs?</h2>
<p>
Go ahead. You do not need permission to distribute anything we have
<em>released</em>, so that you can master your CD as soon as the beta-test
ends. You do not have to pay us anything. Of course, all CD manufacturers
must honor the licenses of the programs in Debian. For example, many of the
programs are licensed under the GPL, which requires you to distribute their
source code.
</p>
<p>
Also, we will publish a list of CD manufacturers who donate money, software,
and time to the Debian project, and we will encourage users to buy from
manufacturers who donate, so it is good advertising to make donations.
</p>
<hr>
<h2><a name="s-packagednonfree"></a>13.2 Can Debian be packaged with non-free software?</h2>
<p>
Yes. While all the main components of Debian are free software, we provide a
non-free directory for programs that are not freely redistributable.
</p>
<p>
CD manufacturers <em>may</em> be able to distribute the programs we have placed
in that directory, depending on the license terms or their private arrangements
with the authors of those software packages. CD manufacturers can also
distribute the non-free software they get from other sources on the same CD.
This is nothing new: free and commercial software are distributed on the same
CD by many manufacturers now. Of course we still encourage software authors to
release the programs they write as free software.
</p>
<hr>
<h2><a name="s-childistro"></a>13.3 I am making a special Linux distribution for a &quot;vertical market&quot;. Can I use Debian GNU/Linux for the guts of a Linux system and add my own applications on top of it?</h2>
<p>
Yes. Debian-derived distributions are being created both in close cooperation
with the Debian project itself and by external parties. One can use the
<code><a href="http://cdd.alioth.debian.org/">Custom Debian
Distributions</a></code> framework to work together with Debian; <code><a
href="http://www.skolelinux.org/">Skolelinux</a></code> is one such project.
</p>
<p>
One person is building a &quot;Linux for Hams&quot; distribution, with
specialized programs for Radio Amateurs. He is starting with Debian as the
&quot;base system&quot;, and adding programs to control the transmitter, track
satellites, etc. All of the programs he adds are packaged with the Debian
packaging system so that his users will be able to upgrade easily when he
releases subsequent CDs.
</p>
<p>
There are several other Debian-derived distributions already on the market,
such as Progeny Debian, Linspire, Knoppix and Ubuntu, that are targeted at a
different kind of audience than the original Debian GNU/Linux is, but use most
of our components in their product.
</p>
<p>
Debian also provides a mechanism to allow developers and system administrators
to install local versions of selected files in such a way that they will not be
overwritten when other packages are upgraded. This is discussed further in the
question on <a href="ch-customizing.en.html#s-divert">How do I override a file
installed by a package, so that a different version can be used instead?,
Section 10.8</a>.
</p>
<hr>
<h2><a name="s-commercialdebs"></a>13.4 Can I put my commercial program in a Debian &quot;package&quot; so that it installs effortlessly on any Debian system?</h2>
<p>
Go right ahead. The package tool is free software; the packages may or may not
be free software, it can install them all.
</p>
<hr>
<p>
[ <a href="ch-contributing.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ 13 ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-nexttime.en.html">next</a> ]
</p>
<hr>
<p>
The Debian GNU/Linux FAQ
</p>
<address>
version 3.1.5, 17 January 2007<br>
<br>
Authors are listed at <a href="ch-faqinfo.en.html#s-authors">Debian FAQ Authors</a><br>
<br>
</address>
<hr>
</body>
</html>

View File

@ -0,0 +1 @@
ch-redistrib.en.html

View File

@ -1,401 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>The Debian GNU/Linux FAQ - Software available in the Debian system</title>
</head>
<body>
<p><a name="ch-software"></a></p>
<hr>
<p>
[ <a href="ch-compat.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ 4 ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-ftparchives.en.html">next</a> ]
</p>
<hr>
<h1>
The Debian GNU/Linux FAQ
<br>Chapter 4 - Software available in the Debian system
</h1>
<hr>
<h2><a name="s-apps"></a>4.1 What types of applications and development software are available for Debian GNU/Linux?</h2>
<p>
Like most Linux distributions, Debian GNU/Linux provides:
</p>
<ul>
<li>
<p>
the major GNU applications for software development, file manipulation, and
text processing, including gcc, g++, make, texinfo, Emacs, the Bash shell and
numerous upgraded Unix utilities,
</p>
</li>
</ul>
<ul>
<li>
<p>
Perl, Python, Tcl/Tk and various related programs, modules and libraries for
each of them,
</p>
</li>
</ul>
<ul>
<li>
<p>
TeX (LaTeX) and Lyx, dvips, Ghostscript,
</p>
</li>
</ul>
<ul>
<li>
<p>
the X Window System, which provides a networked graphical user interface for
Linux, and countless X applications including GNOME and KDE as well as the GIMP
GNU Image Manipulation Program,
</p>
</li>
</ul>
<ul>
<li>
<p>
a full suite of networking applications, including servers for Internet
protocols such as HTTP (WWW), FTP, NNTP (news), SMTP and POP (mail) and name
server; relational databases like PostgreSQL, MySQL; also provided are web
browsers including the various Mozilla producs,
</p>
</li>
</ul>
<ul>
<li>
<p>
a complete set of office applications, including the OpenOffice.org
productivity suite, Gnumeric and other spreadsheets, WYSIWYG editors,
calendars.
</p>
</li>
</ul>
<p>
More than 18138 packages, ranging from news servers and readers to sound
support, FAX programs, database and spreadsheet programs, image processing
programs, communications, net, and mail utilities, Web servers, and even
ham-radio programs are included in the distribution. Another 444 software
suites are available as Debian packages, but are not formally part of Debian
due to license restrictions.
</p>
<hr>
<h2><a name="s-softwareauthors"></a>4.2 Who wrote all that software?</h2>
<p>
For each package the <em>authors</em> of the program(s) are credited in the
file <samp>/usr/share/doc/PACKAGE/copyright</samp>, where PACKAGE is to be
substituted with the package's name.
</p>
<p>
<em>Maintainers</em> who package this software for the Debian GNU/Linux system
are listed in the Debian control file (see <a
href="ch-pkg_basics.en.html#s-controlfile">What is a Debian control file?,
Section 6.4</a>) that comes with each package. The Debian changelog, in
<samp>/usr/share/doc/PACKAGE/changelog.Debian.gz</samp>, mentions the people
who've worked on the Debian packaging too.
</p>
<hr>
<h2><a name="s-pkglist"></a>4.3 How can I get a current list of programs that have been packaged for Debian?</h2>
<p>
A complete list is available from any of the <code><a
href="http://www.debian.org/distrib/ftplist">Debian mirrors</a></code>, in the
file <samp>indices/Maintainers</samp>. That file includes the package names
and the names and e-mails of their respective maintainers.
</p>
<p>
The <code><a href="http://packages.debian.org/">WWW interface to the Debian
packages</a></code> conveniently summarizes the packages in each of about
twenty &quot;sections&quot; of the Debian archive.
</p>
<hr>
<h2><a name="s-missing"></a>4.4 What is missing from Debian GNU/Linux?</h2>
<p>
A list of packages which are still needed to be packaged for Debian exists, the
<code><a href="http://www.debian.org/devel/wnpp/">Work-Needing and Prospective
Packages list</a></code>.
</p>
<p>
For more details about adding the missing things, see <a
href="ch-contributing.en.html#s-contrib">How can I become a Debian software
developer?, Section 12.1</a>.
</p>
<hr>
<h2><a name="s-no-devs"></a>4.5 Why do I get &quot;ld: cannot find -lfoo&quot; messages when compiling programs? Why aren't there any libfoo.so files in Debian library packages?</h2>
<p>
Debian Policy requires that such symbolic links (to libfoo.so.x.y.z or similar)
are placed in separate, development packages. Those packages are usually named
libfoo-dev or libfooX-dev (presuming the library package is named libfooX, and
X is a whole number).
</p>
<hr>
<h2><a name="s-java"></a>4.6 (How) Does Debian support Java?</h2>
<p>
Several <em>free</em> implementations of Java technology are available as
Debian packages, providing both Java Development Kits as well as Runtime
Environments. You can write, debug and run Java programs using Debian.
</p>
<p>
Running a Java applet requires a web browser with the capability to recognize
and execute them. Several web browsers available in Debian, such as Mozilla or
Konqueror, support Java plug-ins that enable running Java applets within them.
</p>
<p>
Please refer to the <code><a
href="http://www.debian.org/doc/manuals/debian-java-faq/">Debian Java
FAQ</a></code> for more information.
</p>
<hr>
<h2><a name="s-isitdebian"></a>4.7 How can I check that I am using a Debian system, and what version is it?</h2>
<p>
In order to make sure that your system has been installed from the real Debian
base disks check for the existence of <samp>/etc/debian_version</samp> file,
which contains a single one-line entry giving the version number of the
release, as defined by the package <samp>base-files</samp>.
</p>
<p>
The existence of the program <samp>dpkg</samp> shows that you should be able to
install Debian packages on your system, but as the program has been ported to
many other operating systems and architectures, this is no longer a reliable
method of determining is a system Debian GNU/Linux.
</p>
<p>
Users should be aware, however, that the Debian system consists of many parts,
each of which can be updated (almost) independently. Each Debian
&quot;release&quot; contains well defined and unchanging contents. Updates are
separately available. For a one-line description of the installation status of
package <samp>foo</samp>, use the command <samp>dpkg --list foo</samp>. To
view versions of all installed packages, run:
</p>
<pre>
dpkg -l
</pre>
<p>
For a more verbose description, use:
</p>
<pre>
dpkg --status foo
</pre>
<hr>
<h2><a name="s-nonenglish"></a>4.8 How does Debian support non-English languages?</h2>
<ul>
<li>
<p>
Debian GNU/Linux is distributed with keymaps for nearly two dozen keyboards,
and with utilities (in the <samp>kbd</samp> package) to install, view, and
modify the tables.
</p>
<p>
The installation prompts the user to specify the keyboard he will use.
</p>
</li>
</ul>
<ul>
<li>
<p>
Vast majority of the software we packaged supports entering non-US-ASCII
characters used in other Latin languages (e.g. ISO-8859-1 or ISO-8859-2), and
a number of programs support multi-byte languages such as Japanese or Chinese.
</p>
</li>
</ul>
<ul>
<li>
<p>
Currently, support for German-, Spanish-, Finnish-, French-, Hungarian-,
Italian-, Japanese-, Korean- and Polish-language manual pages is provided
through the <samp>manpages-LANG</samp> packages (where LANG is the two-letter
ISO country code). To access an NLS manual page, the user must set the shell
LC_MESSAGES variable to the appropriate string.
</p>
<p>
For example, in the case of the Italian-language manual pages, LC_MESSAGES
needs to be set to 'italian'. The <code>man</code> program will then search
for Italian manual pages under <samp>/usr/share/man/it/</samp>.
</p>
</li>
</ul>
<hr>
<h2><a name="s-usexports"></a>4.9 What about the US export regulation limitations?</h2>
<p>
US laws placed restrictions on the export of defense articles, which includes
some types of cryptographic software. PGP and ssh, among others, fall into
this category. For the <em>sarge</em> release packages in this archive were
moved to the main archive (or to <em>non-free</em>, if applicable) due to the
US relaxing its regulations on the export of cryptography.
</p>
<p>
To prevent anyone from taking unnecessary legal risks, certain Debian GNU/Linux
packages were only available from a non-US site <code><a
href="ftp://non-US.debian.org/debian-non-US/">ftp://non-US.debian.org/debian-non-US/</a></code>,
with numerous mirror sites all of which are also outside of the US, see
<code><a
href="ftp://non-US.debian.org/debian-non-US/README.non-US">ftp://non-US.debian.org/debian-non-US/README.non-US</a></code>
for a full list. These sites still exist (for the benefit of users of
<em>woody</em>) but its contents are no longer supported and are considered
obsolete. Please remove any mentions to non-US from your sources in your
<code>/etc/apt/sources.list</code> configuration file.
</p>
<hr>
<h2><a name="s-pine"></a>4.10 Where is pine?</h2>
<p>
Due to its restrictive license, it's in the non-free area. Moreover, since
license does not even allow modified binaries to be distributed, you have to
compile it yourself from the source and the Debian patches.
</p>
<p>
The source package name is <code>pine</code>. You can use the
<code>pine-tracker</code> package to be notified about when you need to
upgrade.
</p>
<p>
Note that there are many replacements for both pine and pico, such as
<code>mutt</code> and <code>nano</code>, that are located in the main section.
</p>
<hr>
<h2><a name="s-qmail"></a>4.11 Where is qmail/ezmlm/djbdns?</h2>
<p>
Dan J. Bernstein distributes <code><a href="http://cr.yp.to/software.html">all
software he has written</a></code> with a restrictive license, consequently,
it's in the non-free area. Since the license he uses does not allow modified
binaries to be distributed, you have to compile it yourself from the source and
the Debian patches to obtain a binary package you can install in your Debian
GNU/Linux system.
</p>
<p>
The source package names are <code>qmail-src</code>, <code>ezmlm-src</code> and
<code>djbdns-installer</code>, respectively.
</p>
<p>
For <code>qmail</code> you need to install <code>qmail-src</code> first and
then run <code>build-qmail</code> to build the Debian package. You also need
to do install the <code>ucspi-tcp-src</code> package to get ucspi-tcp, which
<code>qmail</code> depends on.
</p>
<p>
Dan J. Bernstein maintains a <code><a
href="http://cr.yp.to/distributors.html">FAQ from distributors</a></code> page
if you are interested in reading his reasons (one of which is <code><a
href="http://cr.yp.to/compatibility.html">Cross-platform
compatibility</a></code>)
</p>
<hr>
<p>
[ <a href="ch-compat.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ 4 ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-ftparchives.en.html">next</a> ]
</p>
<hr>
<p>
The Debian GNU/Linux FAQ
</p>
<address>
version 3.1.5, 17 January 2007<br>
<br>
Authors are listed at <a href="ch-faqinfo.en.html#s-authors">Debian FAQ Authors</a><br>
<br>
</address>
<hr>
</body>
</html>

View File

@ -0,0 +1 @@
ch-software.en.html

View File

@ -1,525 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>The Debian GNU/Linux FAQ - Getting support for Debian GNU/Linux</title>
</head>
<body>
<p><a name="ch-support"></a></p>
<hr>
<p>
[ <a href="ch-customizing.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ 11 ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-contributing.en.html">next</a> ]
</p>
<hr>
<h1>
The Debian GNU/Linux FAQ
<br>Chapter 11 - Getting support for Debian GNU/Linux
</h1>
<hr>
<h2><a name="s-debiandocs"></a>11.1 What other documentation exists on and for a Debian system?</h2>
<ul>
<li>
<p>
Installation instructions for the current release: see <code><a
href="http://www.debian.org/releases/stable/installmanual">http://www.debian.org/releases/stable/installmanual</a></code>.
</p>
</li>
</ul>
<ul>
<li>
<p>
The Debian GNU/Linux reference covers many aspects of system administration
through shell-command examples. Basic tutorials, tips, and other information
are provided for many different topics ranging from system administration to
programming.
</p>
<p>
Get it from the <code>debian-reference</code> package, or at <code><a
href="http://www.debian.org/doc/user-manuals#quick-reference">http://www.debian.org/doc/user-manuals#quick-reference</a></code>.
</p>
</li>
</ul>
<ul>
<li>
<p>
Policy manual documents the policy requirements for the distribution, i.e. the
structure and contents of the Debian archive, several design issues of the
operating system etc. It also includes the technical requirements that each
package must satisfy to be included in the distribution, and documents the
basic technical aspects of Debian binary and source packages.
</p>
<p>
Get it from the <code>debian-policy</code> package, or at <code><a
href="http://www.debian.org/doc/devel-manuals#policy">http://www.debian.org/doc/devel-manuals#policy</a></code>.
</p>
</li>
</ul>
<ul>
<li>
<p>
Documentation developed by the Debian Documentation Project. It is available
at <code><a
href="http://www.debian.org/doc/">http://www.debian.org/doc/</a></code> and
includes user guides, administration guides and security guides for the Debian
GNU/Linux operating system.
</p>
</li>
</ul>
<ul>
<li>
<p>
Documentation on installed Debian packages: Most packages have files that are
unpacked into <samp>/usr/share/doc/PACKAGE</samp>.
</p>
</li>
</ul>
<ul>
<li>
<p>
Documentation on the Linux project: The Debian package <code>doc-linux</code>
installs all of the most recent versions of the HOWTOs and mini-HOWTOs from the
<code><a href="http://www.tldp.org/">Linux Documentation Project</a></code>.
</p>
</li>
</ul>
<ul>
<li>
<p>
Unix-style `man' pages: Most commands have manual pages written in the style of
the original Unix 'man' files. They are referenced by the section of the 'man'
directory where they reside: e.g., foo(3) refers to a manual page which resides
in /usr/share/man/man3/, and it can be called by executing the command:
<samp>man 3 foo</samp>, or just <samp>man foo</samp> if section 3 is the first
one containing a page on <samp>foo</samp>.
</p>
<p>
One can learn which directory of <samp>/usr/share/man/</samp> contains a
certain manual page by executing <samp>man -w foo</samp>.
</p>
<p>
New Debian users should note that the 'man' pages of many general system
commands are not available until they install these packages:
</p>
<ul>
<li>
<p>
<samp>man-db</samp>, which contains the <samp>man</samp> program itself, and
other programs for manipulating the manual pages.
</p>
</li>
</ul>
<ul>
<li>
<p>
<samp>manpages</samp>, which contains the system manual pages. (see <a
href="ch-software.en.html#s-nonenglish">How does Debian support non-English
languages?, Section 4.8</a>).
</p>
</li>
</ul>
</li>
</ul>
<ul>
<li>
<p>
GNU-style `info' pages: User documentation for many commands, particularly GNU
tools, is available not in `man' pages, but in `info' files which can be read
by the GNU tool <samp>info</samp>, by running <samp>M-x info</samp> within GNU
Emacs, or with some other Info page viewer.
</p>
<p>
Its main advantage over the original `man' pages are that it is a hypertext
system. It does <em>not</em> require the WWW, however; <samp>info</samp> can
be run from a plain text console. It was designed by Richard Stallman and
preceded the WWW.
</p>
</li>
</ul>
<p>
Note that you may access a lot of documentation on your system by using a WWW
browser, through `dwww', `dhelp' or `doccentral' commands, found in respective
packages.
</p>
<hr>
<h2><a name="s-onlineresources"></a>11.2 Are there any on-line resources for discussing Debian?</h2>
<p>
Yes. In fact, the main method of support Debian provides to our users is by
the way of e-mail.
</p>
<hr>
<h3><a name="s11.2.1"></a>11.2.1 Mailing lists</h3>
<p>
There are a lot of <code><a
href="http://www.debian.org/MailingLists/">Debian-related mailing
lists</a></code>.
</p>
<p>
On a system with the <code>doc-debian</code> package installed there is a
complete list of mailing lists in
<code>/usr/share/doc/debian/mailing-lists.txt</code>.
</p>
<p>
Debian mailing lists are named following the pattern
debian-<var>list-subject</var>. Examples are debian-announce, debian-user,
debian-news. To subscribe to any list debian-<var>list-subject</var>, send
mail to debian-<var>list-subject</var>-request@lists.debian.org with the word
&quot;subscribe&quot; in the Subject: header. Be sure to remember to add
<em>-request</em> to the e-mail address when using this method to subscribe or
unsubscribe. Otherwise your e-mail will go to the list itself, which could be
embarrassing or annoying, depending on your point of view.
</p>
<p>
If you have a forms-capable World Wide Web browser, you can subscribe to
mailing lists using the <code><a
href="http://www.debian.org/MailingLists/subscribe">WWW form</a></code>. You
can also un-subscribe using a <code><a
href="http://www.debian.org/MailingLists/unsubscribe">WWW form</a></code>.
</p>
<p>
The list manager's e-mail address is <code><a
href="mailto:listmaster@lists.debian.org">listmaster@lists.debian.org</a></code>,
in case you have any trouble.
</p>
<p>
The mailing lists are public forums. All e-mails sent to the lists are also
copied to the public archive, for anybody (even non-subscribers) to browse or
search. Please make sure you never send any confidential or unlicensed
material to the lists. This includes things like e-mail addresses. Of
particular note is the fact that spammers have been known to abuse e-mail
addresses posted to our mailing lists. See the <code><a
href="http://www.debian.org/MailingLists/index.en.html#disclaimer">Mailing
Lists Privacy policy</a></code> for more information.
</p>
<p>
Archives of the Debian mailing lists are available via WWW at <code><a
href="http://lists.debian.org/">http://lists.debian.org/</a></code>.
</p>
<hr>
<h4><a name="s-mailinglistconduct"></a>11.2.1.1 What is the code of conduct for the mailing lists?</h4>
<p>
When using the Debian mailing lists, please follow these rules:
</p>
<ul>
<li>
<p>
Do not send spam. See the <code><a
href="http://www.debian.org/MailingLists/#ads">Debian mailing list advertising
policy</a></code>.
</p>
</li>
</ul>
<ul>
<li>
<p>
Do not flame; it is not polite. The people developing Debian are all
volunteers, donating their time, energy and money in an attempt to bring the
Debian project together.
</p>
</li>
</ul>
<ul>
<li>
<p>
Do not use foul language; besides, some people receive the lists via packet
radio, where swearing is illegal.
</p>
</li>
</ul>
<ul>
<li>
<p>
Make sure that you are using the proper list. <em>Never</em> post your
(un)subscription requests to the mailing list itself[<a
href="footnotes.en.html#f6" name="fr6">6</a>]
</p>
</li>
</ul>
<ul>
<li>
<p>
See section <a href="#s-bugreport">How do I report a bug in Debian?, Section
11.5</a> for notes on reporting bugs.
</p>
</li>
</ul>
<hr>
<h3><a name="s11.2.2"></a>11.2.2 Maintainers</h3>
<p>
Users can address questions to individual package maintainers using e-mail. To
reach a maintainer of a package called xyz, send e-mail to
<em>xyz@packages.debian.org</em>.
</p>
<hr>
<h3><a name="s11.2.3"></a>11.2.3 Usenet newsgroups</h3>
<p>
Users should post non-Debian-specific questions to one of the Linux USENET
groups, which are named comp.os.linux.* or linux.*. There are several lists of
Linux Usenet newsgroups and other related resources on the WWW, e.g. on the
<code><a href="http://www.linux.org/docs/usenet.html">Linux Online</a></code>
and <code><a
href="http://www.linuxjournal.com/helpdesk.php">LinuxJournal</a></code> sites.
</p>
<hr>
<h2><a name="s-searchtools"></a>11.3 Is there a quick way to search for information on Debian GNU/Linux?</h2>
<p>
There is a variety of search engines that serve documentation related to
Debian:
</p>
<ul>
<li>
<p>
<code><a href="http://search.debian.org/">Debian WWW search site</a></code>.
</p>
</li>
</ul>
<ul>
<li>
<p>
<code><a href="http://groups.google.com/">Google Groups</a></code>: a search
engine for newsgroups.
</p>
<p>
For example, to find out what experiences people have had with finding drivers
for Promise controllers under Debian, try searching on the phrase <samp>Promise
Linux driver</samp>. This will show you all the postings that contain these
strings, i.e. those where people discussed these topics. If you add
<samp>Debian</samp> to those search strings, you'll also get the postings
specifically related to Debian.
</p>
</li>
</ul>
<ul>
<li>
<p>
Any of the common web spidering engines, such as <code><a
href="http://www.altavista.com/">AltaVista</a></code> or <code><a
href="http://www.google.com/">Google</a></code>, as long as you use the right
search terms.
</p>
<p>
For example, searching on the string &quot;cgi-perl&quot; gives a more detailed
explanation of this package than the brief description field in its control
file.
</p>
</li>
</ul>
<hr>
<h2><a name="s-buglogs"></a>11.4 Are there logs of known bugs?</h2>
<p>
Reports on unsolved (and closed) issues are publicly available: Debian
promissed to do so by stating &quot;We will not hide problems&quot; in the
<code><a href="http://www.debian.org/social_contract">Debian Social
Contract</a></code>.
</p>
<p>
The Debian GNU/Linux distribution has a bug tracking system (BTS) which files
details of bugs reported by users and developers. Each bug is given a number,
and is kept on file until it is marked as having been dealt with.
</p>
<p>
Copies of this information are available at <code><a
href="http://www.debian.org/Bugs/">http://www.debian.org/Bugs/</a></code>.
</p>
<p>
A mail server provides access to the bug tracking system database via e-mail.
In order to get the instructions, send an e-mail to request@bugs.debian.org
with &quot;help&quot; in the body.
</p>
<hr>
<h2><a name="s-bugreport"></a>11.5 How do I report a bug in Debian?</h2>
<p>
If you have found a bug in Debian, please read the instructions for reporting a
bug in Debian. These instructions can be obtained in one of several ways:
</p>
<ul>
<li>
<p>
By anonymous FTP. Debian mirror sites contain the instructions in the file
<samp>doc/bug-reporting.txt</samp>.
</p>
</li>
</ul>
<ul>
<li>
<p>
From the WWW. A copy of the instructions is shown at <code><a
href="http://www.debian.org/Bugs/Reporting">http://www.debian.org/Bugs/Reporting</a></code>.
</p>
</li>
</ul>
<ul>
<li>
<p>
On any Debian system with the <code>doc-debian</code> package installed. The
instructions are in the file
<code>/usr/share/doc/debian/bug-reporting.txt</code>.
</p>
</li>
</ul>
<p>
You can use the package <code>reportbug</code> that will guide you through the
reporting process and mail the message to the proper address, with some extra
details about your system added automatically. It will also show you a list of
bugs already reported to the package you are reporting against in case your bug
has been reported previously, so that you can additional information to the
existing bug report.
</p>
<p>
If you want to mail the report with an e-mail program, send a message to
<code><a
href="mailto:submit@bugs.debian.org">submit@bugs.debian.org</a></code>. The
message's first line must be similar to
</p>
<pre>
Package: package-name
</pre>
<p>
(replace <var>package-name</var> with the name of the package). The next line
should relate the package version number in a similar way:
</p>
<pre>
Version: version-number
</pre>
<p>
The version number for any package installed on your system can be obtained
using the command line
</p>
<pre>
dpkg -s <var>package-name</var>
</pre>
<p>
This section is referred to as the pseudo-header. The rest of the message
should contain the description of the bug (please make it moderately detailed),
the Debian release you are using, and versions of other relevant packages. The
Debian release number will be displayed by the command
</p>
<pre>
cat /etc/debian_version
</pre>
<p>
Expect to get an automatic acknowledgement of your bug report. It will also be
automatically given a bug tracking number, entered into the bug log and
forwarded to the debian-bugs-dist mailing list.
</p>
<hr>
<p>
[ <a href="ch-customizing.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ <a href="ch-uptodate.en.html">8</a> ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ 11 ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-contributing.en.html">next</a> ]
</p>
<hr>
<p>
The Debian GNU/Linux FAQ
</p>
<address>
version 3.1.5, 17 January 2007<br>
<br>
Authors are listed at <a href="ch-faqinfo.en.html#s-authors">Debian FAQ Authors</a><br>
<br>
</address>
<hr>
</body>
</html>

View File

@ -0,0 +1 @@
ch-support.en.html

View File

@ -1,479 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>The Debian GNU/Linux FAQ - Keeping your Debian system up-to-date</title>
</head>
<body>
<p><a name="ch-uptodate"></a></p>
<hr>
<p>
[ <a href="ch-pkgtools.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ 8 ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-kernel.en.html">next</a> ]
</p>
<hr>
<h1>
The Debian GNU/Linux FAQ
<br>Chapter 8 - Keeping your Debian system up-to-date
</h1>
<hr>
<p>
A Debian goal is to provide a consistent upgrade path and a secure upgrade
process. We always do our best to make upgrading to new releases a smooth
procedure. In case there's some important note to add to the upgrade process,
the packages will alert the user, and often provide a solution to a possible
problem.
</p>
<p>
You should also read the Release Notes document that describes the details of
specific upgrades. It is shipped on all Debian CDs and available on the WWW at
<code><a
href="http://www.debian.org/releases/stable/releasenotes">http://www.debian.org/releases/stable/releasenotes</a></code>.
</p>
<hr>
<h2><a name="s-libc5to6upgrade"></a>8.1 How can I upgrade my Debian 1.3.1 (or earlier) distribution, based on libc5, to 2.0 (or later), based on libc6?</h2>
<p>
There are several ways to upgrade:
</p>
<ul>
<li>
<p>
Using a simple shell script called <samp>autoup.sh</samp> which upgrades the
most important packages. After <samp>autoup.sh</samp> has done his job, you
may use dselect to install the remaining packages <em>en masse</em>. This is
probably the recommended method, but not the only one.
</p>
<p>
Currently, the latest release of <samp>autoup.sh</samp> may be found on the
following locations:
</p>
<ul>
<li>
<p>
<code><a
href="http://www.debian.org/releases/2.0/autoup/">http://www.debian.org/releases/2.0/autoup/</a></code>
</p>
</li>
</ul>
<ul>
<li>
<p>
<code><a
href="http://www.taz.net.au/autoup/">http://www.taz.net.au/autoup/</a></code>
</p>
</li>
</ul>
<ul>
<li>
<p>
<code><a
href="http://debian.vicnet.net.au/autoup/">http://debian.vicnet.net.au/autoup/</a></code>
</p>
</li>
</ul>
</li>
</ul>
<ul>
<li>
<p>
Following closely the <code><a
href="http://debian.vicnet.net.au/autoup/HOWTO/libc5-libc6-Mini-HOWTO.html">Debian
libc5 to libc6 Mini-HOWTO</a></code> and upgrade the most important packages by
hand. <samp>autoup.sh</samp> is based on this Mini-HOWTO, so this method
should work more or less like using <samp>autoup.sh</samp>.
</p>
</li>
</ul>
<ul>
<li>
<p>
Using a libc5-based <samp>apt</samp>. APT stands for Advanced Package Tool,
and it might replace dselect some day. Currently, it works just as a
command-line interface, or as a dselect access method. You will find a libc5
version in the <samp>dists/slink/main/upgrade-older-i386</samp> directory at
the Debian archives.
</p>
</li>
</ul>
<ul>
<li>
<p>
Using just dselect, without upgrading any package by hand first. It is highly
recommended that you do NOT use this method if you can avoid it, because
dselect alone currently does not install packages in the optimal order. APT
works much better and it is safer.
</p>
</li>
</ul>
<hr>
<h2><a name="s-howtocurrent"></a>8.2 How can I keep my Debian system current?</h2>
<p>
One could simply execute an anonymous ftp call to a Debian archive, then peruse
the directories until one finds the desired file, and then fetch it, and
finally install it using <samp>dpkg</samp>. Note that <samp>dpkg</samp> will
install upgrade files in place, even on a running system. Sometimes, a revised
package will require the installation of a newly revised version of another
package, in which case the installation will fail until/unless the other
package is installed.
</p>
<p>
Many people find this approach much too time-consuming, since Debian evolves so
quickly -- typically, a dozen or more new packages are uploaded every week.
This number is larger just before a new major release. To deal with this
avalanche, many people prefer to use a more automated method. Several
different packages are available for this purpose:
</p>
<hr>
<h3><a name="s-aptitude-upgrade"></a>8.2.1 aptitude</h3>
<p>
APT is an advanced interface to the Debian packaging system. It features
complete installation ordering, multiple source capability and several other
unique features, see the User's Guide in
<samp>/usr/share/doc/apt-doc/guide.html/index.html</samp> (you will have to
install the <samp>apt-doc</samp> package).
</p>
<p>
<code>aptitude</code> is the recommended package manager for Debian GNU/Linux
systems. It is a text-based interface to APT using the curses library, and can
be used to perform management tasks in a fast and easy way.
</p>
<p>
Before you can use <code>aptitude</code>, you'll have to edit the
<samp>/etc/apt/sources.list</samp> file to set it up. If you wish to upgrade
to the latest stable version of Debian, you'll probably want to use a source
like this one:
</p>
<pre>
http://http.us.debian.org/debian stable main contrib non-free
</pre>
<p>
You can replace http.us.debian.org with the name of a faster Debian mirror near
you. See the mirror list at <code><a
href="http://www.debian.org/misc/README.mirrors">http://www.debian.org/misc/README.mirrors</a></code>
for more information.
</p>
<p>
More details on this can be found in the <code>sources.list(8)</code> manual
page.
</p>
<p>
To update your system, run
</p>
<pre>
aptitude update
</pre>
<p>
followed by
</p>
<pre>
aptitude dist-upgrade
</pre>
<p>
Answer any questions that might come up, and your system will be upgraded. See
also <a href="ch-pkgtools.en.html#s-aptitude">aptitude, Section 7.1.3</a>.
</p>
<hr>
<h3><a name="s-apt"></a>8.2.2 apt-get, dselect and apt-cdrom</h3>
<p>
<code>apt-get</code> is an APT-based command-line tool for handling packages,
and the APT dselect method is an interface to APT through <code>dselect</code>.
Both of these provide a simple, safe way to install and upgrade packages.
</p>
<p>
To use <code>apt-get</code>, install the <code>apt</code> package, and edit the
<samp>/etc/apt/sources.list</samp> file to set it up, just as for <a
href="#s-aptitude-upgrade">aptitude, Section 8.2.1</a>.
</p>
<p>
Then run
</p>
<pre>
apt-get update
</pre>
<p>
followed by
</p>
<pre>
apt-get dist-upgrade
</pre>
<p>
Answer any questions that might come up, and your system will be upgraded. See
also the <code>apt-get(8)</code> manual page, as well as <a
href="ch-pkgtools.en.html#s-apt-get">APT, Section 7.1.2</a>.
</p>
<p>
To use APT with <code>dselect</code>, choose the APT access method in dselect's
method selection screen (option 0) and then specify the sources that should be
used. The configuration file is <code>/etc/apt/sources.list</code>. See also
<a href="ch-pkgtools.en.html#s-dselect">dselect, Section 7.1.4</a>.
</p>
<p>
If you want to use CDs to install packages, you can use <code>apt-cdrom</code>.
For details, please see the Release Notes, section &quot;Setting up for an
upgrade from a local mirror&quot;.
</p>
<p>
Please note that when you get and install the packages, you'll still have them
kept in your /var directory hierarchy. To keep your partition from
overflowing, remember to delete extra files using <samp>apt-get clean</samp>
and <samp>apt-get autoclean</samp>, or to move them someplace else (hint: use
<code>apt-move</code>).
</p>
<hr>
<h3><a name="s-dpkg-ftp"></a>8.2.3 dpkg-ftp</h3>
<p>
This is an older access method for <code>dselect</code>. It can be invoked
from within <code>dselect</code>, thereby allowing a user the ability to
download files and install them directly in one step. To do this, select the
<samp>ftp</samp> access method in <code>dselect</code> (option 0) and specify
the remote host name and directory. <code>dpkg-ftp</code> will then
automatically download the files that are selected (either in this session of
<code>dselect</code> or earlier ones).
</p>
<p>
Note that, unlike the <code>mirror</code> program, <code>dpkg-ftp</code> does
not grab everything at a mirror site. Rather, it downloads only those files
which you have selected (when first starting up <code>dpkg-ftp</code>), and
which need to be updated.
</p>
<p>
<code>dpkg-ftp</code> is somewhat obsolete. You should use the APT access
method with ftp:// URLs in <code>sources.list</code> instead.
</p>
<hr>
<h3><a name="s-mirror"></a>8.2.4 mirror</h3>
<p>
This Perl script, and its (optional) manager program called
<code>mirror-master</code>, can be used to fetch user-specified parts of a
directory tree from a specified host <em>via</em> anonymous FTP.
</p>
<p>
<code>mirror</code> is particularly useful for downloading large volumes of
software. After the first time files have been downloaded from a site, a file
called <samp>.mirrorinfo</samp> is stored on the local host. Changes to the
remote file system are tracked automatically by <code>mirror</code>, which
compares this file to a similar file on the remote system and downloads only
changed files.
</p>
<p>
The <code>mirror</code> program is generally useful for updating local copies
of remote directory trees. The files fetched need not be Debian files. (Since
<code>mirror</code> is a Perl script, it can also run on non-Unix systems.)
Though the <code>mirror</code> program provides mechanisms for excluding files
names of which match user-specified strings, this program is most useful when
the objective is to download whole directory trees, rather than selected
packages.
</p>
<hr>
<h3><a name="s-dpkg-mountable"></a>8.2.5 dpkg-mountable</h3>
<p>
dpkg-mountable adds an access method called `mountable' to dselect's list,
which allows you to install from any file system specified in /etc/fstab. For
example, the archive could be a normal hard disk partition or an NFS server,
which it will automatically mount and umount for you if necessary.
</p>
<p>
It also has some extra features not found in the standard dselect methods, such
as provision for a local file tree (either parallel to the main distribution or
totally separate), and only getting packages which are required, rather than
the time-consuming recursive directory scan, as well as logging of all dpkg
actions in the install method.
</p>
<hr>
<h2><a name="s-upgradesingle"></a>8.3 Must I go into single user mode in order to upgrade a package?</h2>
<p>
No. Packages can be upgraded in place, even in running systems. Debian has a
<samp>start-stop-daemon</samp> program that is invoked to stop, then restart
running process if necessary during a package upgrade.
</p>
<hr>
<h2><a name="s-savedebs"></a>8.4 Do I have to keep all those .deb archive files on my disk?</h2>
<p>
No. If you have downloaded the files to your disk (which is not absolutely
necessary, see above for the description of dpkg-ftp), then after you have
installed the packages, you can remove them from your system.
</p>
<hr>
<h2><a name="s-keepingalog"></a>8.5 How can I keep a log of the packages I added to the system? I'd like to know when which package upgrades and removals have occured!</h2>
<p>
Passing the <samp>--log</samp>-option to <code>dpkg</code> makes
<code>dpkg</code> log status change updates and actions. It logs both the
<code>dpkg</code>-invokation (e.g.
</p>
<pre>
2005-12-30 18:10:33 install hello 1.3.18 2.1.1-4
</pre>
<p>
) and the results (e.g.
</p>
<pre>
2005-12-30 18:10:35 status installed hello 2.1.1-4
</pre>
<p>
) If you'd like to log all your <code>dpkg</code> invokations (even those done
using frontends like <code>aptitude</code>), you could add
</p>
<pre>
log /var/log/dpkg.log
</pre>
<p>
to your <code>/etc/dpkg/dpkg.cfg</code>. Be sure the created logfile gets
rotated periodically. If you're using <code>logrotate</code>, this can be
achieved by creating a file <code>/etc/logrotate.d/dpkg</code> with contents
</p>
<pre>
/var/log/dpkg {
missingok
notifempty
}
</pre>
<p>
More details on <code>dpkg</code> logging can be found in the
<code>dpkg(1)</code> manual page.
</p>
<p>
<code>aptitude</code> logs the package installations, removals, and upgrades
that it intends to perform to <code>/var/log/aptitude</code>. Note that the
<em>results</em> of those actions are not recorded in this file!
</p>
<p>
Another way to record your actions is to run your package management session
within the <code>script(1)</code> program.
</p>
<hr>
<p>
[ <a href="ch-pkgtools.en.html">previous</a> ]
[ <a href="index.en.html#contents">Contents</a> ]
[ <a href="ch-basic_defs.en.html">1</a> ]
[ <a href="ch-getting.en.html">2</a> ]
[ <a href="ch-compat.en.html">3</a> ]
[ <a href="ch-software.en.html">4</a> ]
[ <a href="ch-ftparchives.en.html">5</a> ]
[ <a href="ch-pkg_basics.en.html">6</a> ]
[ <a href="ch-pkgtools.en.html">7</a> ]
[ 8 ]
[ <a href="ch-kernel.en.html">9</a> ]
[ <a href="ch-customizing.en.html">10</a> ]
[ <a href="ch-support.en.html">11</a> ]
[ <a href="ch-contributing.en.html">12</a> ]
[ <a href="ch-redistrib.en.html">13</a> ]
[ <a href="ch-nexttime.en.html">14</a> ]
[ <a href="ch-faqinfo.en.html">15</a> ]
[ <a href="ch-kernel.en.html">next</a> ]
</p>
<hr>
<p>
The Debian GNU/Linux FAQ
</p>
<address>
version 3.1.5, 17 January 2007<br>
<br>
Authors are listed at <a href="ch-faqinfo.en.html#s-authors">Debian FAQ Authors</a><br>
<br>
</address>
<hr>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More