nix-env

nix-envついて

タグ


概要

  • macOS, Linuxで利用できるパッケージ管理ツール
  • macOSではbrewが有名だが、nixもある
  • nix~./nix-profileにパッケージをインストールを行うのでユーザ権限でインストールが可能

インストール

Linux

$ curl -L https://nixos.org/nix/install | sh -s -- --daemon

macOS

$ curl -L https://nixos.org/nix/install | sh

基本的な使い方

パッケージのインストール

$ nix-env -iA nixpkgs.hello

パッケージのアンインストール

$ nix-env -e hello

パッケージの検索

$ nix-env -qaP | less

パッケージのアップデート

$ nix-channel --update nixpkgs
$ nix-env --upgrade '*'

チャンネルの追加

$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable
$ nix-channel --update

パッケージの作成

実行バイナリの作成

#!/bin/sh
echo "hello nix."

権限の付与

$ chmod +x hello-nix.sh

hello.nixの作成

let
  nixpkgs = import <nixpkgs> {};
  stdenv = nixpkgs.stdenv;
  lib = nixpkgs.lib;
in

stdenv.mkDerivation {
  name = "hello-nix";
  src = ./.;
  buildInputs = [ ];

  installPhase = ''
    mkdir -p $out/bin
    cp hello-nix.sh $out/bin/hello-nix
  '';

  meta = {
    description = "A simple hello script";
    homepage = null;
    license = lib.licenses.mit;
  };
}

ビルド

$ nix-build hello.nix

インストール

$ nix-env -i ./result

トラブルシューティング

bash: warning: setlocale: LC_ALL: cannot change locale nixと表示される

参考