Žádají přizpůsobit Debian tak, aby používal implementaci Rustu coreutils

sylvestre ledru (vývojář známý svou prací na sestavování Debianu GNU / Linux pomocí kompilátoru Clang) nedávno vydal zprávu o experimentu úspěšné s alternativní sadou nástrojů, coreutils, přepsaných v Rustu.

Pro ty, kteří Coreutils neznají, měli byste vědět, že zahrnuje nástroje jako sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln a ls. sylvestre ledru zmínit to bod první fáze integrace do Debianu verze coreutils v Rustu, byly stanoveny tyto cíle:

  • Vytvořte balíček s alternativními Rust coreutils pro Debian i Ubuntu.
  • Zavedení Debianu z desktopového prostředí Gnome pomocí rust-coreutils.
  • Nainstalujte 1000 nejpopulárnějších balíčků z úložiště.
  • Vytvářejte ze zdrojů jádra Firefox, LLVM / Clang a Linux s rust-coreutils.

A s tím po vytvoření více než 100 oprav pro Rust / coreutils bylo úspěšně dosaženo všech zamýšlených cílů. Vlastně probíhající práce zdůrazňuje implementaci chybějících nástrojů a možností, zlepšení kvality a konzistence kódu, vývoj testovací sady, oprava chyb, ke kterým dochází při spuštění testovací sady GNU Coreutils (141 z 613 testů zatím běží úspěšně).

Nezapomeňte také, že při vytváření balíčku rust-coreutils bylo rozhodnuto balíček nevyměnit coreutils, ale nechte je běžet paralelně. Rust verze obslužných programů se instalují do adresáře / usr / lib / cargo / bin / a aktivují se přidáním tohoto adresáře do proměnné prostředí PATH. Vytvoření balíčku rust-coreutils zkomplikovalo stažení všech závislostí sestavení v úložišti, včetně Rustu a několika malých balíčků.

Začal jsem přispívat k alternativní Coreutils vyvinuté v Rustu. Cílem projektu je navrhnout přímou náhradu za C založenou na GNU Coreutils a chtěl vyhodnotit, zda by ji bylo možné použít ke spuštění normálního Debianu. Podobně jako to, co jsem udělal s clang.debian.net před několika lety (přestavba archivu Debianu pomocí clangu místo gcc).

Doufám, že většina čtenářů ví, co je Coreutils. Jedná se o sadu programů, které provádějí jednoduché operace (kopírování / přesunutí souboru, změna oprávnění / vlastnictví atd.). I když jsou některé příkazy ze 70. let, jsou jádrem Linuxu, Unixu a macOS. I když lze najít různé implementace, snaží se zůstat kompatibilní, pokud jde o argumenty, možnosti atd. Tato implementace Coreutils se nijak neliší!

Na druhou stranu uvádí, že při vytváření bootovacího obrazu nebyly žádné zvláštní problémy systém, ale přizpůsobení balíčků pro prostředí rust-coreutils vyžadovalo hodně práce, protože mnoho skriptů po instalaci nazývá nástroje sady coreutils, protože většina problémů byla způsobena chybějícími nezbytnými možnostmi, například uvádí, že v utilitě „cp“ chyběly možnosti „–archivovat“ a „–oddereference“, zatímco pro „ln“ nepodporovala „–relative“ a možnost mktemp - „-t«, synchronizovaně »-fs «, V instalaci -» –vlastník «a» –skupina «.

Další problémy vznikly také kvůli rozdílům v chováníNapříklad instalační obslužný program nepodporoval zadání / dev / null jako vstupního souboru, v mkdir místo „–parent“ byla možnost „–parents“ atd.

Balení v Debianu není triviální ani jednoduchý úkol. Vyžaduje nezávislé načtení všech závislostí v souboru. Rust se svým novým ekosystémem a malými krabičkami tento úkol ještě ztěžuje.

Při testování sestavení velkých kódových základen nebyly žádné zásadní problémy. Při kompilaci Firefoxu a LLVM / Clang se používají skripty python a cmake, takže nahrazení coreutilů je neovlivnilo. Sestavení jádra Linuxu bylo relativně plynulé, objevily se pouze dva problémy: chybový výstup při použití chown se symbolickým odkazem a absence možnosti „-n“ v nástroji ln.

Konečně pokud byste chtěli vědět více o poznámce, můžete zkontrolovat podrobnosti Na následujícím odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.