0

根据https://chris-martin.org/2015/installing-nixos存在一个/etc/nixos/configuration.nix文件。

我正在使用来自https://hub.docker.com/r/nixos/nix/的 docker 容器并运行

find . -name "configuration.nix"

在容器内不返回任何结果。

此配置位于何处?

4

4 回答 4

3
echo $NIX_PATH

应该告诉你。寻找 的定义nixos-config

于 2017-04-03T13:18:16.357 回答
1

提到的 docker 容器不包含 NixOS 系统。引用评论:

它基本上是 Alpine linux 发行版,上面有 apk 包管理器和 nix-env。

所以,没有 NixOS,没有configuration.nix.

(如果 OP 发表评论,不会感到惊讶☻)

如果我们谈论的是NixOS的容器故事,那么在撰写本文时它还处于起步阶段。

于 2017-05-12T11:29:13.380 回答
1

如果由于某种原因它不存在或者你找不到它,你可以将构建系统所需的一切作为参数传递给 nixos-rebuild:

git clone --branch release-17.03 https://github.com/nixos/nixpkgs $HOME/nixpkgs
mkdir -p $HOME/nix-config
nixos-generate-config --dir $HOME/nix-config

nixos-install -I nixos-config=$HOME/nix-config/configuration.nix -I nixpkgs=$HOME/nixpkgs

无论如何,我更喜欢这样做,因为它允许我使用我配置的 nixpkgs 和 nix 文件,它们存储在个人 git repo 中。

于 2017-04-02T16:12:08.207 回答
0

nix 映像与 Nixos 项目没有直接关系。

你可以用 nix 容器做的事情是创建一个 nix-shell 环境:

docker run -ti nixos/nix
cb84c4b79d05:/# echo '{ pkgs ? import <nixpkgs> {} }:
>   pkgs.mkShell {
>     buildInputs = [ pkgs.python pkgs.php ];
> }
> ' > shell.nix
cb84c4b79d05:/# nix-shell shell.nix 
these derivations will be built:
  /nix/store/j6p6rskjji6l4hw95wbyyj2iyxd9j1j5-php.ini.drv
  /nix/store/kymjwis1v82wif5jn7pczphg4j5q3ir5-php-with-extensions-7.4.4.drv
these paths will be fetched (96.21 MiB download, 436.69 MiB unpacked):
  /nix/store/0cxqyn95rh7vihmywnaimrxlpb58958i-php-gd-7.4.4
  /nix/store/0pxqh18n0wzqa6aamad2ljrl5nahlyiv-php-openssl-7.4.4
....
[nix-shell:/]# python --version
Python 2.7.18

[nix-shell:/]# php -v
PHP 7.4.4 (cli) (built: Mar 17 2020 10:40:37) ( ZTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.4, Copyright (c), by Zend Technologies

此处提供更多信息:https ://nixos.wiki/wiki/Development_environment_with_nix-shell

于 2020-05-23T14:20:11.117 回答