Ho pensato di interrompere luso di GNU Coreutils sui miei sistemi Linux, ma ad essere onesto, a differenza di molti altri componenti GNU, non posso “t pensa a qualsiasi alternativa (su Linux) . Quali alternative ci sono a GNU coreutils? avrò bisogno di più di un pacchetto? I collegamenti al progetto sono un must, punti bonus per la denominazione dei pacchetti di distribuzione.
Inoltre, per favore non suggerire cose a meno che sai che funzionano su Linux e puoi fare riferimento alle istruzioni. dubito che presto cambierò kernel, e sono troppo pigro per qualcosa che va oltre un semplice ./configure; make; make install
. Certamente non ho intenzione di hackerare C per questo.
avviso: se la tua distribuzione utilizza coreutils rimuoverli potrebbe interrompere il modo in cui funziona la tua distribuzione. Tuttavia, non averli per primi nel tuo $PATH
non dovrebbe “rompere le cose, poiché la maggior parte degli script dovrebbe utilizzare percorsi assoluti.
Commenti
- Curiosamente, perché cerchi alternative?
- @xeno ” Più robusto “? Inoltre, tieni presente che il tuo sistema (incluso il kernel) è in gran parte costruito con GCC e dipende da GLibC 🙂
- @xeno Debian sta attualmente usando EGLIBC , che è una sorta di fork di GLibC. Ma segue da vicino GLibC, quindi il diff è ‘ così grande.
- Sia Clang che tcc potrebbero (contemporaneamente, comunque) compilare il kernel Linux.
- Ci sono persone che lavorano su un spazio utente GNU su un kernel BSD , ma ‘ non ho mai sentito parlare del contrario. Cambiare kernel sarebbe davvero più facile. Puoi provarlo prima in una VM se ‘ sei timido.
Rispondi
busybox
il preferito di Sistemi Linux incorporati.
BusyBox combina versioni minuscole di molte utilità UNIX comuni in un unico piccolo eseguibile. Fornisce sostituti per la maggior parte delle utilità che di solito si trovano in GNU fileutils, shellutils, ecc. Le utilità in BusyBox generalmente hanno meno opzioni rispetto alle loro cugine GNU complete; tuttavia, le opzioni incluse forniscono le funzionalità previste e si comportano in modo molto simile alle loro controparti GNU. BusyBox fornisce un ambiente abbastanza completo per qualsiasi sistema piccolo o integrato.
BusyBox è stato scritto pensando allottimizzazione delle dimensioni e alle risorse limitate . È anche estremamente modulare in modo da poter facilmente includere o escludere comandi (o funzionalità) in fase di compilazione. Ciò semplifica la personalizzazione dei sistemi incorporati. Per creare un sistema funzionante, aggiungi semplicemente alcuni nodi del dispositivo in / dev, alcuni file di configurazione in / etc e un kernel Linux.
Puoi praticamente rendere qualsiasi nome di coreutil un collegamento al binario busybox e funzionerà. puoi anche eseguire busybox <command>
e funzionerà. Esempio: se “sei su Gentoo” e non hai ancora installato il tuo vi
, puoi eseguire busybox vi filename
e sarai in vi . È
-
Alpine Linux – basato su BusyBox e uClibc, ecco una panoramica
Commenti
- sentiti libero di modificarlo con i link alla tua distribuzione
- inoltre, questo è uno dei preferiti su embedded, quindi anche se unalternativa ‘ probabilmente non sarà sufficiente per sostituire GNU per il mio ambiente desktop / server
- Questa è lunica soluzione pratica atm, se ‘ non vuoi hackerare C. E le versioni busybox dovrebbero essere abbastanza conforme agli standard.
Answe r
Questo è un argomento meno recente, me ne rendo conto. Tuttavia, questa soluzione non è mai stata menzionata e risulta relativamente alta su Google per “Linux con bsd userland”.
Cè unaltra soluzione: cimelio. So che funziona su Arch, ed è impacchettato in AUR (guarda gnu2sysv, per esempio). Questo sostituirà il pacchetto coreutils di Arch e fornirà gli equivalenti cimelio di famiglia. Puoi leggere lintero argomento sul wiki di arch “: https://wiki.archlinux.org/index.php/Base2heirloom
Risposta
Dai unocchiata a uutils .
Questa è unimplementazione multipiattaforma del coreutils GNU scritto in Rust. È concesso in licenza dal MIT.Al momento della stesura di questa risposta non è completa al 100℅ (mancano di alcune cruciali come ls
e cp
), ma molte altre sono finiti.
Risposta
Sospetto che “avresti difficoltà a sbarazzarti di GNU Coreutils, tuttavia, ci” s sempre gli strumenti BSD equivalenti, sebbene non siano sostituzioni immediate per gli strumenti GNU.
Commenti
- come dovrei fare per installare BSD strumenti su una distribuzione Linux? dove li trovo?
- FreeBSD ‘ lintero sistema operativo è disponibile tramite CVS freebsd.org/cgi/cvsweb.cgi/src , tuttavia, ottenere la compilazione dello userland BSD sotto un kernel Linux sarebbe piuttosto difficile. GNU ‘ s userland è probabilmente più portabile di BSD, dato che lo userland di GNU ‘ (almeno allinizio) è stato creato per essere portabile tra più kernel.
- suona come ea PITA, certo che ‘ è ragionevolmente possibile che qualcuno da qualche parte lo abbia impacchettato almeno una volta per Linux.
- Solaris (a partire da 140 è disponibile anche qualcosa) sarebbe anche unopzione. Se stai usando una distribuzione sei pazzo. Fermati adesso. Se stai utilizzando LFS , vai avanti! Divertiti! Se stai facendo una distribuzione, applaudo il tuo coraggio, signore.
- Sì, ‘ non ne sono sicuro ‘ è anche possibile. ‘ probabilmente sarebbe più facile installare FreeBSD e abilitare la compatibilità con Linux. Puoi facilmente far funzionare i coreutils GNU sotto FreeBSD, ma non viceversa.
Risposta
Di solito, quando qualcuno chiede di allontanarsi da qualcosa che è ampiamente utilizzato, ben testato, verificato su molte piattaforme, è unespressione esteriore di un problema sottostante noto come “odore di codice” e laccumulo incontrollato di “debito tecnico” o “codice debito”. Larchivio GNU ha accumulato una quantità abbastanza grande di debiti di codice nel corso degli anni e quando una base di codice non viene adeguatamente mantenuta può raggiungere un punto di rottura (codice legacy e persino codice legacy morboso).
Normalmente , si eseguirà un processo di reingegnerizzazione e refactoring a intervalli per tenerlo sotto controllo. Quindi, la vera domanda che viene posta qui è se sia stata sviluppata una versione refactored di coreutils. Questo, ovviamente, include la possibilità di una sostituzione definitiva (come un caso speciale) – proprio come Wayland è stato presentato per X … molti dei suoi sviluppatori provengono direttamente dal campo X.
Il mio suggerimento è di entrare e rifattorizzare coreutils. Qualcuno deve farlo. E chiunque sollevi il problema della sostituzione di coreutils: la tua idea è il tuo progetto.
A tal fine, approfitta di qualsiasi automazione che puoi trovare: motori di refactoring, come cscout, o qualsiasi cosa che applichi metodi di analisi / sintesi più avanzati (es. reticoli concettuali formali). Ma lanalisi approfondita è ancora unarea relativamente nuova e aperta di ricerca attiva e si estende allintelligenza artificiale. (Un ingegnere di software robotico.)
La maggior parte delle utilità dovrebbe già disporre di suite di test, quindi la convalida può essere eseguita con modifiche graduali progressive + passaggi di test di regressione automatizzati; che può andare abbastanza velocemente (ad esempio 10 o più aggiornamenti di revisione / giorno). Una complicazione di questo processo si verifica se sono presenti dipendenze hardware o software di basso livello ovunque nella suite software; poiché ciò comporta la convalida su più piattaforme. Non so molto di quello che cè in coreutils; dovrebbe esserci una sorta di separazione in esso dagli strati hardware o software di basso livello (ad esempio il numero di posti in cui coreutils sa quale tipo di il file system su cui si trova dovrebbe essere minimo o, meglio, zero.) Gli emulatori e le macchine virtuali, utilizzati per eseguire test multipiattaforma, hanno limitazioni. Ad esempio, Mac OS X è specificamente progettato in modo da ostacolare la capacità per emularlo o utilizzarlo su VM.
Answer
Solaris (a partire da svn_140-something) potrebbe anche essere unopzione.
Se stai usando una distribuzione sei pazzo. Fermati adesso. Chiedi aiuto psichiatrico.
Se stai usando LFS , rock on! Buon divertimento!
Se stai facendo una distribuzione, applaudo il tuo coraggio, signore.
Commenti
- questo non è ‘ una domanda su ” quale distro ” posso usare,
sulla sostituzione di coreutils su Linux. A meno che ‘ non ti riferisca a opensolaris coreutils? inoltre è meno PITA dellopzione FreeBSD?
- Il codice sorgente di OpenSolaris è solo Solaris. Il codice sorgente di Solaris fino a svn_14x è stato rilasciato da Sun / Oracle sotto CDDL. Ci sono fondamentalmente tre eredità principali per gli utenti Unix.” Genetic ” Unix (Solaris, AIX, True64 e così via, proveniente da AT & T ed è in gran parte chiuso, ma Solaris è stato aperto per un po di tempo), BSD (che alla fine si trovava su di esso ‘ nella versione 4.4-lite) e GNU. Ma penso che allontanarsi da GNU sarà altrettanto difficile (o facile) sia che si scelga BSD che Solaris. Oppure puoi diventare davvero ambizioso e creare xenocore-utils 😉