Адаптация Debian для использования реализации coreutils на языке Rust
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Сильвестр Ледрю (Sylvestre Ledru), известный своей работой по сборке Debian GNU/Linux с использованием компилятора Clang, сообщил об успешном проведении эксперимента по задействованию альтернативного набора утилит coreutils, переписанного на языке Rust. В состав coreutils входят такие утилиты, как sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. Для первого этапа интеграции в Debian варианта coreutils на языке Rust были поставлены следующие цели:
- Создание пакета с альтернативным вариантом coreutils на языке Rust для Debian и Ubuntu.
- Загрузка Debian с рабочим столом GNOME, используя rust-coreutils.
- Установка 1000 наиболее популярных пакетов из репозитория.
- Cборка из исходных текстов 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 и различные мелки crate-пакеты.
С созданием загрузочного образа особых проблем не возникло, но адаптация пакетов для окружения с rust-coreutils потребовала большой работы, так как многие скрипты post-install вызывают утилиты из набора coreutils. Наибольшее число проблем было вызвано отсутствием необходимых опций, например, в утилите "cp" отсутствовали опции "--archive" и "--no-dereference", в "ln" не было поддержки опции "--relative", в mktemp - "-t", в sync "-fs", в install - "--owner" и "--group". Другие проблемы всплыли из-за различий в поведении, например, утилита install не поддерживала указание /dev/null в качестве входного файла, в mkdir вместо "--parent" присутствовала опция "--parents" и т.п.
При тестировании сборки крупных кодовых баз больших проблем не возникло. При сборке Firefox и LLVM/Clang применяются python-скрипты и cmake, поэтому замена coreutils на них не повлияла. Сборка ядра Linux прошла относительно гладко, всплыли лишь две проблемы: вывод ошибки при использовании chown с символической ссылкой и отсутствие опции "-n" в утилите ln.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://sylvestre.ledru.info/b...)
- OpenNews: Выпуск операционной системы Redox OS 0.6, написанной на языке Rust
- OpenNews: Выпуск набора базовых системных утилит GNU Coreutils 8.32
- OpenNews: Прогресс в использовании ОС Redox на реальном оборудовании
- OpenNews: Подготовлен вариант GNU Coreutils, переписанный на языке Rust
- OpenNews: Результаты пересборки пакетной базы Debian при помощи Clang 10
Похожие новости:
- [JavaScript, API, Rust, Микросервисы] GraphQL на Rust (перевод)
- [Разработка под Linux, Софт, Здоровье, IT-компании] Google вместе с Debian работают над улучшением проекта Bazel для ковидных исследований
- [Open source, Программирование, Системное программирование, Компиляторы, Rust] Планирование редакции Rust 2021 (перевод)
- [Python, Django, Машинное обучение, Конференции] «Хитрый питон» Михаил Корнеев, Григорий Петров, Илья Беда и другие классные спикеры-тезисы выступлений на PyCon Weekend
- [Программирование, Разработка мобильных приложений, Rust] Запускаем Rust-приложение на мобильной ОС Аврора
- Проект Debian запустил сервис для динамического получения отладочной информации
- [Программирование, Java, Совершенный код, C#, Kotlin] Лучший язык программирования
- [Настройка Linux, *nix, Разработка под Linux, DevOps] Creating and using your own deb repository (not mirroring)
- [Информационная безопасность, Системное администрирование, IT-инфраструктура, Серверное администрирование] Аудит событий Active Directory и других решений Microsoft в Quest Change Auditor — анонс вебинара
- Google занялся продвижением средств безопасной работы с памятью в открытом ПО
Теги для поиска: #_coreutils, #_debian, #_rust
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 20:25
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Сильвестр Ледрю (Sylvestre Ledru), известный своей работой по сборке Debian GNU/Linux с использованием компилятора Clang, сообщил об успешном проведении эксперимента по задействованию альтернативного набора утилит coreutils, переписанного на языке Rust. В состав coreutils входят такие утилиты, как sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. Для первого этапа интеграции в Debian варианта coreutils на языке Rust были поставлены следующие цели:
При создании пакета rust-coreutils было решено не заменять пакет coreutils, а обеспечить возможность их параллельной работы. Варианты утилит на языке Rust устанавливаются в /usr/lib/cargo/bin/ и активируются через добавление данного каталога в переменную окружения PATH. Создание пакета rust-coreutils усложняла необходимость загрузки в репозиторий и всех сборочных зависимостей, включая Rust и различные мелки crate-пакеты. С созданием загрузочного образа особых проблем не возникло, но адаптация пакетов для окружения с rust-coreutils потребовала большой работы, так как многие скрипты post-install вызывают утилиты из набора coreutils. Наибольшее число проблем было вызвано отсутствием необходимых опций, например, в утилите "cp" отсутствовали опции "--archive" и "--no-dereference", в "ln" не было поддержки опции "--relative", в mktemp - "-t", в sync "-fs", в install - "--owner" и "--group". Другие проблемы всплыли из-за различий в поведении, например, утилита install не поддерживала указание /dev/null в качестве входного файла, в mkdir вместо "--parent" присутствовала опция "--parents" и т.п. При тестировании сборки крупных кодовых баз больших проблем не возникло. При сборке Firefox и LLVM/Clang применяются python-скрипты и cmake, поэтому замена coreutils на них не повлияла. Сборка ядра Linux прошла относительно гладко, всплыли лишь две проблемы: вывод ошибки при использовании chown с символической ссылкой и отсутствие опции "-n" в утилите ln. =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 20:25
Часовой пояс: UTC + 5