Jag har funderat på att avbryta användningen av GNU Coreutils på mina Linux-system, men för att vara ärlig, till skillnad från många andra GNU-komponenter, kan jag inte tänk på några alternativ (på Linux) . Vilka alternativ finns det till GNU coreutils? behöver jag mer än ett paket? Länkar till projektet är ett måste, bonuspoäng för att namnge distropaket.
Föreslå inte heller saker om du inte vet att de fungerar på Linux och kan hänvisa till instruktioner. tvivlar på att jag snart kommer att byta kärnor och jag är alltför lat för någonting som är mycket mer än en enkel ./configure; make; make install
. Jag kommer verkligen inte att hacka C för det.
varning: om din distro använder kärnverktyg kan du ta bort dem så att din distro fungerar. Att inte ha dem är först i din $PATH
borde inte bryta saker, eftersom de flesta skript ska använda absoluta sökvägar.
Kommentarer
- Nyfiken, varför letar du efter alternativ?
- @xeno ” Mer robust ”? Tänk också på att ditt system (inklusive kärnan) till stor del är byggt med GCC och beror på GLibC 🙂
- @xeno Debian använder faktiskt nu EGLIBC , vilken typ av GLibC-gaffel. Men den följer GLibC noga, så skillnaden är ’ t så stor.
- Både Clang och tcc kunde (samtidigt, i alla fall) kompilera Linux-kärnan.
- Det finns människor som arbetar på en GNU-användarland på en BSD-kärna , men jag har inte ’ jag har inte hört talas om tvärtom. Det skulle vara lättare att byta kärnor. Du kan prova det först i en virtuell dator om du ’ är blyg.
Svar
busybox
favorit av Inbäddade Linux-system.
BusyBox kombinerar små versioner av många vanliga UNIX-verktyg i en enda liten körbar. Det tillhandahåller ersättare för de flesta verktyg som du brukar hitta i GNU-filutrustning, shellutils etc. Verktygen i BusyBox har i allmänhet färre alternativ än deras fullfjädrade GNU-kusiner; Alternativen som ingår ger dock den förväntade funktionaliteten och beter sig väldigt mycket som deras GNU-motsvarigheter. BusyBox ger en ganska komplett miljö för alla små eller inbäddade system.
BusyBox har skrivits med storleksoptimering och begränsade resurser i åtanke . Det är också extremt modulärt så att du enkelt kan inkludera eller utesluta kommandon (eller funktioner) vid kompileringen. Detta gör det enkelt att anpassa dina inbäddade system. För att skapa ett fungerande system, lägg bara till några enhetsnoder i / dev, några konfigurationsfiler i / etc och en Linux-kärna.
Du kan i stort sett göra alla coreutil-namn till en länk till upptagenboxens binära och det fungerar. Du kan också köra busybox <command>
så fungerar det. Exempel: om du ”är på Gentoo och inte har installerat din vi
än kan du köra busybox vi filename
och du kommer att vara i vi . Det ”s
-
Alpine Linux – baserat på BusyBox och uClibc, här är en översikt
Kommentarer
- ändra gärna detta med länkar till din distro
- också, det här är en favorit på inbäddad, så även om det ’ antagligen inte kommer att vara tillräckligt för att ersätta GNU för min skrivbords- / servermiljö
- Detta är den enda praktiska lösningen atm, om du inte ’ inte vill hacka C. Och upptagenboxversioner borde vara ganska standard överensstämmer.
Answe r
Det här är ett äldre ämne, inser jag. Denna lösning nämndes dock aldrig och kommer relativt högt upp på google för ”Linux med bsd userland”.
Det finns en annan lösning: arvegods. Jag vet att det fungerar på Arch och att det är förpackat i AUR (se till exempel på gnu2sysv). Detta kommer att ersätta Arch ”s coreutils-paketet och ge arvsmotsekvivalenterna. Du kan läsa om det hela på archs wiki: https://wiki.archlinux.org/index.php/Base2heirloom
Svar
Kolla in verktyg .
Detta är en plattformsimplementering av GNU coreutils som är skriven i Rust. Det är MIT-licensierat.När detta svar skrivs är det inte 100℅ komplett (saknas några viktiga som ls
och cp
), men många andra är klara.
Svar
Jag misstänker att du skulle ha svårt att bli av med GNU Coreutils, men det finns alltid motsvarande BSD-verktyg, även om de inte ersätter GNU-verktygen.
Kommentarer
- hur skulle jag gå till installationen av BSD verktyg på en Linux-distro? var skulle jag få dem?
- FreeBSD ’ hela operativsystemet är tillgängligt via CVS freebsd.org/cgi/cvsweb.cgi/src , men att få BSD-användarlandet att kompilera under en Linux-kärna skulle vara ganska svårt. GNU ’ s användarland är förmodligen mer bärbar än BSD, eftersom GNU ’ s användarland (åtminstone i början) byggdes för att vara bärbart mellan flera kärnor.
- det låter lik ea PITA, se till att det ’ är rimligt möjligt att någonstans någonstans har packat det åtminstone en gång för Linux.
- Solaris (från och med 140-något finns också tillgängligt) skulle också vara ett alternativ. Om du använder en distro är du galen. Sluta nu. Om du använder LFS , fortsätt! Ha så kul! Om du gör en distro applåderar jag din tapperhet.
- Ja, jag ’ jag är inte säker på att det ’ det är även möjligt. Det ’ skulle förmodligen vara lättare att bara installera FreeBSD och aktivera Linux-kompatibilitet. Du kan enkelt få GNU-coreutils att fungera under FreeBSD, men inte tvärtom.
Svar
Vanligtvis, när någon ber om att komma bort från något som ”är i utbredd användning, väl testat, verifierat på många plattformar, är det ett yttre uttryck för ett underliggande problem som kallas” kodlukt ”och den okontrollerade ackumuleringen av” teknisk skuld ”eller ”kodskuld”. GNU-arkivet hade byggt upp en ganska stor mängd kodskuld genom åren, och när en kodbas inte underhålls ordentligt kan den nå en brytpunkt (äldre kod och till och med sjuklig äldre kod).
Normalt , skulle man genomföra en process med ombyggnad och ombyggnad med jämna mellanrum för att hålla detta under kontroll. Så den verkliga frågan som ställs här är huruvida en ombyggd version av coreutils har utvecklats. Detta inkluderar naturligtvis möjligheten till en direkt ersättning (som ett speciellt fall) – ungefär som Wayland sätts upp för att vara för X … många av dess utvecklare kommer rakt ut ur X-lägret.
Mitt förslag är att faktiskt gå in och refaktorera coreutils. Någon måste göra det. Och vem som tar upp frågan om att ersätta coreutils – din idé ditt projekt.
För detta ändamål, dra nytta av vilken automatisering du kan hitta: refactoring motorer, som cscout, eller något som tillämpar mer avancerade analys- / syntesmetoder (t.ex. formella konceptgaller). Men djup analys är fortfarande ett relativt nytt och öppet område för aktiv forskning – och går över till artificiell intelligens. (En robotprogramvarutekniker.)
De flesta verktyg bör redan ha testsviter på plats, så validering kan göras med progressiva stegvisa förändringar + automatiserade regressionsteststeg; vilket kan gå ganska snabbt (t.ex. 10 eller fler uppdateringsuppdateringar / dag). En komplikation till denna process inträffar om det finns hårdvaru- eller programvaruberoenden på låg nivå någonstans i programvarupaketet. eftersom det innebär validering på flera plattformar. Jag vet inte mycket av det som finns i coreutils. Det borde finnas någon form av separation i det från hårdvaran eller mjukvarulager på låg nivå (t.ex. antalet platser där coreutils vet vilken typ av filsystem det är på bör vara minimalt eller, bättre, noll.) Emulatorer och virtuella maskiner, som används för att göra flera plattformstester, har begränsningar. Till exempel är Mac OS X speciellt utformad på ett sätt för att hindra förmågan för att emulera eller VM det.
Svar
Solaris (från och med svn_140-något) skulle också vara ett alternativ.
Om du använder en distro är du galen. Sluta nu. Sök psykiatrisk hjälp.
Om du använder LFS , rock on! Ha kul!
Om du gör en distro, applåderar jag din tapperhet.
Kommentarer
- detta isn ’ en fråga om ” vilken distro ” kan jag använda, den
om att ersätta coreutils på Linux. Om du inte ’ hänvisar till opensolaris coreutils? är det också en mindre PITA än FreeBSD-alternativet?
- Källkoden för OpenSolaris är bara Solaris. Solaris-källkoden fram till svn_14x släpptes av Sun / Oracle under CDDL. Det finns i princip tre huvudarv för Unix användarland.” Genetisk ” Unix (Solaris, AIX, True64, etc., som kom från AT & T-kod och är till stor del stängd, men Solaris var öppen en tid), BSD (som äntligen stod på den ’ s egen från 4.4-lite) och GNU. Men jag tror att det är lika svårt (eller enkelt) att flytta bort från GNU oavsett om du går med BSD eller Solaris. Eller så kan du bli riktigt ambitiös och göra xenocore-verktyg 😉