Ik “heb erover nagedacht om het gebruik van GNU Coreutils op mijn Linux-systemen stop te zetten, maar om eerlijk te zijn, in tegenstelling tot veel andere GNU-componenten, kan ik denk aan alternatieven (op Linux) . Welke alternatieven zijn er voor GNU coreutils? heb ik meer dan één pakket nodig? Links naar het project zijn een must, bonuspunten voor het benoemen van distro-pakketten.
Geef ook geen suggesties voor dingen tenzij je weet dat ze op Linux werken en instructies kunnen raadplegen. I betwijfel of ik “binnenkort van kernel zal wisselen, en ik” ben veel te lui voor iets dat veel verder gaat dan een eenvoudige ./configure; make; make install
. Ik “ga er zeker niet voor C hacken.
waarschuwing: als je distro coreutils gebruikt, kan het verwijderen ervan de manier waarop je distro werkt verstoren. Als u ze echter niet als eerste hebt in uw $PATH
, zou dit niets moeten breken, aangezien de meeste scripts absolute paden zouden moeten gebruiken.
Opmerkingen
- Vreemd genoeg, waarom zoekt u naar alternatieven?
- @xeno ” Robuuster ”
- @xeno Debian gebruikt nu eigenlijk EGLIBC , wat een soort afsplitsing van GLibC is. Maar het volgt GLibC nauw, dus het verschil is ‘ t zo groot.
- Zowel Clang als tcc konden (in elk geval ooit) de Linux-kernel compileren.
- Er zijn mensen die werken aan een GNU-gebruikersland op een BSD-kernel , maar ik heb ‘ niet gehoord van andersom. Echt wisselen van kernel zou gemakkelijker zijn. Je kunt het eerst proberen in een VM als je ‘ ben verlegen.
Beantwoord
busybox
de favoriet van Ingebouwde Linux-systemen.
BusyBox combineert kleine versies van veel gangbare UNIX-hulpprogrammas in een enkel klein uitvoerbaar bestand. Het biedt vervangingen voor de meeste hulpprogrammas die je normaal in GNU fileutils, shellutils, enz. Aantreft. De hulpprogrammas in BusyBox hebben over het algemeen minder opties dan hun complete GNU-neven; De meegeleverde opties bieden echter de verwachte functionaliteit en gedragen zich heel erg als hun GNU-tegenhangers. BusyBox biedt een redelijk complete omgeving voor elk klein of ingebed systeem.
BusyBox is geschreven met het oog op grootte-optimalisatie en beperkte middelen . Het is ook extreem modulair, zodat u tijdens het compileren gemakkelijk opdrachten (of functies) kunt opnemen of uitsluiten. Dit maakt het gemakkelijk om uw embedded systemen aan te passen. Om een werkend systeem te maken, voegt u enkele apparaatknooppunten toe in / dev, een paar configuratiebestanden in / etc en een Linux-kernel.
Je kunt van elke coreutil-naam een link maken naar het binaire bestand busybox en het zal werken. je kunt ook busybox <command>
uitvoeren en het zal werken. Voorbeeld: als je “op Gentoo zit en” je vi
nog niet hebt geïnstalleerd, kun je busybox vi filename
draaien en je “zult in vi . It “s
-
Alpine Linux – gebaseerd op BusyBox en uClibc, hier “s een overzicht
Reacties
- voel je vrij om dit aan te passen met links naar je distro
- ook, dit is een favoriet op embedded, dus hoewel een alternatief het ‘ s waarschijnlijk niet genoeg zal zijn om GNU te vervangen voor mijn desktop / server-omgeving
- Dit is de enige praktische oplossing atm, als je ‘ niet C wilt hacken. En busybox-versies zouden dat moeten zijn behoorlijk standaard conform.
Answe r
Dit is een ouder onderwerp, realiseer ik me. Deze oplossing werd echter nooit genoemd en scoort relatief hoog op Google voor “Linux met bsd userland”.
Er is een andere oplossing: heirloom. Ik weet dat het werkt op Arch, en het is verpakt in de AUR (kijk bijvoorbeeld naar gnu2sysv). Dit zal het coreutils-pakket van Arch vervangen en de erfstukequivalenten leveren. Je kunt over het hele ding lezen op de arch “s wiki: https://wiki.archlinux.org/index.php/Base2heirloom
Antwoord
Bekijk uutils .
Dit is een cross-platform implementatie van de GNU coreutils die is geschreven in Rust. Het heeft een MIT-licentie.Op het moment dat dit antwoord wordt geschreven is het niet 100℅ compleet (enkele cruciale antwoorden ontbreken, zoals ls
en cp
), maar vele andere klaar.
Antwoord
Ik vermoed dat je “moeite zou hebben om van GNU Coreutils af te komen, maar er is” altijd de gelijkwaardige BSD-tools, hoewel het geen drop-in-vervangingen zijn voor de GNU-tools.
Opmerkingen
- hoe zou ik BSD installeren? tools op een Linux-distro? waar zou ik ze krijgen?
- FreeBSD ‘ s volledige besturingssysteem is beschikbaar via CVS freebsd.org/cgi/cvsweb.cgi/src , het zou echter nogal moeilijk zijn om het BSD-gebruikersland te compileren onder een Linux-kernel. GNU ‘ s gebruikersland is waarschijnlijk draagbaarder dan BSD, aangezien GNU ‘ s gebruikersland (tenminste in het begin) werd gebouwd om draagbaar te zijn tussen meerdere kernels.
- dat klinkt als ea PITA, zeker als het ‘ redelijkerwijs mogelijk is, heeft iemand het minstens één keer verpakt voor linux.
- Solaris (vanaf 140 is er ook iets beschikbaar) zou ook een optie zijn. Als je een distro gebruikt, ben je gek. Stop nu. Als je LFS gebruikt, rock on! Veel plezier! Als je een distro maakt, juich ik je moed toe, meneer.
- Ja, ik ‘ ben er niet zeker van ‘ s zelfs mogelijk. Het ‘ is waarschijnlijk eenvoudiger om FreeBSD te installeren en Linux-compatibiliteit in te schakelen. Je kunt de GNU coreutils gemakkelijk laten werken onder FreeBSD, maar niet omgekeerd.
Antwoord
Meestal, wanneer iemand vraagt om weg te komen van iets dat algemeen wordt gebruikt, goed is getest, geverifieerd op veel platforms, is dit een uiterlijke uitdrukking van een onderliggend probleem dat bekend staat als codegeur en de ongecontroleerde accumulatie van technische schuld of “code schuld”. Het GNU-archief had in de loop der jaren een vrij grote hoeveelheid codeschuld opgebouwd, en wanneer een codebase niet goed wordt onderhouden, kan deze een breekpunt bereiken (legacy-code en zelfs morbide legacy-code).
Normaal gesproken zou men met tussenpozen een proces van re-engineering en refactoring uitvoeren om dit onder controle te houden. De echte vraag die hier wordt gesteld, is dus of er een geherstructureerde versie van coreutils is ontwikkeld. Dit omvat natuurlijk de mogelijkheid van een regelrechte vervanging (als een speciaal geval) – net zoals Wayland wordt gepitcht voor X … veel van zijn ontwikkelaars komen rechtstreeks uit het X-kamp.
Mijn suggestie is om daadwerkelijk naar binnen te gaan en coreutils te refactoren. Iemand moet het doen. En wie de kwestie van het vervangen van coreutils aan de orde stelt – jouw idee van je project.
Profiteer hiervoor van elke automatisering die je kunt vinden: refactoring-engines, zoals cscout, of iets dat meer geavanceerde analyse- / synthesemethoden toepast (bijv. formele conceptroosters). Maar diepgaande analyse is nog steeds een relatief nieuw en open gebied van actief onderzoek – en gaat over naar kunstmatige intelligentie. (Een robotsoftware-engineer.)
De meeste hulpprogrammas zouden al testsuites moeten hebben, dus validatie kan worden gedaan met progressieve stapsgewijze verandering + geautomatiseerde regressieteststappen; wat behoorlijk snel kan gaan (bijv. 10 of meer revisie-updates / dag). Een complicatie bij dit proces doet zich voor als er ergens in de softwaresuite hardware- of softwareafhankelijkheden op laag niveau zijn; aangezien dat validatie op meerdere platforms met zich meebrengt. Ik weet niet veel van wat er in coreutils zit; er zou een soort scheiding in moeten zitten van de hardware of low-level softwarelagen (bijv. Het aantal plaatsen waar coreutils weet welk type bestandssysteem waarop het staat, zou minimaal moeten zijn of, beter, nul.) Emulators en virtuele machines, die worden gebruikt voor het uitvoeren van tests op meerdere platforms, hebben beperkingen. Mac OS X is bijvoorbeeld specifiek ontworpen om de mogelijkheid te om het te emuleren of VM te maken.
Answer
Solaris (vanaf svn_140-something) zou ook een optie zijn.
Als je een distro gebruikt, ben je gek. Stop nu. Zoek psychiatrische hulp.
Als je LFS gebruikt, rock on! Veel plezier!
Als je een distro maakt, juich ik je moed toe, meneer.
Reacties
- dit isn ‘ een vraag over ” welke distro ” kan ik gebruiken, het
s over het vervangen van coreutils op Linux. Tenzij u ‘ verwijst naar opensolaris coreutils? is dit ook minder een PITA dan de FreeBSD-optie?
- De broncode voor OpenSolaris is gewoon Solaris. De Solaris-broncode tot svn_14x werd vrijgegeven door Sun / Oracle onder CDDL. Er zijn in feite drie belangrijke erfgoederen voor Unix-gebruikersland.” Genetisch ” Unix (Solaris, AIX, True64, etc., afkomstig van AT & T-code en is grotendeels gesloten, maar Solaris was een tijdje open), BSD (die er uiteindelijk op stond ‘ eigen vanaf 4.4-lite) en GNU. Maar ik denk dat het even moeilijk (of gemakkelijk) zal zijn om van GNU af te stappen, of je nu voor BSD of Solaris gaat. Of je kunt heel ambitieus worden en xenocore-utils maken 😉