问题标签 [guix]
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.
failed-installation - 无法启动 GUIX 守护进程
我已经按照https://www.gnu.org/software/guix/manual/html_node/Binary-Installation.html#Binary-Installation安装 GUIX 的所有步骤,但是当我运行
它错误为
的内容~root/.guix-profile/lib/systemd/system/guix-daemon.service
看起来是正确的。只涉及一个符号链接。
怎么了?
更新:我通过将文件复制为
反而。似乎对符号链接的数量有限制。
更新:下一个问题:
命令
不在标准输出上打印任何内容,但未创建守护进程:
什么都不返回。
macros - Guile 方案中的宏扩展
在 Guix 中有一个由宏组成的层美化了 srfi-9 记录的创建和操作
代码在 guix/records.scm
代码大且清晰
我想扩展这些宏以查看它们的输入和输出,以便了解它们的作用
问题是,即使是标准的 vanilla srfi-9 记录也是围绕结构的宏,轮到它们自己
所以宏扩展给了我一个完全扩展的代码创建和操作结构。
我更希望看到单遍宏扩展的结果,看看 guix 宏产生了什么 srfi-9 代码
在 Clojure 中有macroexpand
和macroexpand-1
macroexpand-1
执行一次宏扩展并重复macroexpand
调用macroexpand-1
,直到正在处理的表单中没有更多宏可以扩展
你可以在这里看到这个
Guile 计划中是否有类似的选项?
我是否缺少任何工作流程技巧、任何工具、任何库函数或宏来处理这个问题?
gdb - 如何调试使用 guix 安装的 C 程序?
我使用 guix 安装了 flatpak,但它在启动时出现了段错误。我想调试它,但是 guix 为 flatpak 安装了一个包装脚本,所以当我尝试在 gdb 下运行它时出现这个错误:
我试图编辑包装脚本来调用 gdb,但是这个包装脚本甚至不能被 root 编辑,因为它归 root 所有并且具有只读权限。
c - 使用 Guix 针对旧的 glibc 构建
假设您有 ac 程序,但几乎任何程序都可以,并将其放入文件中:
并说您出于某种原因想要针对特定版本的 glibc 构建它。我最初的尝试是创建一个包含旧版本的 Guix 环境(以及glibc
类似的程序)。gcc
coreutils
ls
不幸的是,这似乎不起作用。生成的程序链接到glibc
比我预期的更新版本 2.31 而不是 2.29。但这可能是由于gcc
它本身与glibc
2.31 相关联,最终污染了环境,可以这么说。
我从这里去哪里?我尝试过使用gcc
Guix 中打包的旧版本,但它们似乎都是针对glibc
2.31 构建的。我也尝试添加-L /gnu/store/hlsas48h6x7364kcfs8yy6xfksdsffr4-glibc-2.29/lib
到我的gcc
-invocation 但无济于事。
r - 与 guix 相比,nix 中 rPackages(包的 pin 版本)的可重复性更好
实际上,我正在评估不同的解决方案以增强/探索我的 R/Python 科学工作流程中的可重复性:具有可重复分析(绘图、分析)和纸张的数据。
如您所知,有两种大的 linux 风格提供了一些解决方案:Nix 和 Guix
在 nix 中,通常描述的使用 R 开发的方式是,例如,使用rWrapper
and rPackages
:
我的问题(不是那么……)很简单,就像 Python 一样,众所周知,R 在可重现性方面是一场噩梦,即使在中期也是如此。为了好玩,您可以尝试使用最新版本的 R 运行 2 年的 ggplot2 代码...
为了提出从科学论文的相同数据产生相同结果的薄片,我有兴趣在推导中修复 R 的版本和用于计算分析或绘图的 R 包的版本。
例如,我怎样才能更精确地定义我想使用的编译我的test.Rmd
,只有 tidyverse 1.3.1 和 R 4.1.O ?即使在5年内?
我发现 Guix 显示了 R 和 tidyverse 的不同可用包/版本:
tidyverse.1.3.1 所需的版本清楚地呈现:
在我搜索一种方法来实现类似rPackages
的Nix
东西,即。一种将 R 或 R 包的版本显式引用到派生中的方法,但我没有找到它。
有了 rPackages , nix 开发者已经提供了很好的基础,但也许我们需要更多......
我们如何才能使用 Nix 共同在 R 包上实现更好的可重复性?我对任何想法感兴趣?
或许我们可以直接从 cran 档案中获取包源并进行编译?例如 tidyverse :
- https://cran.r-project.org/web/packages/tidyverse/index.html,
- https://cran.r-project.org/src/contrib/Archive/tidyverse/?
Ps :我知道 Nix 和 Guix 都是https://archive.softwareheritage.org/的合作伙伴,这是存档和调用 cran 包的好方法:
- https://guix.gnu.org/fr/blog/2019/connecting-reproducible-deployment-to-a-long-term-source-code-archive/
- https://www.tweag.io/blog/2020-06-18-software-heritage/
Ps:答案也可以添加到https://nixos.wiki/wiki/R
更新 1
在与 nix discord 上的一些伟人讨论后,我了解到 nix 不需要版本,因为flake.nix + flake.lock
存储哈希(请参阅 nix flake metadata)将我的构建和下载与 nixpkgs 上的非常具体的提交联系起来。
但这并不能解决:
- RPackages 在这个非常具体的提交中声明的这个包链接/需要的 tar.gz 源的问题?我想软件遗产会在这一点上有所帮助吗?
- 一些 R 版本和 R 版本的包之间不兼容的常见问题。例如,您使用 R 3.0.0 和 tidyverse 1.2.3 编写代码,您更新您的 R 版本,因为其他一些包需要更新,并且仅适用于 R 3.2.0 可用的依赖项,但是ahum, tidyverse 1.2.3 不要对于 R 3.2.0 不存在...修复版本和访问旧的 tar.gz 解决了这个问题的一部分,我想。
我们如何使用 nix 定义这样的东西?
更新 2
似乎有人建立了一个非官方索引来帮助人们使用 tidyverse 搜索旧版本的包 Ex: https ://lazamar.co.uk/nix-versions/?channel=nixpkgs-unstable&package=r-tidyverse
感谢@dram 提供链接和讨论。
guix - guix: 未能获得 'ben' 的补充组列表
我根据本指南设置 guix:https ://guix.gnu.org/manual/en/html_node/Binary-Installation.html
但是,当我尝试进行构建时,甚至guix install hello
出现此错误。
python - DeepTCR 包不工作。ImportError:libstdc++.so.6:无法打开共享对象文件:没有这样的文件或目录
我在尝试运行依赖于 DeepTCR 包(例如 Tensorflow)的 python 代码时收到以下错误。我在(guix)shell(包括 python 3.8.2 和 DeepTCR 所需的所有包)中运行我的脚本。所有已安装的软件包都可以在https://github.com/sidhomj/DeepTCR/blob/master/requirements.txt找到。我首先(在安装 python3.8.2 并进入 shell 之后)运行,pip3 install --user DeepTCR
然后运行pip3 install --user -r requirements.txt
.
这是错误:
我试图运行的 Python 脚本是:
进入 shell 后,我python3 /"path"/DeepTCR_V1.py
开始运行 python 脚本。我知道这不是一个“工作”脚本,但由于我不断收到错误消息,我开始将脚本缩短到这一点。
我尝试重新安装 tensorflow 并更改我的 LD_LIBRARY_PATH (仅针对一个会话,没有持久性)。
预先感谢您的帮助。
guix - GNU/GUIX 无法定位清单中指定的自定义模块
我正在尝试guix package
为以下清单运行安装:
清单中的自定义模块声明如下:
安装命令如下所示:
该命令失败并显示错误消息:
guix 包:错误:noguix-hugo:未知包
但是,构建noguix-hugo
usingguix build
命令工作得很好
我的问题:
为什么 Guix 在构建模块时成功定位模块,但在清单文件中指定时似乎无法定位模块。
我什至尝试将 a 添加(use-modules (nonguix-hugo))
到 [1] 中指定的清单和设置GUIX_PACKAGE_PATH
,但安装仍然失败。
参考
[1] https://guix.gnu.org/manual/en/html_node/Package-Modules.html
automated-tests - Azure GUIX 自动化测试
可以为使用 Azure GUIX 设计的任何 UI 实施自动化 UI 测试吗?我遇到了一个较早的帖子,问同样的问题。
我搜索了 Azure 测试工具,但找不到太多内容。有什么建议么?
cross-compiling - 使用 guix build 交叉编译缺少的目标
例如,我可以为目标构建mips64el-linux-gnu
:
但不适用于目标mipsel-linux-gnu
:
如何为这个目标构建?或者至少找出可用目标的完整列表?