2016-11-01 20:25:22 +00:00
|
|
|
|
# nixdarwin-rebuild
|
|
|
|
|
|
|
|
|
|
Nix modules for darwin.
|
|
|
|
|
|
|
|
|
|
```
|
2016-12-11 12:06:47 +00:00
|
|
|
|
$ darwin-rebuild switch
|
|
|
|
|
building the system configuration...
|
2016-11-01 20:25:22 +00:00
|
|
|
|
these derivations will be built:
|
2016-12-11 12:06:47 +00:00
|
|
|
|
/nix/store/vfad6xgjzr56jcs051cg6vzch4dby92y-etc-zprofile.drv
|
|
|
|
|
/nix/store/cbmkscxsz0k02ynaph5xaxm1aql0p3vq-etc.drv
|
|
|
|
|
/nix/store/r5fpn177jhc16f8iyzk12gcw4pivzpbw-nixdarwin-system-16.09.drv
|
|
|
|
|
building path(s) ‘/nix/store/wlq89shja597ip7mrmjv7yzk2lwyh8n0-etc-zprofile’
|
|
|
|
|
building path(s) ‘/nix/store/m8kcm1pa5j570h3indp71a439wsh9lzq-etc’
|
|
|
|
|
building path(s) ‘/nix/store/l735ffcdvcvy60i8pqf6v00vx7lnm6mz-nixdarwin-system-16.09’
|
|
|
|
|
writing defaults...
|
|
|
|
|
setting up /etc...
|
|
|
|
|
warning: /etc/zprofile is a file, skipping...
|
|
|
|
|
warning: /etc/zshrc is a file, skipping...
|
|
|
|
|
setting up launchd services...
|
|
|
|
|
$
|
2016-11-01 20:25:22 +00:00
|
|
|
|
```
|
2016-12-11 12:33:01 +00:00
|
|
|
|
|
|
|
|
|
## Install
|
|
|
|
|
|
2016-12-11 14:52:10 +00:00
|
|
|
|
This will link the system profile to `/run/current-system`, you have to create `/run` or symlink it to `private/var/run`.
|
|
|
|
|
If you use a symlink you'll probably also want to add `services.activate-system.enable = true;` to your configuration.
|
|
|
|
|
|
2016-12-11 12:51:41 +00:00
|
|
|
|
> NOTE: the system activation scripts don't overrwrite existing etc files, etc files like `/etc/bashrc` won't be used by default.
|
2016-12-11 12:49:00 +00:00
|
|
|
|
Either modify the existing file to source/import the one from `/etc/static` or remove the file.
|
|
|
|
|
|
2016-12-11 12:33:01 +00:00
|
|
|
|
```bash
|
|
|
|
|
git clone git@github.com:LnL7/nix-darwin.git
|
2016-12-11 14:17:04 +00:00
|
|
|
|
nix-build -I darwin=$PWD/nix-darwin -I darwin-config=$PWD/config.nix '<darwin>' -A system
|
|
|
|
|
source result/etc/bashrc
|
|
|
|
|
|
|
|
|
|
result/sw/bin/darwin-rebuild build
|
|
|
|
|
result/sw/bin/darwin-rebuild switch
|
2016-12-11 12:33:01 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Example configuration
|
|
|
|
|
|
2016-12-11 12:58:57 +00:00
|
|
|
|
Checkout [modules/examples](https://github.com/LnL7/nix-darwin/tree/master/modules/examples) for some example configurations.
|
|
|
|
|
|
2016-12-11 12:33:01 +00:00
|
|
|
|
```nix
|
|
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
# List packages installed in system profile. To search by name, run:
|
|
|
|
|
# $ nix-env -qaP | grep wget
|
|
|
|
|
environment.systemPackages =
|
2016-12-11 15:33:42 +00:00
|
|
|
|
[ pkgs.nix-repl
|
2016-12-11 12:33:01 +00:00
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
environment.etc."bashrc".text = ''
|
|
|
|
|
# /etc/bashrc: DO NOT EDIT -- this file has been generated automatically.
|
|
|
|
|
# This file is read for interactive shells.
|
|
|
|
|
|
|
|
|
|
# Only execute this file once per shell.
|
|
|
|
|
if [ -n "$__ETC_BASHRC_SOURCED" -o -n "$NOSYSBASHRC" ]; then return; fi
|
|
|
|
|
__ETC_BASHRC_SOURCED=1
|
|
|
|
|
|
2016-12-11 12:49:00 +00:00
|
|
|
|
export NIX_PATH=nixpkgs=$HOME/.nix-defexpr/nixpkgs:darwin=$HOME/.nix-defexpr/darwin:darwin-config=$HOME/.nixpkgs/darwin-config.nix:$NIX_PATH
|
|
|
|
|
|
2016-12-11 12:33:01 +00:00
|
|
|
|
export PATH=${config.environment.systemPath}''${PATH:+:$PATH}
|
|
|
|
|
|
|
|
|
|
${config.system.build.setEnvironment}
|
|
|
|
|
${config.system.build.setAliases}
|
|
|
|
|
'';
|
2016-12-11 15:33:42 +00:00
|
|
|
|
|
|
|
|
|
services.activate-system.enable = true;
|
|
|
|
|
|
2016-12-11 12:33:01 +00:00
|
|
|
|
}
|
|
|
|
|
```
|