First public Arch:e5 repository published

The first public Arch:e5 repository is available now! If you have no idea what E5 is, you may want to take a look at the post Announcing Arch:E5! first.

About one month passed and I just made the skel (or “skeleton”) repository available. It can be used to pacstrap a fairly minimal Arch:e5 installation. I’ll describe how to do that in a minute, but first a few words about what this actually is.

Arch:e5 structure

Arch uses a rather simple repository layout: The most important packages are in core and everything else is in extra. Packages not officially maintained by the project can probably be found in community. Disregarding a few special things this is already it.

E5 booted using runit/ignite

While a “base” install of Arch is quite small compared to most well-known distros, it still pulls in quite a few things you might not want to have. Right, you can easily uninstall packages later. Or you could do without the “pacstrap” script and make use of pacman’s group feature. But using pacstrap is simply a very convenient way of installing Arch.

Now the idea is to allow for an installation that can be customized even more than Arch’s right from the beginning and thus split core into two repositories: skel and default. The former consists of everything absolutely necessary to get an Arch-based system up and running while the later holds the default packages that make the system actually useful.

The skeleton repository

Why would one do that split? Well, imagine you have a very specific idea of what your system should be. Perhaps you are an vi user. For what reason should nano even be installed at all? Or you don’t intend on using systemd. Why put it on your system in the first place?

Just pacstrapping the skeleton of your system together with what you actually want is a pretty obvious and comfortable solution.

E5 brings back one of the strong points of the classical Arch: rc.conf!

Right now skel contains all the packages which are in the “mini” group – 59 packages to be precise. I intend to put some more work into it to break it down to 50 packages at most (or rather: as few as possible). Some packages like the bootloader (syslinux) or the init-system (runit) are likely to be moved to the repository default in the future when E5 begins to offer alternative choices. Decreasing the number of packages could also be done by replacing some of them with others that have fewer dependencies.

How to install?

Warning: This ist just a preview. The system you’ll end up with is not of much use on its own at this time.

It doesn’t come with dhcp.
It doesn’t have a package manager.
It doesn’t even provide an editor.

If you want anything more than the bare skeleton, pacstrap it on top of E5 (from the Arch repositories) after the initial pacstrap is complete!

Preparing to pacstrap an Arch:e5 skeleton installation

As you can see, installing Arch:e5 is rather simple. Just boot from an Arch Linux live medium and make some changes to the /etc/pacman.conf file.

1. Comment out any Arch Linux repositories.

2. Then add the following:

[e5-skel]
SigLevel = Never
Server = http://www.elderlinux.org/repos/e5-skel

3. Once you saved the changes, you can check if pacman can read the package database using pacman -Sy. This is optional, of course, since the pacstrap script updates the db anyways.

4. Proceed with a more or less typical Arch installation:

Create and format your partitions, mount them and finally pacstrap the group mini instead of base. Then use genfstab and reboot. That’s it. If you follow the default partition layout, there’s no need to chroot to the environment since syslinux is installed automatically.

What’s next?

I’ll definitely continue working on E5. My next goal is currently to prepare and publish the default repository.

Content of skel

Since there’s not much in it, here’s the complete list of packages which skel currently holds (all but 3 packages were actually built with clang 3.4, btw.):

  1. acl-5:2.2.52-1-i686.pkg.tar.xz
  2. ath9k-htc-firmware-5:1.3.2-3-any.pkg.tar.xz
  3. attr-5:2.4.47-1-i686.pkg.tar.xz
  4. bash-5:4.2.045-5-i686.pkg.tar.xz
  5. bzip2-5:1.0.6-5-i686.pkg.tar.xz
  6. coreutils-5:8.22-2-i686.pkg.tar.xz
  7. cracklib-5:2.9.0-2-i686.pkg.tar.xz
  8. dash-5:0.5.7-4-i686.pkg.tar.xz
  9. db-5:5.3.21-2-i686.pkg.tar.xz
  10. e2fsprogs-5:1.42.8-2-i686.pkg.tar.xz
  11. eglibc-5:2.18r24829-1-i686.pkg.tar.xz
  12. eudev-5:1.4-1-i686.pkg.tar.xz
  13. expat-5:2.1.0-3-i686.pkg.tar.xz
  14. filesystem-5:2013.05-2-i686.pkg.tar.xz
  15. findutils-5:4.4.2-5-i686.pkg.tar.xz
  16. gawk-5:4.1.0-2-i686.pkg.tar.xz
  17. gcc-libs-5:4.7.3-4-i686.pkg.tar.xz
  18. glib2-5:2.39.3-1-i686.pkg.tar.xz
  19. gmp-5:5.1.3-1-i686.pkg.tar.xz
  20. grep-5:2.16-1-i686.pkg.tar.xz
  21. gzip-5:1.6-1-i686.pkg.tar.xz
  22. hwids-5:20130915.1-1-any.pkg.tar.xz
  23. iana-etc-5:2.30-4-any.pkg.tar.xz
  24. ignite-5:20131028-1-i686.pkg.tar.xz
  25. iproute2-5:3.12.0-1-i686.pkg.tar.xz
  26. iptables-5:1.4.21-1-i686.pkg.tar.xz
  27. kbd-5:2.0.1-1-i686.pkg.tar.xz
  28. keyutils-5:1.5.8-1-i686.pkg.tar.xz
  29. kmod-5:15-1-i686.pkg.tar.xz
  30. krb5-5:1.12.1-1-i686.pkg.tar.xz
  31. less-5:458-1-i686.pkg.tar.xz
  32. libarchive-5:3.1.2-3-i686.pkg.tar.xz
  33. libcap-5:2.24-1-i686.pkg.tar.xz
  34. libffi-5:3.0.13-4-i686.pkg.tar.xz
  35. libldap-5:2.4.38-1-i686.pkg.tar.xz
  36. libsasl-5:2.1.26-6-i686.pkg.tar.xz
  37. libtirpc-5:0.2.4-1-i686.pkg.tar.xz
  38. linux-libre-api-headers-5:3.10.27-1-i686.pkg.tar.xz
  39. linux-libre-firmware-5:3.10-1-any.pkg.tar.xz
  40. linux-libre-lts-5:3.10.27-1-i686.pkg.tar.xz
  41. lzo2-5:2.06-3-i686.pkg.tar.xz
  42. mkinitcpio-5:0.15.0-1-any.pkg.tar.xz
  43. mkinitcpio-busybox-5:1.21.1-2-i686.pkg.tar.xz
  44. mpfr-5:3.1.2.p5-1-i686.pkg.tar.xz
  45. ncurses-5:5.9-5-i686.pkg.tar.xz
  46. nettle-5:2.7.1-1-i686.pkg.tar.xz
  47. openssl-5:1.0.1.f-1-i686.pkg.tar.xz
  48. pam-5:1.1.8-2-i686.pkg.tar.xz
  49. pambase-5:20130928-1-any.pkg.tar.xz
  50. pcre-5:8.34-2-i686.pkg.tar.xz
  51. procps-ng-5:3.3.9-2-i686.pkg.tar.xz
  52. readline-5:6.2.004-1-i686.pkg.tar.xz
  53. runit-5:2.1.1-3-i686.pkg.tar.xz
  54. shadow-5:4.1.5.1-6-i686.pkg.tar.xz
  55. syslinux-5:6.01-4-i686.pkg.tar.xz
  56. tzdata-5:2013i-1-any.pkg.tar.xz
  57. util-linux-5:2.23.2-1-i686.pkg.tar.xz
  58. xz-5:5.0.5-2-i686.pkg.tar.xz
  59. zlib-5:1.2.8-3-i686.pkg.tar.xz