根据https://chris-martin.org/2015/installing-nixos存在一个/etc/nixos/configuration.nix
文件。
我正在使用来自https://hub.docker.com/r/nixos/nix/的 docker 容器并运行
find . -name "configuration.nix"
在容器内不返回任何结果。
此配置位于何处?
根据https://chris-martin.org/2015/installing-nixos存在一个/etc/nixos/configuration.nix
文件。
我正在使用来自https://hub.docker.com/r/nixos/nix/的 docker 容器并运行
find . -name "configuration.nix"
在容器内不返回任何结果。
此配置位于何处?
echo $NIX_PATH
应该告诉你。寻找 的定义nixos-config
。
提到的 docker 容器不包含 NixOS 系统。引用评论:
它基本上是 Alpine linux 发行版,上面有 apk 包管理器和 nix-env。
所以,没有 NixOS,没有configuration.nix
.
(如果 OP 发表评论,不会感到惊讶☻)
如果我们谈论的是NixOS的容器故事,那么在撰写本文时它还处于起步阶段。
如果由于某种原因它不存在或者你找不到它,你可以将构建系统所需的一切作为参数传递给 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 中。
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