nix与linux的区别,linux – Nix / OS架构概述?

2023-05-16

1.A

是的,您可以将Nix视为使用/ nix / store作为缓存的构建工具. Nix是一个包管理器只是这种设计的副作用.

1.B

你的nix表达式取决于你的设置.为了弄清楚这一点,请查看$NIX_PATH变量,该变量指向nixpkgs repo副本所在的位置.那些副本(有时仍然是)由nix-channel工具管理,但将来你可以指向nixpkgs,如:

export NIX_PATH=nixpkgs=https://github.com/NixOS/nixpkgs/archive/16.03.tar.gz

您可以在这篇关于nix search paths的博客文章中阅读有关NIX_PATH的更多信息

1.C

是的,可以在机器之间复制包.实际上,已经有了一个工具:nix-copy-closure.

2.A

我相信你在这里谈论你用nix-env管理的Nix环境.我们通常将这些称为nix配置文件.我在第1点中对nix搜索路径(NIX_PATH变量)所说的并不真正适用于nix-env.

nix-env工具使用〜/ .nix-defexpr,默认情况下它是NIX_PATH的一部分,但这只是巧合.如果你清空NIX_PATH,由于〜/ .nix-defexpr,nix-env仍然可以找到派生.

2.B

用户配置文件只是一个nix环境(在2.a中描述),您可以将其更改为其他任何内容,例如:

nix-env --switch-profile ./result

其中./result是/ nix / store中的东西或指向/ nix / store的东西.然后上面的命令将使用./result切换〜/ .nix-profile符号链接.

2.C

nix-shell实际上更接近nix-build命令.那么让我先解释一下nix-build的功能.

nix-build用于构建.nix文件(也是派生,但为此我必须解释派生是什么).如何使用nix-build的示例:

nix-build something.nix

上面的命令会生成一个./result符号链接,指向/ nix / store中的某个内容. Nix命令将实现构建并将输出存储到/ nix / store中.

另一方面,nix-shell将完全执行nix-build所做的操作,除非它不会触发构建器脚本并将您带入该环境.这样你最终会得到一个可以用来开发nix表达式的环境,它也可以在nixpkgs存储库之外(例如你的私有项目).

3.A

Nix安装二进制文件,NixOS为该二进制文件创建配置,并将其与init系统(当前为systemd)挂钩.

3.B

不.这是其他配置管理员所做的事情.尼克斯反过来工作.在blog post中很好地描述了方法的不同之处.

3.C

如3.a所述,nix只会安装二进制文件,而nixos也会确保二进制文件正在运行.

4.A / B / C

基本上没有限制,你认为如何适合你.一旦您了解了基本概念,您就会找到最适合您的概念.看看别人的dotfiles /配置并有意见.

我使用my collection的nixos配置为我的家人管理笔记本电脑

system.auto升级服务.

为了创建一个(构建)可重现的环境,我前段时间写过a blog post.

5.

我个人最喜欢的工具(或已经在这里)是vulnix.这将检查您当前的系统/项目是否存在当前漏洞(CVE).这使得nix与其他人脱颖而出,特别是因为它易于使用(没有企业设置).

我在nix中找到的另一个用例是使用dockerTools helpers构建可重现的docker镜像.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nix与linux的区别,linux – Nix / OS架构概述? 的相关文章

  • 如何在perl中使用O_ASYNC和fcntl?

    我想使用 O ASYNC 选项 当管道可以读取时 SIGIO 的处理程序将运行 但以下代码不起作用 任何人都可以帮助我吗 bin env perl use Fcntl SIG IO sub print catch SIGIO n my fl
  • 完整的 C++ i18n gettext()“hello world”示例

    我正在寻找完整的 i18ngettext 你好世界的例子 我已经开始了一个基于的脚本使用 GNU gettext 的本机语言支持教程 https web archive org web 20130330233819 http oriya s
  • Ctrl-p 和 Ctrl-n 在 Docker 下表现异常

    For the life of me I can t seem to figure out why ctrl p and ctrl n don t work like they re supposed to under the Docker
  • 如何回忆上一个 bash 命令的参数?

    Bash 有没有办法回忆上一个命令的参数 我通常这样做vi file c其次是gcc file c Bash 有没有办法回忆上一个命令的参数 您可以使用 or 调用上一个命令的最后一个参数 Also Alt can be used to r
  • 隐式声明“gets”

    据我所知 隐式声明 通常意味着该函数必须在调用之前放置在程序的顶部 或者我需要声明原型 然而 gets应该在stdio h文件 我已包含 有没有什么办法解决这一问题 include
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • 如何在 bash_profile 文件中添加导出语句?

    我正在尝试了解是否必须添加导出语句来在 bash profile 文件中设置变量 我该怎么做呢 例如 如果我必须添加 export AX name 那么我应该将其简单地写在文件末尾还是我还需要编写其他内容 简单写一下export AS na
  • 在 vimrc 中切换匹配

    我的 vimrc 文件中有以下几行 hi ExtraWhitespace cterm NONE ctermbg green ctermfg green guibg green guifg green match ExtraWhitespac
  • 为什么使用signalfd无法捕获SIGSEGV?

    我的系统是ubuntu 12 04 我将示例修改为man 2 signalfd 并添加sigaddset mask SIGSEGV 在示例中 但我无法得到输出SIGSEGV被生成 这是一个错误吗glibc 源代码片段如下 sigemptys
  • 命名互斥体的 Mono 替代方案

    在 Windows NET 上 命名的互斥体可用于同步多个进程 不幸的是 Mono 在 Linux 上不太支持这一点 他们的发行说明 http www mono project com Release Notes Mono 2 8 Shar
  • 如何将命令输出作为多个参数传递给另一个命令

    我想将命令的每个输出作为多个参数传递给第二个命令 例如 grep pattern input returns file1 file2 file3 我想复制这些输出 例如 cp file1 file1 bac cp file2 file2 b
  • BeagleBone Black 如何用作大容量存储设备?

    是否可以使用 BB 作为大容量存储设备 我希望将其连接到可以从 USB 连接 例如 USB 闪存驱动器 读取文件的音频播放器并充当包含一个特定文件夹的数据存储设备 及其子文件夹 从文件系统 如果可能 在连接到开发板的闪存驱动器上 正如设备规
  • 在 Windows / Linux 中创建 Mac 包

    我自己努力制作一个 r 包 我按照 stackoverflow 中上一个问题的说明进行操作如何为外行开发软件包 http cran r project org bin windows Rtools 以下是我根据上一个问题采取的步骤 在新的
  • 如何在C程序中直接改变显存映射来绘制像素(无需库函数)

    是否可以通过使用 C 程序更改 RAM 中屏幕 视频即监视器 内存映射中的值来显示黑点 我不想使用任何库函数 因为我的主要目标是学习如何开发简单的操作系统 我尝试访问起始屏幕内存映射 即 0xA0000 在 C 中 我尝试运行该程序 但由于
  • X 按键/释放事件捕获,与焦点窗口无关

    我想记录所有传入的按键事件 无论哪个窗口处于焦点状态或指针位于何处 我编写了一个示例代码 它应该捕获当前焦点窗口的按键事件 include
  • Flex 的远程版本误解了我的规则

    我使用 flex 和 bison 编写了一个小汇编程序 可以在我的机器 ubuntu 10 10 上构建并运行正常 现在其他人正在尝试在 arch linux 上构建它 并且他们安装的 flex 产生了不同的 lex yy c 这是不匹配的
  • PHP 日志文件颜色

    我正在编写一个 PHP 日志文件类 但我想为写入文件的行添加颜色 我遇到的问题是颜色也会改变终端的颜色 我想要实现的是仅更改写入日志文件的行的颜色 class logClass extends Singleton private funct
  • 在Linux中创建可执行文件

    我计划做的一件事是编写 非常简单的 Perl 脚本 并且我希望能够在不从终端显式调用 Perl 的情况下运行它们 我明白 要做到这一点 我需要授予他们执行权限 使用 chmod 执行此操作非常简单 但它似乎也是一个稍微费力的额外步骤 我想要
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • ARM 的内核 Oops 页面错误错误代码

    Oops 之后的错误代码给出了有关 ARM EX 中的恐慌的信息 Oops 17 1 PREEMPT SMP在这种情况下 17 给出了信息 在 x86 中它代表 bit 0 0 no page found 1 protection faul

随机推荐