Installation may fail because of missing dependencies. A consistent state of the archive (i.e. all required and important packages are compatible, and all their recursive dependencies are built and available) is needed for success - a condition less frequently fulfilled than in the main Debian archive. Diagnosis of installability ---------------------------- Let's download the package lists from unstable and unreleased, select the packages as debootstrap would and then look for missing dependencies and package conflicts or breakage (there is no need of a machine of the target architecture). See the attached python script "installable.py" for an illustration. It depends on python-argparse and apt-utils. From the output of ./installable.py --arch alpha --ascending-versions we conclude that an installation would succeed, but ./installable.py --arch alpha --ascending-versions --include locales would not - a new version of libc6 is still building. And m68k is currently installable, with or without locales. (By the way, this might help to prioritize packages to build in order to ensure installability) How dependencies sometimes break -------------------------------- Buildd of some architectures are indeed not so fast as mainstream. But the culprit is often an unfinished transition to a new version of a source package, and the desynchronization of corresponding binary packages - as is the case with the above "locales" version mismatch on alpha. A new version 2.17-97 of source package "eglibc" appeared and new binary packages were built on mainstream buildd. "locales" and other "Architecture: all" binary packages were directly mirrored from the main Debian archive into debian-ports. As a result, the obsolete version 2.13-38 was kicked out of the debian-ports archive. By contrast, libc6 (Architecture: alpha) needed a build on an alpha buildd - which happened to fail. In the meantime, there are no compatible versions of libc6 and locales in the alpha archive on debian-ports. Every 6 hours, mini-dak mirrors "Architecture: all" packages from unstable and experimental in the main Debian archive. Some "Architecture: all" packages disappeared from unstable and experimental in the main Debian archive in the last 6 hours : they are deleted from the debian-ports archive. (lines 67, 75 and 83 of archive-mirror-arch-all in mini-dak) Custom mini-repositories for installation ----------------------------------------- One may download the missing packages from http://snapshot.debian.org/archive/debian-ports. All needed packages may be put in a directory, and index files generated by apt-ftparchive. Debootstrapping is then as simple as debootstrap --no-check-gpg unstable TARGET file://path_of_the_directory There is no need for special provisions because of debian-ports (but don't forget to correct etc/apt/sources.list after installation). The attached script "dpo_ad_hoc.sh" intends to streamline this process (feel free to propose a better name if you like !). It depends on apt-utils and bzip2. However, the choice of packages and versions on snapshot.debian.org is not automatized : one has to check that they suit one's needs and were not superseded because of some unwanted misfeature or vulnerability. So we get a mini-repository in order to produce a chroot on alpha (including the non-free qlogic firmware from the main Debian archive) : ./installable.py --arch alpha --ascending-versions --package-filenames pkglist ./dpo_ad_hoc.sh -w some_scratch -a alpha -l pkglist -r "firmware-qlogic/0.40" -d my_repository -g -s 20130405T202311Z "locales/2.13-38" (back on an alpha workstation : ) debootstrap --no-check-gpg --include=locales,firmware-qlogic,debian-ports-archive-keyring --components=main,non-free unstable my_chroot file://$(readlink -f ./my_repository) cat > my_chroot/etc/apt/sources.list <<EOF deb http://ftp.debian-ports.org/debian unstable main deb http://ftp.debian-ports.org/debian unreleased main EOF (debian-ports-archive-keyring and bzip2 are installed both sides) As usual, thanks in advance for comments, improvements and corrections - or a better solution... Regards, J.-H. Chatenet
Attachment:
installable.py.gz
Description: Binary data
Attachment:
dpo_ad_hoc.sh.gz
Description: Binary data