Debiani kohandamine Rusti keeles implementeeritud coreutils'i kasutamiseks

Sylvestre Ledru, tuntud oma töö eest Debian GNU/Linuxi kogumise alal, kasutades Clangi kompilaatorit, teatas, et on edukalt lĂ€bi viinud katse alternatiivse coreutils utiliitide komplekti kasutamiseks, mis on ĂŒmber kirjutatud Rusti keeles. Coreutils sisaldab selliseid utiliite nagu sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln ja ls. Debianisse integreerimise esimese etapi jaoks seati jĂ€rgmised eesmĂ€rgid:

  • Rustis kirjutatud alternatiivsete coreutils paketi loomine Debianile ja Ubuntule.
  • Debiani installimine GNOME töölauaga, kasutades rust-coreutils.
  • 1000 kĂ”ige populaarsema paketi installimine hoidlast.
  • Firefoxi, LLVM/Clangi ja Linuxi tuuma kogumine rust-coreutils keskkonnas.

PĂ€rast enam kui 100 patĆĄi loomist Rust/coreutils'ile Ă”nnestus kĂ”ik seatud eesmĂ€rgid edukalt saavutada. JĂ€tkuvas töös mĂ€rgitakse puuduvate utiliitide ja valikute rakendamine, koodi kvaliteedi ja ĂŒhtsuse parandamine, testimiskogumi arendamine, tĂ”rgete kĂ”rvaldamine, mis tekivad GNU Coreutils'i testimiskogumi kĂ€ivitamisel (praegu on edukalt lĂ€bitud 141 testi 613-st).

Rusti coreutils paketi loomisel otsustati, et coreutils paketti ei asendata, vaid tagatakse nende samaaegne töö. Rusti utiliidid installitakse katalooge /usr/lib/cargo/bin/ ja aktiveeritakse, lisades selle katalooge keskkonnamuutuja PATH. Rusti coreutils paketi loomist keerukaks tegi vajadus laadida hoidlasse kÔik ehitus sÔltuvused, sealhulgas Rust ja erinevad vÀikesed crate-paketid.

SisselĂŒlituspildi loomisel ei tekkinud erilisi probleeme, kuid rust-coreutils keskkonnale pakettide kohandamine nĂ”udis suurt tööd, kuna paljud post-install skriptid kutsuvad esile coreutils komplekti utiliite. KĂ”ige rohkem probleeme tĂ”i kaasa vajalike valikute puudumine. NĂ€iteks utiliidil „cp” puudusid valikud „—archive” ja „—no-dereference”, „ln” ei toetanud valikut „—relative”, mktemp-l puudus „-t”, sync-l „-fs” ja install-l „—owner” ja „—group”. Teised probleemid tulid ĂŒles erinevustest kĂ€itumises. NĂ€iteks utiliit install ei toetanud /dev/null mÀÀramist sisendfailiks, „mkdir” puhul oli „—parent” asemel valik „—parents“ jne.

Suure koodibaaside kogumise testimisel ei tekkinud suuri probleeme. Firefoxi ja LLVM/Clangi kogumisel kasutatakse python-skripte ja cmake'i, seega ei mĂ”jutanud coreutils'i asendamine neid. Linuxi tuuma kogumine kulges suhteliselt sujuvalt, tekkis vaid kaks probleemi: chown'i kasutamisel sĂŒmboolse lingiga genereeritud veateade ja ln utiliidi „-n“ valiku puudumine.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster