问题标签 [nixpkgs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nixos - 为什么 `fetchTarball` 下载的文件不在范围内?
我在 NixOS 上,试图将以下推导添加到nixpkgs
:
我成功地在沙盒模式下构建并安装了它,同时对其进行了几次测试。然后如贡献指南中所述,我检查了所有依赖于更改的包仍然可以使用nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
(即使它是一个新包;我刚刚浏览了贡献指南列表)。这也很好。
但是,现在,当我尝试在沙盒模式下重建它时,构建失败并显示以下消息:
似乎我需要的 zip 文件src
根本没有下载;这种行为的原因是什么,我该如何解决?
该构建之前工作过,所以我认为它可能与奇怪的缓存行为或类似的东西有关(但是使用沙盒模式应该正常规避)?
完整的回购可以在这里找到。我添加的包在pkgs/server/typedb
我试过了
- 使用和不使用沙盒模式进行构建,
nix-prefetch-url
- 在构建之前使用适当的 tarball,- 将 repo 重新克隆到不同的位置并使用沙盒模式从头开始构建它
- 确定是否有非垃圾收集的损坏的预加载 tarball(但是我没有找到任何(可能我寻找它们的方式不太正确))
这个问题也发布在reddit上,但我认为在这里可能更容易找到。
拉取请求草案可以在这里找到
nix - Nix 如何知道在安装软件包时使用哪个替代品?
从频道安装或固定 Nixpkgs 时。
假设有shell.nix
这样一个:
然后简单地调用它:
然后使用固定版本的 Nixpkgs:
是不是沿着这些思路?
NixOS 组织的 (?) Hydra 构建农场定期构建二进制文件并在频道中发布结果(基于 Nixpkgs 存储库中的分支)
二进制文件上传到二进制缓存(来自Nix 手册:“二进制文件已构建并上传到 cache.nixos.org 的二进制缓存”)
当一个进程开始安装一个包(
nix-shell
,nix-env
等)时,Nix 表达式在 Nixpkgs 中查找一个推导被构建并放置在 Nix 存储中(?;关键是会有一个哈希值与二进制缓存进行比较)
如果有替代品则拉取,否则源头部署继续。
不同的 deno 版本只是这些快照中包含的不同 Nix 表达式产生不同哈希的结果,因此在每种情况下都下载了不同的替代品。(在第一种情况下,它是在我的笔记本电脑上设置的https://nixos.org/channels/nixos-20.09频道中的最新频道,而后者是从...任何频道中挑选的 - 不稳定? - 有具有该哈希的二进制文件?)
nix - 如何将自定义 python 与现有包一起使用 - nix 派生?
我用未合并的补丁定义了一个自定义的 nix cpython 派生。如果我将它指定为目标,nix-shell 会给我我期望的版本。
但我没有看到如何将新的 cpython 用于现有包的方法。直接叠加不会影响任何事情。
我注意到我可以使用覆盖,但它仅适用于运行时并且不适用于所有包。
python - 如何在我的 Python nix flake 中修复“[Errno 13] Permission denied: '_cmp.pyi'”?
我正在尝试在 NixOS 上安装 jupyter-book。我有这个薄片:
其中导入 jupyter-book.nix,包含以下表达式:
但是,当我尝试使用 构建它nix build
,或者使用它获取一个 shell 时nix shell
,或者使用nix develop
,我得到这个错误:
这里发生了什么,我该如何解决?
.net-core - 使用 nix-build 时 dotnet restore 失败,但在 nix-shell --pure 下工作
我正在尝试使用 nix 来构建 dotnet (sdk 5) 项目。
配置类似于
};
for 参数中的HOME
属性stdenv.mkDerivation
仅适用于 nix-shell。由于 nix-shell 将继承 normal $HOME
,我需要设置$HOME
到另一个空目录来模仿构建阶段的行为。
手动使用
nix-shell
和运行时,它工作正常。dotnet restore
使用时
nix-build
,构建失败,运行时出现以下错误dotnet restore
注册来源:
- nuget.org [已启用] https://api.nuget.org/v3/index.json http-cache: /build/PROJECTNAME/home/.local/share/NuGet/v3-cache global-packages: /build/PROJECTNAME /home/.nuget/packages/ temp: /build/NuGetScratch plugins-cache: /build/PROJECTNAME/home/.local/share/NuGet/plugins-cache 正在确定要恢复的项目... /nix/store/fvfyn01fjmawvyn7vlhhrgkzyy6321wl-dotnet -sdk-5.0.202/sdk/5.0.202/NuGet.targets(131,5):错误:无法加载源https://api.nuget.org/v3/index.json的服务索引. [/build/PROJECTNAME/PET-CT-machine-service.sln] /nix/store/fvfyn01fjmawvyn7vlhhrgkzyy6321wl-dotnet-sdk-5.0.202/sdk/5.0.202/NuGet.targets(131,5):错误:名称或服务未知 (api.nuget.org:443) [/build/PROJECTNAME/PET-CT-machine-service.sln] /nix/store/fvfyn01fjmawvyn7vlhhrgkzyy6321wl-dotnet-sdk-5.0.202/sdk/5.0.202/NuGet .targets(131,5):错误:名称或服务未知 [/build/tomopioneer/PET-CT-machine-service.sln]
手动设置nix-build
和nix-shell --pure
何时设置有什么区别?HOME
通过从 github NixOS/nixpkgs 存储库读取代码,似乎有几个 dotnet 包正在nuget
手动使用并dotnet restore
与本地源一起使用。那有必要吗?
我对 api.nuget.org 进行了更多测试。
运行curl https://api.nuget.org/v3/index.json -v
,我得到:
- 直接在 nixos 终端下运行时工作正常
- 工作正常
nix-shell --pure
- 中的错误
nix-build
,curl: (6) Could not resolve host: api.nuget.org
nixos - 创建具有自定义固件支持的可引导 USB
我想为我的新笔记本电脑创建一个启用了一些自定义固件的可启动 USB,但是我似乎无法掌握如何设置它...
我基本上遵循这里的指南:https : //nix.dev/tutorials/building-bootable-iso-image 我想我想启用“rtw89-firmware”并将其与来自 nixos-hardware repo 的定义结合起来:https ://github.com/NixOS/nixos-hardware/blob/0a8b8054c9920368a3c15e6d766188fdf04b736f/lenovo/thinkpad/p14s/amd/gen2/default.nix
我目前的尝试:
我正在尝试使用以下方法构建 ISO 映像:
但这失败了
错误:/home/user/tmp/nixos-bootable-img.nix:9:72 处的未定义变量“rtw89”
谁能在这里指出我正确的方向?从我的角度来看(这显然是错误的),我希望固件存在于 pkgs 中。
谢谢!
nix - Nix 如何将单个 NPM 包安装为独立软件?
警告:如果您想在 Nix/NixOS 中使用无服务器框架,这不是这样做的方法:您最终得到的包已经过时,并且(如下所述)它可能无论如何都无法工作。请参阅NixOS Discourse 上的主题。
想通过无服务器尝试,nix-shell
所以我查了一下,运行了命令
a̶n̶d̶i̶t̶w̶o̶r̶k̶s̶f̶l̶a̶w̶l̶e̶s̶s̶l̶y̶。1
是什么让这成为可能,而不需要我手动安装 Node 才能运行npm install -g serverless
?(例如,该node_modules
文件夹是否在 Nix 商店中的某个位置?如果我使用nix-shell
另一个 Node 包会发生什么——它们会共享同一个目录吗?)
[1]:它没有……见这个 Reddit 线程;可能setuid
的问题。尽管如此,仍然对幕后的东西感兴趣。
这个问题更像是一个待办事项,因为我真的很想自己弄清楚,但现在没有时间......
nix - Libudev 作为静态库?
我正在尝试构建一个依赖于libudev
.
不幸的是nix-env -iA nixpkgs.pkgsStatic.libudev
,失败了:error: p11-kit cannot be used as a static library
。
有没有更好的方法来做到这一点?
npm - 使用 nixos,我可以在全球范围内安装 nodejs 包吗?
假设我要安装,这里@squoosh/cli
的 nixpkgs 中提到了这个包。有没有办法在家庭管理器中或在家庭管理器中指定软件包以使其安装?configuration.nix
nixos-rebuild
alsa - 如何在 Nix 开发 shell 中配置构建输入包/依赖项?
我没有使用 NixOS,但我写了一个 flake,我用它来生成一个开发 shell 来构建一个Rust 项目(这实际上只是Bevy 存储库中的音频示例)。我的问题是尝试在 dev shell 中运行项目时遇到以下错误:
该项目的依赖项之一是需要 ALSA 的 Bevy crate,所以我假设问题是因为 dev shell 公开的 ALSA 包可能配置错误。我在我的实际系统上使用 PipeWire(我认为它也使用 ALSA 作为后端),我尝试将 ALSA 和 PipeWire 添加为薄片的 buildInputs 之一,但我不确定我应该如何在开发外壳。根据Bevy 存储库上的这个问题,至少对于基于 Arch 的发行版来说,这个问题的通常解决方法是安装 pipewire-alsa 包。我不确定在 Nix 开发 shell 的上下文中这样做的等价物是什么,因为在 nixpkgs 中没有可以添加到我的薄片中的 pipewire-alsa 包。话虽如此,我应该如何在开发外壳中配置 ALSA 或 PipeWire?