Uvažoval jsem o ukončení používání GNU Coreutils na mých systémech Linux, ale abych byl upřímný, na rozdíl od mnoha jiných GNU komponent nemůžu myslete na jakékoli alternativy (v systému Linux) . Jaké alternativy existují k GNU coreutils? budu potřebovat více než jedno balení? Odkazy na projekt jsou nutností, bonusové body za pojmenování distribučních balíčků.
Také prosím nenavrhujte věci, pokud nevíte , že fungují na Linuxu a můžete odkazovat na pokyny. I Pochybuji, že brzy vyměním jádra, a jsem příliš líný na cokoli, co přesahuje přímý ./configure; make; make install
. Určitě za to nebudu hackovat C.
varování: pokud vaše distribuce používá coreutils, jejich odstranění by mohlo narušit fungování vaší distribuce. Nemáte-li však být první ve svých $PATH
neměli byste věci rozbít, protože většina skriptů by měla používat absolutní cesty.
Komentáře
- Kupodivu, proč hledáte alternativy?
- @xeno “ Robustnější „? Mějte také na paměti, že váš systém (včetně jádra) je z velké části postaven na GCC a závisí na GLibC 🙂
- @xeno Debian ve skutečnosti nyní používá EGLIBC , což je druh vidlice GLibC. Sleduje však GLibC pečlivě, takže rozdíl není ‚ t tak velký.
- Clang i tcc mohli (každopádně najednou) sestavit linuxové jádro.
- Na GNU uživatelské zemi na BSD jádru pracují lidé , ale já jsem ‚ neslyšel o opačném směru. Skutečné přepínání jader by bylo jednodušší. Nejprve to můžete vyzkoušet na virtuálním počítači, pokud ‚ plachý.
Odpovědět
busybox
oblíbené Integrované systémy Linux.
BusyBox kombinuje drobné verze mnoha běžných obslužných programů UNIX do jednoho malého spustitelného souboru. Poskytuje náhradu za většinu nástrojů, které obvykle najdete v GNU fileutils, shellutils atd. Nástroje v BusyBoxu mají obecně méně možností než jejich plnohodnotní bratranci GNU; Zahrnuté možnosti však poskytují očekávanou funkčnost a chovají se velmi podobně jako jejich protějšky GNU. BusyBox poskytuje poměrně úplné prostředí pro jakýkoli malý nebo vestavěný systém.
BusyBox byl napsán s ohledem na optimalizaci velikosti a omezené zdroje . Je také extrémně modulární, takže můžete snadno zahrnout nebo vyloučit příkazy (nebo funkce) v době kompilace. To usnadňuje přizpůsobení vašich vestavěných systémů. Chcete-li vytvořit funkční systém, stačí přidat několik uzlů zařízení do / dev, několik konfiguračních souborů v / etc a jádro Linuxu.
Jakýkoli název coreutil můžete do značné míry vytvořit jako odkaz na binární soubor busybox a bude fungovat. můžete také spustit busybox <command>
a bude to fungovat. Příklad: pokud jste na Gentoo a ještě nemáte nainstalovaný váš vi
, můžete spustit busybox vi filename
a budete ve vi . Je to
-
Alpine Linux – na základě BusyBox a uClibc, zde je přehled
Komentáře
- neváhejte to upravit pomocí odkazů na své distribuční
- také, toto je oblíbený na embedded, takže i když alternativa to ‚ s pravděpodobně nebude stačit nahradit GNU pro mé desktopové / serverové prostředí
- Toto je jediné praktické řešení, pokud ‚ nechcete hacknout C. A verze busyboxu by měly být docela standardní vyhovující.
Answe r
Uvědomuji si, že toto je starší téma. Toto řešení však nikdy nebylo zmíněno a na Googlu se objevuje relativně vysoko pro „Linux s uživatelskou zemí bsd“.
Existuje další řešení: dědictví. Vím, že funguje na Archu a je zabaleno v AUR (podívejte se například na gnu2sysv). Toto nahradí balíček coreutils Archu a poskytne ekvivalenty dědictví. O celé věci si můžete přečíst na wiki archivu: https://wiki.archlinux.org/index.php/Base2heirloom
Odpověď
Podívejte se na uutils .
Toto je multiplatformní implementace GNU coreutils, která je napsána v Rustu. Je licencován MIT.V době psaní této odpovědi není 100℅ úplná (chybí některé zásadní, jako jsou ls
a cp
), ale mnoho dalších jsou hotové.
Odpověď
Mám podezření, že se GNU Coreutils zbavíte jen těžko, nicméně vždy ekvivalentní nástroje BSD, i když nejsou náhradami za GNU nástroje.
Komentáře
- jak bych postupoval při instalaci BSD nástroje na distribuci Linuxu? kde bych je získal?
- FreeBSD ‚ celý OS je k dispozici prostřednictvím CVS freebsd.org/cgi/cvsweb.cgi/src , ale získání kompilace uživatelské země BSD pod linuxovým jádrem by bylo dost obtížné. GNU ‚ s pravděpodobně přenosnější než BSD, protože uživatelská země GNU ‚ (alespoň na začátku) byla vytvořena tak, aby byla přenositelná mezi více jádry.
- to zní jako ea PITA, určitě, je-li to ‚ s rozumně možné, někdo to někde zabalil alespoň jednou pro linux.
- Solaris (k dispozici je také 140-něco) by také byla možnost. Pokud používáte distro, jste blázen. Okamžitě přestaň. Pokud používáte LFS , pokračujte! Bavte se! Pokud děláte distro, tleskám vaší odvaze, pane.
- Ano, ‚ si nejsem jistý, ‚ je to dokonce možné. ‚ d pravděpodobně bude jednodušší jednoduše nainstalovat FreeBSD a povolit linuxovou kompatibilitu. GNU coreutils můžete snadno pracovat pod FreeBSD, ale ne naopak.
Odpověď
Obvykle když někdo požádá, aby se dostal pryč od něčeho, co je „široce používáno, dobře testováno a ověřeno na mnoha platformách, je to vnější vyjádření základního problému známého jako„ vůně kódu “a nekontrolované hromadění„ technického dluhu “nebo „kódový dluh“. Archiv GNU si za ta léta vybudoval poměrně velké množství dluhu na kódu, a pokud není správně udržována základna kódu, může dosáhnout bodu zlomu (starší kód a dokonce i morbidní starší kód).
Normálně , jeden by provedl proces re-inženýrství a refaktorování v intervalech, aby to měl pod kontrolou. Skutečnou otázkou, která se zde klade, je, zda byla vyvinuta refaktorovaná verze coreutils. To samozřejmě zahrnuje možnost přímé náhrady (jako zvláštní případ) – podobně jako se Wayland prezentuje jako X … mnoho z jeho vývojářů přichází přímo z tábora X.
Můj návrh je skutečně jít dovnitř a refaktorovat coreutils. Někdo to musí udělat. A kdokoli nastolí problém s výměnou coreutilů – váš nápad je váš projekt.
Za tímto účelem využijte jakoukoli automatizaci, kterou najdete: refaktorovací motory, jako je cscout, nebo cokoli, co používá pokročilejší metody analýzy / syntézy (např. formální koncepční mřížky). Hluboká analýza je však stále relativně novou a otevřenou oblastí aktivního výzkumu – a přechází do umělé inteligence. (Softwarový inženýr robotů.)
Většina obslužných programů by již měla mít testovací sady zavedené, takže ověření lze provést pomocí postupné postupné změny + automatizované kroky regresní testování; což může jít docela rychle (např. 10 nebo více aktualizací za den). Komplikace tohoto procesu nastává, pokud kdekoli v softwarové sadě existují závislosti na hardwaru nebo softwaru na nízké úrovni; protože to znamená ověření na více platformách. Nevím moc o tom, že existuje v coreutils; měl by v tom být nějaký druh oddělení od hardwarových nebo nízkoúrovňových softwarových vrstev (např. Počet míst, kde coreutils ví, jaký typ z souborový systém, na kterém je spuštěn, by měl být minimální nebo, lépe, nulový.) Emulátory a virtuální stroje, které se používají pro účely testování více platforem, mají svá omezení. Například Mac OS X je speciálně navržen tak, aby bránil schopnosti emulovat nebo jej VM.
Odpověď
Solaris (od svn_140-something) by byl také volbou.
Pokud používáte distro, jste blázni. Přestaňte hned. Vyhledejte psychiatrickou pomoc.
Pokud používáte LFS , rock on! Bavte se!
Pokud děláte distro, tleskám vaší odvaze, pane.
Komentáře
- toto není ‚ ta otázka ohledně “ které distro “ mohu použít,
o nahrazení coreutils v systému Linux. Pokud ‚ nemluvíte o opensolaris coreutils? také je to méně PITA než možnost FreeBSD?
- Zdrojový kód pro OpenSolaris je pouze Solaris. Zdrojový kód Solarisu až do vydání svn_14x společností Sun / Oracle pod CDDL. Pro unixovou uživatelskou zemi existují v zásadě tři hlavní dědictví.“ Genetické “ Unix (Solaris, AIX, True64 atd., který pochází z AT & T kód a je z velké části uzavřen, ale Solaris byl na nějaký čas otevřený), BSD (které na něm nakonec stálo ‚ vlastní od 4.4-lite) a GNU. Ale myslím si, že odklon od GNU bude stejně obtížný (nebo snadný), ať už jde o BSD nebo Solaris. Nebo můžete být opravdu ambiciózní a vytvářet xenocore-utils 😉