Мутобиқсозии Debian барои истифодаи татбиқи Rust coreutils

Силвестр Ледру, ки бо кори худ дар сохтани Debian GNU/Linux бо истифода аз компилятори Clang маъруф аст, аз таҷрибаи бомуваффақият бо истифода аз маҷмӯи алтернативии утилитаҳо, coreutils, ки бо забони Rust аз нав навишта шудааст, хабар дод. Coreutils дорои утилитаҳо ба монанди sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln ва ls мебошад. Барои марҳилаи якуми ҳамгироӣ ба Debian версияи Rust coreutils, ҳадафҳои зерин гузошта шуданд:

  • Як алтернативаи Rustро ба coreutils барои Debian ва Ubuntu баста кунед.
  • Боркунии Debian бо мизи кории GNOME бо истифода аз rust-coreutils.
  • Насб кардани 1000 бастаҳои маъмултарин аз анбор.
  • Аз манбаъҳои ядрои Firefox, LLVM/Clang ва Linux дар муҳити дорои rust-coreutils созед.

Пас аз эҷоди беш аз 100 часпакҳо барои Rust/coreutils, мо тавонистем бомуваффақият ба ҳама ҳадафҳои пешбинишуда ноил гардем. Корҳои ҷорӣ татбиқи утилитаҳо ва вариантҳои гумшуда, баланд бардоштани сифат ва якрангии код, таҳияи пакети санҷишӣ ва рафъи садамаҳоеро дар бар мегирад, ки ҳангоми иҷро кардани пакети санҷишӣ аз GNU Coreutils (141 санҷиш аз 613 то ҳол бомуваффақият иҷро карда мешаванд) ).

Ҳангоми эҷоди бастаи rust-coreutils, тасмим гирифта шуд, ки бастаи coreutils иваз карда нашавад, балки қобилияти кор кардан дар баробари онҳо фароҳам оварда шавад. Имконоти утилитӣ дар забони Rust дар /usr/lib/cargo/bin/ насб карда шудаанд ва бо илова кардани ин директория ба тағирёбандаи муҳити PATH фаъол карда мешаванд. Эҷоди бастаи rust-coreutils аз сабаби зарурати зеркашии ҳама вобастагии сохтмон ба анбор, аз ҷумла Rust ва бастаҳои гуногуни қуттиҳои хурд душвор буд.

Эҷоди тасвири пурборкунанда мушкил набуд, аммо мутобиқ кардани бастаҳо барои муҳити дорои rust-coreutils кори зиёдеро талаб мекард, зеро бисёре аз скриптҳои пас аз насбкунӣ утилитаҳоро аз маҷмӯи coreutils даъват мекунанд. Миқдори зиёди мушкилот аз набудани имконоти зарурӣ ба вуҷуд омадаанд, масалан, утилитаи "cp" имконоти "--archive" ва "--no-dereference" -ро надошт, "ln" "-" -ро дастгирӣ накард. нисбӣ" хосият, mktemp пуштибонӣ намекунад "-t" , дар ҳамоҳангсозии "-fs", дар насб - "--owner" ва "-group". Мушкилоти дигар аз сабаби тафовут дар рафтор ба миён омаданд, масалан, утилитаи насбкунӣ нишон додани /dev/null ҳамчун файли вурудро дастгирӣ намекунад, mkdir ба ҷои "-parent" ва ғайра имконоти "--parents" дошт.

Ҳангоми санҷиши монтажи пойгоҳҳои коди калон ягон мушкилоти ҷиддӣ ба миён наомад. Ҳангоми сохтани Firefox ва LLVM/Clang, скриптҳои python ва cmake истифода мешаванд, аз ин рӯ иваз кардани coreutils ба онҳо таъсир нарасонд. Сохтани ядрои Linux нисбатан осонтар буд ва танҳо ду мушкилот ба миён омад: баромади хато ҳангоми истифодаи chown бо истиноди рамзӣ ва набудани опсияи "-n" дар утилитаи ln.

Манбаъ: opennet.ru

Илова Эзоҳ