First generate the image script:
$ nix build .#nixosConfigurations.myhost.config.system.build.diskoImagesScript
Next we build the image:
$ sudo ./result --build-memory 2048
First generate the image script:
$ nix build .#nixosConfigurations.myhost.config.system.build.diskoImagesScript
Next we build the image:
$ sudo ./result --build-memory 2048
Tvix is a new implementation of the Nix language and package manager.
In this benchmark we test it's performance when instantiating the hello package from nix.
Note that at the time tvix does not have its own store implementation yet and it has to
execute nix-store
whenever it needs to copy files to the store.
#!/usr/bin/env python3 | |
import http.client | |
import json | |
import os | |
import time | |
import urllib.parse | |
import urllib.request | |
from pathlib import Path | |
from typing import Any |
## USAGE | |
# $ nix-build kexec-installer.nix | |
# can be deployed remote like this | |
# $ rsync -aL -e ssh result/ root@host: | |
# $ ssh root@host ./kexec-installer | |
## Customize it like this | |
# # custom-installer.nix | |
# import ./kexec-installer.nix { | |
# extraConfig = {pkgs, ... } { | |
# user.extraUsers.root.openssh.authorizedKeys.keys = [ "<your-key>" ]; |
#!/usr/bin/env nix-shell | |
#!nix-shell -i bash -p sqlite -p bash | |
SQL=$(cat <<EOF | |
select * from DerivationOutputs do | |
inner join ValidPaths vp on vp.id = do.drv | |
inner join Refs r1 on r1.referrer = vp.id | |
inner join ValidPaths vp2 on r1.reference = vp2.id | |
where do.path GLOB '/nix/store/$1-*' | |
EOF |
{ pkgs ? import <nixpkgs> {} }: | |
let | |
fixWrapper = pkgs.runCommand "fix-wrapper" {} '' | |
mkdir -p $out/bin | |
for i in ${pkgs.gcc.cc}/bin/*-gnu-gcc*; do | |
ln -s ${pkgs.gcc}/bin/gcc $out/bin/$(basename "$i") | |
done | |
for i in ${pkgs.gcc.cc}/bin/*-gnu-{g++,c++}*; do | |
ln -s ${pkgs.gcc}/bin/g++ $out/bin/$(basename "$i") |
# Batch size: 1000 | |
## Query all packages | |
elapsed: 24.68 s, heap size: 2610.18 MiB | |
## Evaluating packages in batches | |
elapsed: 15.04 s, heap size: 1217.18 MiB | |
elapsed: 18.31 s, heap size: 1377.18 MiB | |
elapsed: 9.13 s, heap size: 673.18 MiB | |
elapsed: 11.24 s, heap size: 769.18 MiB | |
elapsed: 16.69 s, heap size: 1169.18 MiB | |
elapsed: 3.50 s, heap size: 384.31 MiB |
#!/bin/sh | |
if ! command -v nix >/dev/null; then | |
echo "Installing Nix..." | |
if command -v curl; then | |
curl -L https://nixos.org/nix/install > /tmp/install | |
elif command -v wget; then | |
wget -O /tmp/install https://nixos.org/nix/install | |
else | |
echo "Please install curl or wget" |
#!/usr/bin/env nix-shell | |
#!nix-shell -i bash -p bash -p qemu_kvm -p iproute2 | |
set -x -eu -o pipefail | |
VM_IMAGE="" | |
CPUS="${CPUS:-$(nproc)}" | |
MEMORY="${MEMORY:-4096}" | |
SSH_PORT="${SSH_PORT:-2222}" | |
IMAGE_SIZE="${IMAGE_SIZE:-10G}" |
# Nix is a powerful package manager for Linux and other Unix systems that makes | |
# package management reliable and reproducible: https://nixos.org/nix/. | |
# This file is intended to be used with `nix-shell` | |
# (https://nixos.org/nix/manual/#sec-nix-shell) to setup a fully-functional | |
# LEDE build environment by installing all required dependencies. | |
with import <nixpkgs> {}; | |
stdenv.mkDerivation { | |
name = "openwrt-dev-env"; | |
buildInputs = [ | |
# This list is more explicit then it have to be: it also includes utils |