Gergely Risko ()
FP Afternoon in Zurich - August 29th, 2013
Nix: a lazy and pure language to describe software build instructions (like debian/rules) and the corresponding package manager to execute these instructions (like dpkg, but more like Gentoo with binary cache).
https://github.com/NixOS/nix/
Nixpkgs: a package collection with ~9000 packages.
https://github.com/NixOS/nixpkgs/
Nixpkgs is continuously built using hydra.
http://hydra.nixos.org/
NixOS: Linux distribution based on Nix.
NixOS grub menu, note the different configurations! You can boot the system at a specific version by just choosing from GRUB.
Reliable, atomic upgrades and rollbacks,
reproducible systems,
buildable from source, but have a binary cache,
consistency (e.g. security upgrades work even if you link statically against a library),
package management even for non-root users.
sudo mkdir /opt/ceh /nix
sudo chown $USER. /opt/ceh /nix
chmod 0700 /opt/ceh /nix
cd /opt/ceh
git clone git://github.com/errge/ceh.git .
ln -s $HOME home
/opt/ceh/scripts/ceh-init.sh
errge@curry:/tmp/deploy $ ldd ./PrefetchFS ; du -sh
linux-gate.so.1 (0xf778a000)
libfuse.so.2 => /tmp/deploy/./lib/libfuse.so.2 (0xf7754000)
librt.so.1 => /tmp/deploy/./lib/librt.so.1 (0xf774c000)
libutil.so.1 => /tmp/deploy/./lib/libutil.so.1 (0xf7747000)
libdl.so.2 => /tmp/deploy/./lib/libdl.so.2 (0xf7743000)
libgmp.so.10 => /tmp/deploy/./lib/libgmp.so.10 (0xf76c8000)
libm.so.6 => /tmp/deploy/./lib/libm.so.6 (0xf768a000)
libpthread.so.0 => /tmp/deploy/./lib/libpthread.so.0 (0xf7671000)
libc.so.6 => /tmp/deploy/./lib/libc.so.6 (0xf74da000)
/lib/ld-linux.so.2 (0xf778b000)
4.3M .
https://travis-ci.org/errge/thyme
.travis.yml, .travis.ceh:
language: c
install: bash ./.travis.ceh
script: bash ./.travis.main
env:
- CEH_GHC64=
- CEH_GHC64=1
#!/bin/bash -e
sudo mkdir /opt/ceh /nix
sudo chown $USER. /opt/ceh /nix
chmod 0700 /opt/ceh /nix
cd /opt/ceh
git clone git://github.com/errge/ceh.git .
ln -s $HOME home
/opt/ceh/scripts/ceh-init.sh
https://travis-ci.org/errge/thyme
.travis.main:
#!/bin/bash -e
. /opt/ceh/scripts/ceh-profile.sh
cabal update
cabal install --only-dependencies
cabal configure --user --enable-tests
cabal build
cabal test
So, how to use all this, where to go from here?
Questions, remarks?
I'm also available during the Zurihac to answer your questions or help with installing/using/abusing Ceh.