M-am gândit să întrerup utilizarea GNU Coreutils pe sistemele mele Linux, dar pentru a fi sincer, spre deosebire de multe alte componente GNU, nu pot gândiți-vă la orice alternative (pe Linux) . Ce alternative există la GNU coreutils? voi avea nevoie de mai multe pachete? Linkurile către proiect sunt obligatorii, puncte bonus pentru denumirea pachetelor de distribuție.

De asemenea, vă rugăm să nu sugerați lucruri decât dacă știți că funcționează pe Linux și pot face referire la instrucțiuni. mă îndoiesc că voi schimba nucleele în curând și sunt mult prea leneș pentru orice altceva decât un simplu ./configure; make; make install. Cu siguranță nu voi hack C pentru el.

avertisment: dacă distribuția dvs. folosește coreutils, eliminarea acestora ar putea rupe modul în care funcționează distribuția dvs. Cu toate acestea, dacă nu le aveți, să fie primul în $PATH nu ar trebui să rupă lucrurile, deoarece majoritatea scripturilor ar trebui să folosească căi absolute.

Comentarii

  • Curios, de ce căutați alternative?
  • @xeno ” Mai robust „? Rețineți, de asemenea, că sistemul dvs. (inclusiv nucleul) este în mare parte construit cu GCC și depinde de GLibC 🙂
  • @xeno Debian utilizează acum EGLIBC , un fel de furculiță GLibC. Dar urmează îndeaproape GLibC, astfel încât diferența este ‘ atât de mare.
  • Atât Clang, cât și tcc ar putea (la un moment dat, oricum) să compileze kernel-ul Linux.
  • Există persoane care lucrează pe un GNU userland pe un kernel BSD , dar ‘ nu am auzit de invers. Într-adevăr schimbarea nucleelor ar fi mai ușoară. Puteți încerca mai întâi într-o VM dacă ‘ re timid.

Răspunde

busybox preferatul de Sisteme Linux încorporate.

BusyBox combină versiuni minuscule ale multor utilități UNIX comune într-un singur executabil mic. Oferă înlocuiri pentru majoritatea utilităților pe care le găsiți în mod obișnuit în fișierele GNU, shellutilele etc. Utilitățile din BusyBox au în general mai puține opțiuni decât verii lor GNU cu funcții complete; cu toate acestea, opțiunile incluse oferă funcționalitatea așteptată și se comportă foarte mult ca omologii lor GNU. BusyBox oferă un mediu destul de complet pentru orice sistem mic sau încorporat.

BusyBox a fost scris având în vedere optimizarea dimensiunilor și resurse limitate . De asemenea, este extrem de modular, astfel încât să puteți include sau exclude cu ușurință comenzile (sau caracteristicile) în timpul compilării. Acest lucru facilitează personalizarea sistemelor încorporate. Pentru a crea un sistem de lucru, trebuie doar să adăugați câteva noduri de dispozitiv în / dev, câteva fișiere de configurare în / etc și un kernel Linux.

Puteți face din orice nume coreutil un link către binarul busybox și va funcționa. puteți rula și busybox <command> și va funcționa. Exemplu: dacă sunteți pe Gentoo și nu ați instalat încă vi, puteți rula busybox vi filename și veți fi în vi . Este „s

Comentarii

  • nu ezitați să modificați acest lucru cu link-uri către distribuția dvs.
  • , de asemenea, acesta este un favorit pentru încorporat, așa că, deși o alternativă, ‘ probabil că nu va fi suficient pentru a înlocui GNU pentru mediul meu desktop / server
  • Aceasta este singura soluție practică ATM, dacă nu ‘ nu doriți să hackerați C. Și versiunile ocupate ar trebui să fie destul de conform standard.

Answe r

Acesta este un subiect mai vechi, îmi dau seama. Cu toate acestea, această soluție nu a fost niciodată menționată și apare relativ sus pe google pentru „Linux cu bsd userland”.

Există o altă soluție: moștenirea. Știu că funcționează pe Arch și este „ambalată în AUR (uitați-vă la gnu2sysv, de exemplu). Acest lucru va înlocui pachetul coreutils al lui Arch și va oferi echivalenții de moștenire. Puteți citi totul despre wiki-ul lui arch: https://wiki.archlinux.org/index.php/Base2heirloom

Răspuns

Verificați uutils .

Aceasta este o implementare multiplataforma a coreutilelor GNU care este scrisă în Rust. Este licențiat MIT.În momentul scrierii acestui răspuns, acesta nu este complet de 100℅ (lipsesc unele cruciale precum ls și cp), dar multe altele sunt terminate.

Răspuns

Bănuiesc că ți-ar fi greu să scapi de GNU Coreutils, totuși, există întotdeauna instrumentele BSD echivalente, deși nu sunt înlocuitoare pentru instrumentele GNU.

Comentarii

  • cum aș merge la instalarea BSD instrumente pe o distribuție Linux? de unde le-aș obține?
  • FreeBSD ‘ întregul sistem de operare este disponibil prin CVS freebsd.org/cgi/cvsweb.cgi/src , totuși, obținerea unui userland BSD pentru a compila sub un kernel Linux ar fi destul de dificil. GNU ‘ s userland este probabil mai portabil decât BSD, deoarece GNU ‘ s userland (cel puțin la început) a fost construit pentru a fi portabil între mai multe nuclee.
  • ea PITA, sigur dacă ‘ este posibil în mod rezonabil că cineva undeva l-a ambalat cel puțin o dată pentru linux.
  • Solaris (de la 140-ceva este, de asemenea, disponibil) ar fi, de asemenea, o opțiune. Dacă folosești o distro, ești nebun. Opreste-te acum. Dacă utilizați LFS , activați! A se distra! Dacă faceți o distribuție, vă aplaud bravură domnule.
  • Da, ‘ nu sunt sigur că ‘ este chiar posibil. ‘ ar fi probabil mai ușor să instalați FreeBSD și să activați compatibilitatea Linux. Puteți obține cu ușurință coreutilele GNU care funcționează sub FreeBSD, dar nu și invers.

Răspuns

De obicei, atunci când cineva cere să scape de ceva care „este utilizat pe scară largă, bine testat, verificat pe multe platforme”, este o expresie externă a unei probleme de bază cunoscută sub numele de „miros de cod” și acumularea necontrolată de „datorii tehnice” sau „cod datorie”. Arhiva GNU a acumulat o cantitate destul de mare de datorii de cod de-a lungul anilor și, atunci când o bază de cod nu este întreținută corect, poate atinge un punct de rupere (cod vechi și chiar cod morbid vechi).

În mod normal , s-ar realiza un proces de re-inginerie și refactorizare la intervale pentru a menține acest lucru sub control. Deci, adevărata întrebare care se pune aici este dacă a fost dezvoltată o versiune refactorizată a coreutilelor. Aceasta, desigur, include posibilitatea unei înlocuiri directe (ca un caz special) – la fel cum Wayland este prezentat pentru X … mulți dintre dezvoltatorii săi care ies direct din tabăra X.

Sugestia mea este de a intra și a refactura coreutilele. Cineva trebuie să o facă. Și oricine ridică problema înlocuirii coreutils – ideea ta proiectul tău.

În acest scop, profită de orice automatizare poți găsi: refactorizarea motoarelor, cum ar fi cscout, sau orice altceva care aplică metode de analiză / sinteză mai avansate (de exemplu, rețelele conceptuale formale). Dar analiza profundă este încă o zonă relativ nouă și deschisă de cercetare activă – și trece la inteligența artificială. (Un inginer de software robot.)

Majoritatea utilităților ar trebui să aibă deja seturi de teste, așadar validarea se poate face cu schimbări progresive pas cu pas + pași de testare a regresiei automate; care poate merge destul de repede (de exemplu, 10 sau mai multe actualizări de revizuire / zi). O complicație la acest proces apare dacă există dependențe de hardware sau software de nivel scăzut oriunde în suita de software; deoarece aceasta presupune validarea pe mai multe platforme. Nu știu prea multe dintre acestea în coreutils; ar trebui să existe un fel de separare în acesta de straturile hardware sau software de nivel scăzut (de exemplu, numărul locurilor în care coreutils știe ce tip de sistemul de fișiere pe care este activat ar trebui să fie minim sau, mai bine, zero.) Emulatoarele și mașinile virtuale, utilizate pentru a efectua testări pe mai multe platforme, au limitări. să-l imitezi sau să-l VM.

Răspunde

Solaris (începând cu svn_140-something) ar fi, de asemenea, o opțiune.

Dacă utilizați o distribuție, sunteți nebun. Opriți-vă acum. Căutați ajutor psihiatric.

Dacă utilizați LFS , stai bine! Distrează-te!

Dacă faci o distribuție, îți aplaud bravură domnule.

Comentarii

  • aceasta nu este ‘ o întrebare despre ” ce distro ” pot folosi,

    s despre înlocuirea coreutils pe Linux. Cu excepția cazului în care ‘ vă referiți la opensolaris coreutils? De asemenea, este mai puțin PITA decât opțiunea FreeBSD?

  • Codul sursă pentru OpenSolaris este doar Solaris. Codul sursă Solaris până la svn_14x a fost lansat de Sun / Oracle sub CDDL. În principiu, există trei patrimonii principale pentru Unix userland.” Genetic ” Unix (Solaris, AIX, True64 etc., care provine de la AT & cod T și este în mare parte închis, dar Solaris a fost deschis pentru o vreme), BSD (care a stat în cele din urmă pe ‘ propriu de la 4.4-lite) și GNU. Dar cred că îndepărtarea de GNU va fi la fel de dificilă (sau ușoară) dacă mergeți cu BSD sau Solaris. Sau poți deveni foarte ambițios și să faci xenocore-utils 😉

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *