Aðlögun Debian til að nota Rust útfærslu á coreutils

Sylvestre Ledru, þekktur fyrir vinnu sína við að byggja Debian GNU/Linux með því að nota Clang þýðanda, greindi frá vel heppnaðri tilraun með því að nota annað sett af tólum, coreutils, endurskrifað á Rust tungumálinu. Coreutils inniheldur tól eins og sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln og ls. Fyrir fyrsta stig samþættingar í Debian af Rust útgáfunni af coreutils voru eftirfarandi markmið sett:

  • Pakkaðu Rust valkost við coreutils fyrir Debian og Ubuntu.
  • Ræsir Debian með GNOME skjáborði með því að nota ryð-coreutils.
  • Að setja upp 1000 vinsælustu pakkana úr geymslunni.
  • Byggðu úr Firefox, LLVM/Clang og Linux kjarnauppsprettum í umhverfi með ryðkjarnaútgáfum.

Eftir að hafa búið til meira en 100 plástra fyrir Rust/coreutils gátum við náð öllum tilætluðum markmiðum. Áframhaldandi vinna felur í sér innleiðingu á tólum og valkostum sem vantar, að bæta gæði og einsleitni kóðans, þróa prófunarsvítuna og útrýma hrun sem eiga sér stað þegar prófunarsvítan er keyrð frá GNU Coreutils (141 próf af 613 eru keyrð með góðum árangri hingað til ).

Þegar búið var til ryð-kjarna-pakkann var ákveðið að skipta ekki út kjarna-pakkanum, heldur gefa þeim möguleika á að vinna samhliða. Notavalkostir á Rust tungumálinu eru settir upp í /usr/lib/cargo/bin/ og eru virkjaðir með því að bæta þessari möppu við PATH umhverfisbreytuna. Það var flókið að búa til ryð-coreutils pakkann vegna nauðsyn þess að hlaða niður öllum smíðum í geymsluna, þar á meðal Rust og ýmsa litla rimlakakka.

Það var ekki vandamál að búa til ræsimynd, en aðlögun pakkana fyrir umhverfi með ryð-kjarnaútgáfum krafðist mikillar vinnu, þar sem mörg forskriftir eftir uppsetningu kalla tól úr kjarnaútbúnaðarsettinu. Mestur fjöldi vandamála var af völdum skorts á nauðsynlegum valkostum, til dæmis hafði „cp“ tólið ekki „--archive“ og „--no-dereference“ valkostina, „ln“ studdi ekki „- relative“ valmöguleikann, mktemp studdi ekki “-t” , í samstillingu "-fs", í install - "--owner" og "-group". Önnur vandamál komu upp vegna mismunandi hegðunar, til dæmis studdi uppsetningarforritið ekki að tilgreina /dev/null sem inntaksskrá, mkdir var með “--parents” valmöguleikann í stað “-parent” o.s.frv.

Við prófun á samsetningu stórra kóðagrunna komu engin meiriháttar vandamál upp. Þegar Firefox og LLVM/Clang eru byggðir eru python forskriftir og cmake notuð, þannig að það að skipta um coreutils hafði ekki áhrif á þau. Bygging Linux kjarna gekk tiltölulega vel, aðeins tvö vandamál komu upp: villuúttak þegar chown er notað með táknrænum hlekk og skortur á „-n“ valmöguleika í ln tólinu.

Heimild: opennet.ru

Bæta við athugasemd