Я думал о прекращении использования GNU Coreutils в моих системах Linux, но, честно говоря, в отличие от многих других компонентов GNU, я не могу придумать никаких альтернатив (в Linux) . Какие есть альтернативы GNU coreutils? мне понадобится более одной упаковки? Ссылки на проект являются обязательными, бонусными баллами за наименование дистрибутивных пакетов.
Также, пожалуйста, не предлагайте вещи, если вы не знаете, что они работают в Linux, и можете ссылаться на инструкции. Я сомневаюсь, что скоро переключу ядро, и я слишком ленив для чего-то большего, чем просто ./configure; make; make install
. Я, конечно, не собираюсь взламывать C за это.
предупреждение: если ваш дистрибутив использует coreutils, удаление их может нарушить работу вашего дистрибутива. Однако, если вы не ставите их на первое место, вы $PATH
не должны ломать голову, так как большинство сценариев должны использовать абсолютные пути.
Ответы:
busybox
фаворит встраиваемых систем Linux.Вы можете сделать любое имя coreutil ссылкой на двоичный файл busybox, и оно будет работать. Вы также можете запустить,
busybox <command>
и это будет работать. Пример: если вы используете Gentoo и еще не установили свойvi
, вы можете запуститьbusybox vi filename
и вы будете в vi. ЭтоArch Linux - сообщество / busybox
Gentoo Linux - sys-apps / busybox
Alpine Linux - на основе BusyBox и uClibc, вот обзор
источник
Это старая тема, я понимаю. Тем не менее, это решение никогда не упоминалось и довольно высоко ценится в Google для «Linux с BSD userland».
Есть другое решение: семейная реликвия. Я знаю, что он работает на Arch и упакован в AUR (посмотрите на gnu2sysv, например). Это заменит пакет coreutils Arch и предоставит эквиваленты семейной реликвии. Вы можете прочитать обо всем этом в вики Arch: https://wiki.archlinux.org/index.php/Base2heirloom
источник
Проверьте uutils .
Это кроссплатформенная реализация ядра GNU coreutils, написанная на Rust. Это лицензия MIT. На момент написания этого ответа он не завершен на 100℅ (не хватает некоторых важных, таких как
ls
иcp
), но многие другие уже сделаны.источник
Я подозреваю, что вам будет трудно избавиться от GNU Coreutils, однако, всегда есть эквивалентные инструменты BSD, хотя они не являются заменой для инструментов GNU.
источник
Обычно, когда кто-то просит уйти от того, что широко используется, хорошо протестировано, проверено на многих платформах, это является внешним выражением основной проблемы, известной как «запах кода» и неконтролируемое накопление «технического долга» или «кода». долг». Архив GNU накапливал довольно большую задолженность по коду за эти годы, и, если кодовая база не поддерживается должным образом, она может достичь критической точки (унаследованный код и даже болезненный унаследованный код).
Как правило, можно проводить процесс реинжиниринга и рефакторинга через определенные промежутки времени, чтобы держать его под контролем. Итак, реальный вопрос, который ставится здесь, заключается в том, была ли разработана переработанная версия coreutils. Это, конечно, включает в себя возможность прямой замены (как особый случай) - очень похоже на то, что Вейленд рассчитан на Х ... многие его разработчики выходят прямо из лагеря Х.
Мое предложение состоит в том, чтобы на самом деле пойти и рефакторинг coreutils. Кто-то должен это сделать. А кто бы ни поднимал вопрос о замене coreutils - ваша идея вашего проекта.
Для этого используйте все средства автоматизации, которые вы можете найти: механизмы рефакторинга, такие как cscout, или все, что использует более продвинутые методы анализа / синтеза (например, формальные концептуальные решетки). Но глубокий анализ все еще является относительно новой и открытой областью активных исследований - и переходит к искусственному интеллекту. (Робот-программист.)
Большинство утилит уже должны иметь на своем месте наборы тестов, поэтому проверка может быть выполнена с постепенным пошаговым изменением + автоматизированные этапы регрессионного тестирования; который может идти довольно быстро (например, 10 или более обновлений в день). Усложнение этого процесса происходит, если в программном комплексе есть аппаратные или низкоуровневые программные зависимости; так как это влечет за собой проверку на нескольких платформах. Я не знаю много из того, что есть в coreutils; в нем должно быть какое-то отделение от аппаратного или низкоуровневого программного уровня (например, количество мест, где coreutils знает, какого типафайловой системы, в которой она включена, должна быть минимальной или, что еще лучше, нулевой.) Эмуляторы и виртуальные машины, используемые для целей многоплатформенного тестирования, имеют ограничения. Например, Mac OS X специально разработана таким образом, чтобы препятствовать возможности эмулировать или виртуализировать ее.
источник
Solaris (по состоянию на svn_140-что-то) также будет вариант.
Если вы используете дистрибутив, вы сумасшедший. Остановить сейчас. Обратиться за психиатрической помощью.
Если вы используете LFS , качайте! Повеселись!
Если вы создаете дистрибутив, я приветствую вашу храбрость, сэр.
источник