{"id":99396,"date":"2021-03-09T22:22:41","date_gmt":"2021-03-09T20:22:41","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/adaptacziya-debian-dlya-ispolzovaniya-realizaczii-coreutils-na-yazyke-rust"},"modified":"2021-03-09T22:22:41","modified_gmt":"2021-03-09T20:22:41","slug":"adaptacziya-debian-dlya-ispolzovaniya-realizaczii-coreutils-na-yazyke-rust","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/adaptacziya-debian-dlya-ispolzovaniya-realizaczii-coreutils-na-yazyke-rust","title":{"rendered":"Debian Adaptation for Rust Implementation of coreutils","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Sylvestre Ledru, known for his work on assembling Debian GNU\/Linux using the Clang compiler, reported the successful completion of an experiment involving an alternative set of coreutils rewritten in Rust. The coreutils include utilities such as sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, and ls. The first phase of integration of the Rust version of coreutils into Debian aimed to achieve the following goals:  <\/p>\n<ul>\n<li class=\"l\"> Create a package with the alternative Rust version of coreutils for Debian and Ubuntu.\n<li class=\"l\"> Download Debian with GNOME desktop, using rust-coreutils.\n<li class=\"l\"> Install the 1000 most popular packages from the repository.\n<li class=\"l\"> Build Firefox, LLVM\/Clang, and the Linux kernel from source in an environment with rust-coreutils.  <\/ul>\n<p>After creating over 100 patches for Rust\/coreutils, all planned goals were successfully implemented. Ongoing work includes implementing missing utilities and options, improving code quality and consistency, developing the test suite, and addressing failures during the test suite run from GNU Coreutils (141 out of 613 tests are currently passing).    <\/p>\n<p>When creating the rust-coreutils package, it was decided not to replace the coreutils package but to allow for their parallel operation. The Rust utility versions are installed in \/usr\/lib\/cargo\/bin\/ and activated by adding this directory to the PATH environment variable. The creation of the rust-coreutils package was complicated by the need to upload all build dependencies to the repository, including Rust and various small crate packages.    <\/p>\n<p>Creating a bootable image was not particularly problematic, but adapting the packages for the environment with rust-coreutils required significant work, as many post-install scripts call utilities from the coreutils set. The majority of issues arose from the lack of necessary options; for example, the utility 'cp' lacked the '--archive' and '--no-dereference' options, 'ln' did not support the '--relative' option, mktemp was missing '-t', sync lacked '-fs', and install did not have '--owner' and '--group'. Other problems emerged due to differences in behavior; for instance, the install utility did not support specifying \/dev\/null as an input file, in mkdir there was an option '--parents' instead of '--parent', and so on.    <\/p>\n<p>During testing of the builds of large codebases, no major issues arose. When building Firefox and LLVM\/Clang, python scripts and cmake are used, so replacing coreutils did not have an impact. The Linux kernel build went relatively smoothly, with only two issues surfacing: an error output when using chown with a symbolic link and the absence of the '-n' option in the ln utility.<br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=54728\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u0438\u043b\u044c\u0432\u0435\u0441\u0442\u0440 \u041b\u0435\u0434\u0440\u044e (Sylvestre Ledru), \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u043f\u043e \u0441\u0431\u043e\u0440\u043a\u0435 Debian GNU\/Linux \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 Clang, \u0441\u043e\u043e\u0431\u0449\u0438\u043b \u043e\u0431 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u043f\u043e \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044e \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0443\u0442\u0438\u043b\u0438\u0442 coreutils, \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust. \u0412 \u0441\u043e\u0441\u0442\u0430\u0432 coreutils \u0432\u0445\u043e\u0434\u044f\u0442 \u0442\u0430\u043a\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b, \u043a\u0430\u043a sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln \u0438 ls. \u0414\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-99396","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0438\u043b\u044c\u0432\u0435\u0441\u0442\u0440 \u041b\u0435\u0434\u0440\u044e (Sylvestre Ledru), \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u043f\u043e \u0441\u0431\u043e\u0440\u043a\u0435 Debian GNU\/Linux \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 Clang, \u0441\u043e\u043e\u0431\u0449\u0438\u043b \u043e\u0431 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u043f\u043e \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044e \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0443\u0442\u0438\u043b\u0438\u0442.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/adaptacziya-debian-dlya-ispolzovaniya-realizaczii-coreutils-na-yazyke-rust\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0410\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044f Debian \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 coreutils \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u0438\u043b\u044c\u0432\u0435\u0441\u0442\u0440 \u041b\u0435\u0434\u0440\u044e (Sylvestre Ledru), \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u043f\u043e \u0441\u0431\u043e\u0440\u043a\u0435 Debian GNU\/Linux \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 Clang, \u0441\u043e\u043e\u0431\u0449\u0438\u043b \u043e\u0431 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u043f\u043e \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044e \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0443\u0442\u0438\u043b\u0438\u0442.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/adaptacziya-debian-dlya-ispolzovaniya-realizaczii-coreutils-na-yazyke-rust\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2021-03-09T20:22:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-03-09T20:22:41+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Adapting Debian for the use of a coreutils implementation in Rust | ProHoster","description":"Sylvestre Ledru, known for his work on building Debian GNU\/Linux using the Clang compiler, reported on the successful execution of an experiment involving an alternative set of utilities.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/adaptacziya-debian-dlya-ispolzovaniya-realizaczii-coreutils-na-yazyke-rust","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0410\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044f Debian \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 coreutils \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust | ProHoster","og:description":"\u0421\u0438\u043b\u044c\u0432\u0435\u0441\u0442\u0440 \u041b\u0435\u0434\u0440\u044e (Sylvestre Ledru), \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u043f\u043e \u0441\u0431\u043e\u0440\u043a\u0435 Debian GNU\/Linux \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 Clang, \u0441\u043e\u043e\u0431\u0449\u0438\u043b \u043e\u0431 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u043f\u043e \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044e \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0443\u0442\u0438\u043b\u0438\u0442.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/adaptacziya-debian-dlya-ispolzovaniya-realizaczii-coreutils-na-yazyke-rust","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2021-03-09T20:22:41+00:00","article:modified_time":"2021-03-09T20:22:41+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"99396","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-09 20:30:02","updated":"2022-09-30 04:09:57","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/99396","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=99396"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/99396\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=99396"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=99396"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=99396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}