他们要求让Debian适应使用coreutils的Rust实现

西尔维斯特·莱德鲁(Sylvestre Ledru) (以使用Clang编译器构建Debian GNU / Linux而闻名的开发人员) 最近发布了有关实验的报告 成功 用Rust重写的一组替代实用程序coreutils。

对于不熟悉Coreutils的用户,您应该知道它包括诸如sort,cat,chmod,chown,chroot,cp,date,dd,echo,hostname,id,ln和ls之类的实用程序。 西尔维斯特·莱德鲁(Sylvestre Ledru) 提到 为 集成到Debian的第一阶段 Rust中coreutils版本的版本,建立了以下目标:

  • 为Debian和Ubuntu创建一个具有替代Rust Rustutils的软件包。
  • 使用rust-coreutils在Gnome桌面环境中引导Debian。
  • 从存储库中安装1000个最受欢迎的软件包。
  • 使用rust-coreutils从Firefox,LLVM / Clang和Linux内核源进行构建。

和它 在为Rust / coreutils创建了100多个补丁之后,所有预期目标均已成功实现。 目前 正在进行的工作突出了缺少的实用程序和选项的实现,提高代码质量和一致性,开发测试套件,修复运行GNU Coreutils测试套件时发生的错误(到目前为止,在141个测试中,有613个已成功运行)。

另外,还要提到在创建rust-coreutils软件包时,决定不替换该软件包。 coreutils, 但允许它们并行运行。 该实用程序的Rust版本安装在/ usr / lib / cargo / bin /中,并通过将该目录添加到PATH环境变量中来激活。 创建rust-coreutils软件包使得很难下载存储库中的所有构建依赖项,包括Rust和几个小盒子软件包。

我开始为在Rust中开发的替代Coreutils做贡献。 该项目旨在提议直接替代基于C的GNU Coreutils,并希望评估它是否可以用于运行普通的Debian。 与几年前我对clang.debian.net所做的类似(使用clang而不是gcc重建Debian档案)。

希望大多数读者知道Coreutils是什么。 它是一组执行简单操作(复制/移动文件,更改权限/所有权等)的程序。 即使某些命令来自70年代,它们还是Linux,Unix和macOS的核心。 虽然可以找到不同的实现,但是它们正在尝试在参数,选项等方面保持兼容。 Coreutils的这种实现没有什么不同!

另一方面,它提到创建启动映像没有特别的问题。 系统,但是要使软件包适应rust-coreutils环境需要大量的工作,因为许多安装后脚本都调用coreutils套件实用程序,因为大多数问题是由于缺少必要的选项引起的,例如,它提到实用程序“ cp”缺少选项“ -archive”和“ -no-dereference”,而对于“ ln”,它不支持“ -relative”和选项mktemp-“ -t«,Insync»-fs«,in安装-»–所有者«和»–group«。

由于行为差异还出现了其他问题例如,安装实用程序不支持将/ dev / null指定为输入文件,在mkdir中而不是“ -parent”中有一个选项“ -parents”,依此类推。

在Debian中打包并不是一件简单或简单的任务。 它需要独立加载文件中的所有依赖项。 Rust拥有新的生态系统和小盒子,这使这项任务变得更加困难。

在测试大型代码库的构建时,没有重大问题。 在编译Firefox和LLVM / Clang时,使用python和cmake脚本,因此替换coreutils不会影响它们。 Linux内核构建相对平稳,仅出现两个问题:chown与符号链接一起使用时的错误输出,以及ln实用程序中缺少“ -n”选项。

最后 如果您想进一步了解该笔记, 您可以查看详细信息 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。