Nix Eelco Dolstra. 28 October 2017

Similar documents
Nix as HPC package management system

From Zero to Application Delivery

administration access control A security feature that determines who can edit the configuration settings for a given Transmitter.

RADview-PC/TDM. Network Management System for TDM Applications Megaplex RAD Data Communications Publication No.

SharkFest 17 Europe. Generating Wireshark Dissectors from XDR Files. Why you don't want to write them by hand. Richard Sharpe.

PulseCounter Neutron & Gamma Spectrometry Software Manual

5620 SAM SERVICE AWARE MANAGER AAA GNE Driver Version Guide

5620 SERVICE AWARE MANAGER. NTP Driver Version Guide

What s New in Visual FoxPro 7.0

White paper Max number of unique video stream configurations

Wetek OpenELEC TVHeadend Freesat Bouquet and XMLTV data

CA Outbound Dialer Module. Operation Manual v1.1

User Instruction Manual IQSDA30/IQSDA32. Intelligent Reclocking High Performance HD-SDI/SD-SDI Distribution Amplifiers. snellgroup.

Introduction to QScan

7/17/2013. ENDNOTE Software The Basics. Training Objectives

GLog Users Manual.

Health Sciences Library System University of Pittsburgh. Instructors Andrea Ketchum, MS, MLIS / Patricia Weiss, MLIS /

StreamServe Persuasion SP5 StreamServe Connect for SAP - Delivery Manager

Introduction to IBM SPSS Statistics (v24)

Sky HD+ / Sky Q Module

RedRat Control User Guide

Cisco RF Gateway 10 QAM Replication Configuration Guide

Using the Forum Application for Remote Control Application Note. Forum is a free scripting tool for remote control of Rohde & Schwarz instruments.

NI-DAQmx Key Concepts

HV-122-DCA DVB-T 2-Way Diversity Receiver Box Quick Installation Guide

Remote Application Update for the RCM33xx

EndNote Web. Quick Reference Card THOMSON SCIENTIFIC

Configuration Guide Comtech EF Data Satellite Modems

THE MOST INNOVATIVE ADVANCED, COST EFFECTIVE RADIO & AUDIO BROADCASTING PLATFORM

User Manual for ICP DAS WISE Monitoring IoT Kit -Microsoft Azure IoT Starter Kit-

Acquisition Control System Design Requirement Document

Hide n Seek. An Adaptive Peer-to-Peer Botnet. Adrian Șendroiu Vladimir Diaconescu

Arista 40G Cabling and Transceivers: Q&A

DIGISPOT II. User Manual LOGGER. Software

Cisco StadiumVision Defining Channels and Channel Guides in SV Director

Analyzing Modulated Signals with the V93000 Signal Analyzer Tool. Joe Kelly, Verigy, Inc.

ECE 4220 Real Time Embedded Systems Final Project Spectrum Analyzer

MULTIPLE TPS REHOST FROM GENRAD 2235 TO S9100

AZBox ME. Blindscan. Revealing the Secrets of the. Super Box. Part 1:

TRAINING DOCUMENT LOS ANGELES UNIFIED SCHOOL DISTRICT (LAUSD) BELL SCHEDULING SYSTEM

1.0, 1.1, 1.2, 1.3 (USALS)

SAP Edge Services, cloud edition Edge Services Overview Guide Version 1802

Tvheadend - Bug #2470 CPU usage slowly increasing to 100% while watching

Tvheadend - Bug #3134 configuration save/load - improve throughput - save space (was: big starting time)

Oculomatic Pro. Setup and User Guide. 4/19/ rev

5620 SAM SERVICE AWARE MANAGER MPTGS Driver Version Guide

AUTOPILOT DLM Satellite Downlink Manager USER GUIDE

AmbDec User Manual. Fons Adriaensen

Show Designer 3. Software Revision 1.15

REVISIONS LTR DESCRIPTION DATE APPROVED - Initial Release 11/5/07 MDB A ECR /9/08 MDB

CI-218 / CI-303 / CI430

Written Tutorial and copyright 2016 by Open for free distribution as long as author acknowledgment remains.

MULTI CHANNEL VOICE LOGGER MODEL: DVR MK I

Serie TV Manager for Enigma2 Systems

TELEVISION. Star Plans. Interactive Guide and DVR (Digital Video Recorder) Manual ARVIG arvig.net

WebMedia Plugin Manager Operational Reference

Ensemble. Multi-Axis Motion Controller Software. Up to 10 axes of coordinated motion

DIGITAL MEDIA BRIDGE SCREEN BUILDER USER S GUIDE

IQORX30 / IQORX31. Single Mode Fiber Optic Receivers for 3G/HD/SD-SDI Signals

IxStream Headend. Quick Guide - Begin working with the IxStream headend. IX-Streamer, rev 1.1

MULTI CHANNEL VOICE LOGGER MODEL PCVL - 4/8/10/16/32/64. ORIGINAL EQUIPMENT MANUFACTURER OF VOICE LOGGING SYSTEMS Radio and CTI Expert Organisation

DOWNLOAD OR READ : CHEATSHEET NOTES FOR BEGINNING SONGWRITERS PDF EBOOK EPUB MOBI

USER MANUAL USER MANUAL. VIO 4K Ref. V701 PROGRAMMER S GU.

EECS 140 Laboratory Exercise 7 PLD Programming

Distributed by Pycom Ltd. Copyright 2016 by Pycom Ltd. All rights reserved. No part of this document may be reproduced, distributed, or transmitted

Getting started with EndNote X7

C Module Description

application software

SPL Analog Code Plug-ins Manual Classic & Dual-Band De-Essers

Avigilon View Software Release Notes

FlexWATCH Smart Multi Viewer Player

Technical Note. Manufacturer: Elan g! DVR 7.0 OVERVIEW SUPPORTED FEATURES

TeamWork Kits Installation Guide

The RedRat-X. Integration Guide

USING ENDNOTE X4: ADVANCED SKILLS

application software

SetEditManhattan for Manhattan DSR 2500/5500. Contents:

TBS6909 User Guide. In order to use this item correctly, please read this user manual carefully at the beginning.

Cue tone encoding and decoding with the HSI21 module. 3Gb/s, HD, SD embedded domain Dolby E to PCM decoder with audio shuffler

Linux-based Mobile Phone Middleware. Application Programming Interface. Circuit-Switched Communication Service. Document: CELF_MPP_CS_D_FR4

D-Lab & D-Lab Control Plan. Measure. Analyse. User Manual

ivw-ud322 / ivw-ud322f

Device Management Requirements

GTT LTE RRU ADD- ON USER GUIDE

J.M. Stewart Corporation 2201 Cantu Ct., Suite 218 Sarasota, FL Stewartsigns.com

Using deltas to speed up SquashFS ebuild repository updates

Channel calculation with a Calculation Project

LPT-3000 Remote User s Guide (LPT-3000R) LP Technologies

Hardware User s Manual

Render Panel. Display Render - Render Output

Python Quick-Look Utilities for Ground WFC3 Images

TIATracker v1.0. Manual. Andre Kylearan Wichmann, 2016

How to use Rohde & Schwarz Instruments in MATLAB Application Note

SecureFTP Procedure for Alma Implementing Customers

Call Recorder Pico Manual V2.0 VC2000

Globalmediapro SMR-650

Zebra2 (PandA) Functionality and Development. Isa Uzun and Tom Cobb

Booya16 SDR Datasheet

AMIQ-K2 Program for Transferring Various-Format I/Q Data to AMIQ. Products: AMIQ, SMIQ

OzTiVo Toys, Tools, Hacks

Transcription:

Nix 1.12 Eelco Dolstra 28 October 2017

Status Please go forth and test! Performs database schema change, but Nix 1.11 is forwards compatible. NixOS: nix.package = pkgs.nixunstable Elsewhere: nix-env -ia nixpkgs.nixunstable

New CLI New command: nix Work in progress; does not yet replace nix-env and parts of nix-store. Experimental; syntax may still change. All commands should have a --json flag.

New CLI General syntax: nix subcommand Fully self-documenting: $ nix copy --help Usage: nix copy <FLAGS>... <INSTALLABLES>... Summary: copy paths between Nix stores. Flags: --all -f, --file <FILE> --from <STORE-URI> --no-check-sigs --no-recursive --store <STORE-URI> -s, --substitute --to <STORE-URI> apply operation to the entire store evaluate FILE rather than the default URI of the source Nix store do not require that paths are signed by trusted keys apply operation to specified paths only URI of the Nix store to use whether to try substitutes on the destination store (only supported by SSH) URI of the destination Nix store Examples: To copy Firefox from the local store to a binary cache in file:///tmp/cache: $ nix copy --to file:///tmp/cache -r $(type -p firefox) To copy the entire current NixOS system closure to another machine via SSH: $ nix copy --to ssh://server -r /run/current-system To copy a closure from another machine via SSH: $ nix copy --from ssh://server -r /nix/store/a6cnl93nk1wxnq84brbbwr6hxw9gp2w9-blender-2.79-rc2 Note: this program is EXPERIMENTAL and subject to change.

New CLI All configuration options are now supported as command line flags. So $ nix build --sandbox instead of $ nix build --option sandbox true nix --help-config shows all available configuration options. Configuration options can now be set in ~/.config/nix/nix.conf.

nix build Replaces nix-build. Syntax: nix build installables... Examples: nix build nixpkgs.hello = nix-build <nixpkgs> -A hello nix build -f. = nix-build nix build -f /foo bar = nix build /foo -A bar Has a progress indicator!

Remote builds Remote building is now much easier to do: $ nix build nixpkgs.hello --builders root@mac x86_64-darwin [1/0/1 built] building hello-2.10 on ssh://root@mac: checking f No more need to set up /etc/nix/machines.nix, NIX BUILD HOOK,...

nix log Replaces nix-store --read-log. Shows the build log for an installable. Will get it from binary caches if not available locally. Examples: nix log nixpkgs.hello nix log $(type -p thunderbird)

nix search Replacement for nix-env -qa. Has a cache! Example: $ time nix search blender warning: using cached results; pass -u to update the cache Attribute name: nixpkgs.blender Package name: blender Version: 2.79 Description: 3D Creation/Animation/Publishing System real 0m0.146s

nix path-info Replaces nix-store -q. Show the closure sizes of every path in the current NixOS system closure, sorted by size: $ nix path-info -rs /run/current-system sort -nk2 Query info about a path in a binary cache: $ nix path-info --json --store https://cache.nixos.org Show every path whose closure is bigger than 1 GB, sorted by closure size: $ nix path-info --json --all -S jq map(select(.closuresize > 1e9)) sort_by(.closuresize) map([.path,.closuresize])

Store URIs All commands accept --store <uri>. Not all stores support all operations. Available stores: local: use /nix/store remote: go via the Nix daemon /path: use a chroot, i.e. /path/nix/store, /path/nix/var,... https://: HTTP binary cache Replaces download-from-binary-cache Supports HTTP/2 More reliable file://: local binary cache s3://: S3 binary cache ssh://: Nix store accessed via SSH

nix copy A replacement for nix-copy-closure: $ nix copy nixpkgs.hello --to ssh://server $ nix copy --from ssh://server /nix/store/abcde-foo A replacement for nix-push: $ nix copy nixpkgs.hello --to file:///my-cache A replacement for ad hoc scripts to populate cache.nixos.org: $ nix copy nixpkgs.hello --to s3://nix-cache

Chroot stores Nice for testing or if you don t have write access to /nix/store but still want to use /nix/store because of binary caches. $ nix build nixpkgs.hello --store ~/my-nix

nix run Replaces nix-shell -p. Support chroot stores. $ nix run --store ~/my-nix nixpkgs.hello nixpkgs.bashinteractive $ hello --version hello (GNU Hello) 2.10 $ type -p hello /nix/store/w5w4v29q...-hello-2.10/bin/hello $ ls bash: ls: command not found

nix verify Checks whether store paths are unmodified and are signed. Store paths now have signatures! Signatures are copied at substitution time. Locally built paths are marked as ultimately trusted, and you can sign them locally. $ nix verify -r $(type -p thunderbird) path /nix/store/0nvlpdjl...-libpng-apng-1.6.31 is untrusted [101 paths verified, 1 untrusted]

nix eval Replaces nix-instantiate --eval. $ nix eval nixpkgs.hello.src.name "hello-2.10.tar.gz" $ nix eval --raw nixpkgs.lib.nixpkgsversion 17.09.1535.1fdca25ee8 $ nix eval (1 + 2) 3

nix edit Opens the Nix expression corresponding to a Nix package. $ EDITOR=ls nix edit nixpkgs.hello /nix/store/wpcqnsln...-nixos-17.09.1535.1fdca25ee8/ nixos/pkgs/applications/misc/hello/default.nix

nix-build --hash A new build mode that Builds a derivation Computes the output hash Renames the store path to the corresponding fixed-output location Intended to replace nix-prefetch-*. E.g. if nix-repl.src is a fetchfromgithub call, then $ nix-build --hash -A nix-repl.src build produced path /nix/store/504a4k6z...-nix-repl-src with sha256 hash 0cjablz0...

nix why-depends Shows why a package has another package in its runtime closure. Useful for debugging closure size issues. $ nix why-depends /run/current-system nixpkgs.glibc.dev /nix/store/w29w92a4zzv79f7xvgay8z8wxpp7chl7-nixos-system-nixos-17.09.git.13f4079 -- activate:...rapped..wrapper PATH=/nix/store/mghsf07ylkvbrggvvs6j25djq38v3b38-system-path/bin:/nix/store/mghs... => /nix/store/mghsf07ylkvbrggvvs6j25djq38v3b38-system-path -- lib/debug/.build-id/09/cf9f1cd8074c79630af774ff66db62eb6820fe.debug -> /nix/store/6v5nz6bg926gxdbq2idj8j8ajznazbmh-nix-1.12pre5639 fda7b95c-debug/lib/debug/.build-id/09/cf => /nix/store/6v5nz6bg926gxdbq2idj8j8ajznazbmh-nix-1.12pre5639 fda7b95c-debug -- lib/debug/.build-id/09/cf9f1cd8074c79630af774ff66db62eb6820fe.debug:... E. ZTSZ4mainEUlvE./nix/store/v8qa2qbwrb7s8b4piygdiii7p7jpv068-gcc-6.4.0/lib/gcc/x86 64-unknow. => /nix/store/v8qa2qbwrb7s8b4piygdiii7p7jpv068-gcc-6.4.0 -- libexec/gcc/x86 64-unknown-linux-gnu/6.4.0/cc1:...ux-gnu/include.../nix/store/50jw5m7lda3rylirxyly9diy55lh149z-glibc-2.25-49-dev/include.e => /nix/store/50jw5m7lda3rylirxyly9diy55lh149z-glibc-2.25-49-dev

builtins.fetchgit Fetches a Git repository at evaluation time. Does not need to specify a content hash. E.g. in a NixOS module: imports = [ (builtins.fetchgit https://github.com/edolstra/dwarffs + "/module.nix") ]; Git repos can also be specified on the command line: $ nix build nixpkgs.hello -I nixpkgs=git://github.com/nixos/nixpkgs

Structured derivation attributes You can now pass lists and attrsets to builders. So for example configureflags = [ "--with-features= a b c " "--enable-foobar" ]; can now be a bash array. Enabled by setting structuredattrs = true. Will require major changes in Nixpkgs stdenv.

Placeholders Allow derivation attributes to refer to their own output paths. configureflags = [ "--prefix=${placeholder "out"}" "-includedir=${placeholder "dev"}" ];

Minor improvements nix repl is now part of Nix.

Minor improvements nix repl is now part of Nix. channel://c as a shortcut for https://nixos.org/channels/c/nixexprs.tar.xz.

Minor improvements nix repl is now part of Nix. channel://c as a shortcut for https://nixos.org/channels/c/nixexprs.tar.xz. Sandbox builds now use /build as a temporary directory; closes a class of security problems.

Minor improvements nix repl is now part of Nix. channel://c as a shortcut for https://nixos.org/channels/c/nixexprs.tar.xz. Sandbox builds now use /build as a temporary directory; closes a class of security problems. Linux sandbox provides /bin/sh by default.

Minor improvements nix repl is now part of Nix. channel://c as a shortcut for https://nixos.org/channels/c/nixexprs.tar.xz. Sandbox builds now use /build as a temporary directory; closes a class of security problems. Linux sandbox provides /bin/sh by default. Base-64 hashes.

Minor improvements nix repl is now part of Nix. channel://c as a shortcut for https://nixos.org/channels/c/nixexprs.tar.xz. Sandbox builds now use /build as a temporary directory; closes a class of security problems. Linux sandbox provides /bin/sh by default. Base-64 hashes. Automatic garbage collection.

Minor improvements nix repl is now part of Nix. channel://c as a shortcut for https://nixos.org/channels/c/nixexprs.tar.xz. Sandbox builds now use /build as a temporary directory; closes a class of security problems. Linux sandbox provides /bin/sh by default. Base-64 hashes. Automatic garbage collection. max-jobs = auto

Minor improvements nix repl is now part of Nix. channel://c as a shortcut for https://nixos.org/channels/c/nixexprs.tar.xz. Sandbox builds now use /build as a temporary directory; closes a class of security problems. Linux sandbox provides /bin/sh by default. Base-64 hashes. Automatic garbage collection. max-jobs = auto Binary cache signatures now required by default.