J'ai pensé à cesser d'utiliser GNU Coreutils sur mes systèmes Linux, mais pour être honnête, contrairement à de nombreux autres composants GNU, je ne peux penser à aucune alternative (sous Linux) . Quelles sont les alternatives à GNU coreutils? aurai-je besoin de plus d'un package? Les liens vers le projet sont un must, des points bonus pour nommer les packages de distribution.
Veuillez également ne pas suggérer des choses à moins que vous sachiez qu'elles fonctionnent sous Linux et que vous pouvez faire référence à des instructions. Je doute que je changerai de noyau bientôt, et je suis beaucoup trop paresseux pour quoi que ce soit au-delà d'une simple ./configure; make; make install
. Je ne vais certainement pas pirater C pour ça.
avertissement: si votre distribution utilise des coreutils, leur suppression pourrait perturber le fonctionnement de votre distribution. Cependant, ne pas les avoir en tête de liste $PATH
ne devrait pas casser les choses, car la plupart des scripts doivent utiliser des chemins absolus.
Réponses:
busybox
le favori des systèmes Linux embarqués.Vous pouvez à peu près faire n'importe quel nom coreutil un lien vers le binaire busybox et cela fonctionnera. vous pouvez également exécuter
busybox <command>
et cela fonctionnera. Exemple: si vous êtes sur Gentoo et que vous n'avez pas encore installé votrevi
, vous pouvez exécuterbusybox vi filename
et vous serez en vi. SesArch Linux - communauté / busybox
Gentoo Linux - sys-apps / busybox
Alpine Linux - basé sur BusyBox et uClibc, voici un aperçu
la source
C'est un sujet plus ancien, je m'en rends compte. Cependant, cette solution n'a jamais été mentionnée et arrive relativement haut sur google pour "Linux avec bsd userland".
Il y a une autre solution: héritage. Je sais que cela fonctionne sur Arch, et il est emballé dans l'AUR (regardez gnu2sysv, par exemple). Cela remplacera le package coreutils d'Arch et fournira les équivalents patrimoniaux. Vous pouvez lire tout sur le wiki d'Arch: https://wiki.archlinux.org/index.php/Base2heirloom
la source
Découvrez les uutils .
Il s'agit d'une implémentation multiplateforme des coreutils GNU qui est écrite en Rust. Il est sous licence MIT. Au moment de la rédaction de cette réponse, elle n'est pas complète à 100℅ (il en manque certaines cruciales comme
ls
etcp
), mais de nombreuses autres sont terminées.la source
Je soupçonne que vous auriez du mal à vous débarrasser de GNU Coreutils, cependant, il y a toujours les outils BSD équivalents, bien qu'ils ne soient pas des remplacements directs pour les outils GNU.
la source
Habituellement, lorsque quelqu'un demande à s'éloigner de quelque chose qui est largement utilisé, bien testé, vérifié sur de nombreuses plates-formes, c'est l'expression extérieure d'un problème sous-jacent appelé "odeur de code" et l'accumulation incontrôlée de "dette technique" ou "code dette". Les archives GNU avaient accumulé une quantité assez importante de dette de code au fil des ans, et lorsqu'une base de code n'est pas correctement entretenue, elle peut atteindre un point de rupture (code hérité, et même code hérité morbide).
Normalement, on mènerait un processus de réingénierie et de refactorisation à intervalles pour garder cela sous contrôle. Donc, la vraie question qui se pose ici est de savoir si une version refactorisée de coreutils a été développée. Cela, bien sûr, inclut la possibilité d'un remplacement pur et simple (comme un cas spécial) - un peu comme Wayland est destiné à être pour X ... beaucoup de ses développeurs viennent directement du camp X.
Ma suggestion est en fait d'aller refactoriser les coreutils. Quelqu'un doit le faire. Et quiconque soulève la question du remplacement des coreutils - votre idée, votre projet.
À cette fin, profitez de toute automatisation que vous pouvez trouver: des moteurs de refactorisation, comme cscout, ou tout ce qui applique des méthodes d'analyse / synthèse plus avancées (par exemple, des réseaux de concepts formels). Mais l'analyse approfondie est encore un domaine relativement nouveau et ouvert de recherche active - et traverse l'intelligence artificielle. (Un ingénieur logiciel robot.)
La plupart des utilitaires devraient déjà avoir des suites de tests en place, de sorte que la validation peut être effectuée avec un changement progressif par étapes + des étapes de test de régression automatisées; qui peut aller assez vite (par exemple 10 mises à jour de révision ou plus / jour). Une complication à ce processus se produit s'il existe des dépendances matérielles ou logicielles de bas niveau n'importe où dans la suite logicielle; car cela implique une validation sur plusieurs plateformes. Je n'en sais pas grand-chose dans les coreutils; il devrait y avoir une sorte de séparation des couches matérielles ou logicielles de bas niveau (par exemple, le nombre d'endroits où coreutils sait quel typedu système de fichiers sur lequel il se trouve doit être minimal ou, mieux, nul.) Les émulateurs et les machines virtuelles, utilisés pour effectuer des tests multiplateformes, ont des limites. Par exemple, Mac OS X est spécifiquement conçu de manière à entraver la possibilité de l'émuler ou de le VM.
la source
Solaris (à partir de svn_140-quelque chose) serait également une option.
Si vous utilisez une distribution, vous êtes fou. Arrêter maintenant. Cherchez de l'aide psychiatrique.
Si vous utilisez LFS , lancez-vous ! S'amuser!
Si vous faites une distribution, j'applaudis votre bravoure monsieur.
la source