rewrite nixu scripts to use nix-push. Install the whole NixU environment in

two main steps:

1 - first build everything (nix-push)
2 - install everything on a seperate disk/machine (nix-pull)

svn path=/nixu/trunk/; revision=3291
This commit is contained in:
Armijn Hemel 2005-07-05 13:52:49 +00:00
parent c29ea5dd01
commit 1e607c9221
5 changed files with 18 additions and 43 deletions

View file

@ -34,6 +34,7 @@ for i in $boot $halt $login $env; do
-e "s^@gnugrep\@^$gnugrep^g" \
-e "s^@gzip\@^$gzip^g" \
-e "s^@gcc\@^$gcc^g" \
-e "s^@mingetty\@^$mingetty^g" \
-e "s^@out\@^$out^g" \
< $i > $dst
chmod +x $dst

View file

@ -1,7 +1,7 @@
{ stdenv, bash, coreutils, findutils, utillinux, sysvinit, e2fsprogs
{ stdenv, kernel, bash, coreutils, findutils, utillinux, sysvinit, e2fsprogs
, nettools, nix, subversion, gcc, wget, which, vim, less, screen, openssh
, binutils, strace, shadowutils, iputils, gnumake, curl, gnused, gnugrep
, gnutar, gzip}:
, gnutar, gzip, mingetty}:
derivation {
name = "boot";
@ -11,8 +11,8 @@ derivation {
halt = ./halt.sh;
login = ./login.sh;
env = ./env.sh;
inherit stdenv bash coreutils findutils utillinux sysvinit
inherit stdenv kernel bash coreutils findutils utillinux sysvinit
e2fsprogs nettools nix subversion gcc wget which vim less screen
openssh binutils strace shadowutils iputils gnumake curl gnused
gnutar gnugrep gzip;
gnutar gnugrep gzip mingetty;
}

View file

@ -1 +1 @@
export PATH=@nix@/bin:@bash@/bin:@coreutils@/bin:@findutils@/bin:@utillinux@/bin:@utillinux@/sbin:@sysvinit@/bin:@sysvinit@/sbin:@e2fsprogs@/bin:@e2fsprogs@/sbin:@nettools@/bin:@nettools@/sbin:@gcc@/bin:@subversion@/bin:@which@/bin:@wget@/bin:@vim@/bin:@less@/bin:@screen@/bin:@openssh@/bin:@binutils@/bin:@strace@/bin:@shadowutils@/bin:@shadowutils@/sbin:@iputils@/bin:@gnumake@/bin:@curl@/bin:@gnused@/bin:@gnutar@/bin:@gnugrep@/bin:@gzip@/bin
export PATH=@nix@/bin:@bash@/bin:@coreutils@/bin:@findutils@/bin:@utillinux@/bin:@utillinux@/sbin:@sysvinit@/bin:@sysvinit@/sbin:@e2fsprogs@/bin:@e2fsprogs@/sbin:@nettools@/bin:@nettools@/sbin:@gcc@/bin:@subversion@/bin:@which@/bin:@wget@/bin:@vim@/bin:@less@/bin:@screen@/bin:@openssh@/bin:@binutils@/bin:@strace@/bin:@shadowutils@/bin:@shadowutils@/sbin:@iputils@/bin:@gnumake@/bin:@curl@/bin:@gnused@/bin:@gnutar@/bin:@gnugrep@/bin:@gzip@/bin:@mingetty@/sbin

View file

@ -1,42 +1,16 @@
#! /bin/sh -e
image=/tmp/disk.img
size=$(expr 2048 \* 1024 \* 1024)
storePaths=/tmp/mystorepaths
successors=/tmp/mysuccessors
if ! test -f $image; then
echo creating empty disk of $size bytes in $image...
# Note: this is a sparse file.
dd if=/dev/zero of=$image bs=1 seek=$(expr $size - 1) count=1
echo creating disk image in $image...
/sbin/mke2fs -F $image
fi
# What to copy?
archivesDir=/tmp/arch
manifest=${archivesDir}/MANIFEST
NIX_CMD_PATH=/nix/bin
storeExpr=$(echo '(import ./pkgs.nix).everything' | $NIX_CMD_PATH/nix-instantiate -)
$NIX_CMD_PATH/nix-store -rB $storeExpr
$NIX_CMD_PATH/nix-store -qn --requisites $storeExpr > $storePaths
(while read storepath; do
$NIX_CMD_PATH/nix-store -q --predecessors $storepath | (while read predecessor; do
echo $predecessor $storepath
done)
done) < $storePaths > $successors
storeExpr=$(echo '(import ./pkgs.nix).everything' | $NIX_CMD_PATH/nix-instantiate -v -v -)
$NIX_CMD_PATH/nix-push --copy $archivesDir $manifest $(nix-store -r $storeExpr)
$NIX_CMD_PATH/nix-push --copy $archivesDir $manifest $(nix-store -r $(echo '(import ./pkgs.nix).kernel' | $NIX_CMD_PATH/nix-instantiate -))
# Location of sysvinit?
sysvinitPath=$($NIX_CMD_PATH/nix-store -qn $(echo '(import ./pkgs.nix).sysvinit' | $NIX_CMD_PATH/nix-instantiate -))
#sysvinitPath=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).sysvinit' | $NIX_CMD_PATH/nix-instantiate -))
# Location of Nix boot scripts?
bootPath=$($NIX_CMD_PATH/nix-store -qn $(echo '(import ./pkgs.nix).boot' | $NIX_CMD_PATH/nix-instantiate -))
# Fill the disk with the minimal Nix store.
if ! test -d /tmp/mnt; then mkdir /tmp/mnt; fi
linux ubd0=$image root=/dev/root rootflags=/ rootfstype=hostfs \
init="$(pwd)/fill-disk.sh $sysvinitPath $bootPath"
#bootPath=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).boot' | $NIX_CMD_PATH/nix-instantiate -))

View file

@ -1,13 +1,13 @@
rec {
inherit (import /home/armijn/pkgs/system/i686-linux.nix)
stdenv bash coreutils findutils utillinux sysvinit e2fsprogs
inherit (import /nixpkgs/trunk/pkgs/system/i686-linux.nix)
stdenv kernel bash coreutils findutils utillinux sysvinit e2fsprogs
nettools nix subversion gcc wget which vim less screen openssh binutils
strace shadowutils iputils gnumake curl gnused gnutar gnugrep gzip;
strace shadowutils iputils gnumake curl gnused gnutar gnugrep gzip mingetty;
boot = (import ./boot) {inherit stdenv bash coreutils findutils
boot = (import ./boot) {inherit stdenv kernel bash coreutils findutils
utillinux sysvinit e2fsprogs nettools nix subversion gcc wget which vim
less screen openssh binutils strace shadowutils iputils gnumake curl
gnused gnutar gnugrep gzip;};
gnused gnutar gnugrep gzip mingetty;};
everything = [boot sysvinit];
}