Myślałem o zaprzestaniu używania GNU Coreutils w moich systemach Linux, ale szczerze mówiąc, w przeciwieństwie do wielu innych komponentów GNU, nie mogę pomyśl o jakichkolwiek alternatywach (w systemie Linux) . Jakie są alternatywy dla coreutils GNU? czy będę potrzebować więcej niż jednej paczki? Linki do projektu są koniecznością, dodatkowe punkty za nazewnictwo pakietów dystrybucji.
Również proszę nie sugerować niczego, chyba że wiesz , że działają one na Linuksie i znasz instrukcje. wątpię, czy wkrótce zmienię jądro i jestem zbyt leniwy na coś znacznie więcej niż zwykłe ./configure; make; make install
. Z pewnością nie będę hakować C.
ostrzeżenie: jeśli twoja dystrybucja używa coreutils, usunięcie ich może zepsuć działanie twojej dystrybucji. Jednak brak ich na pierwszym miejscu w $PATH
nie powinien „zepsuć”, ponieważ większość skryptów powinna używać ścieżek bezwzględnych.
Komentarze
- Co ciekawe, dlaczego szukasz alternatyw?
- @xeno ” Solidniejszy „? Pamiętaj też, że Twój system (w tym jądro) jest w dużej mierze zbudowany z GCC i zależy od GLibC 🙂
- @xeno Debian używa teraz EGLIBC , który jest rodzajem rozwidlenia GLibC. Ale ściśle podąża za GLibC, więc różnica jest ' jest tak duża.
- Zarówno Clang, jak i tcc mogą (przynajmniej w jednym czasie) skompilować jądro Linuksa.
- Są ludzie pracujący na GNU na jądrze BSD , ale nie ' nie słyszałem o odwrotnej sytuacji. Naprawdę przełączanie jąder byłoby łatwiejsze. Możesz spróbować najpierw na maszynie wirtualnej, jeśli ' jesteś nieśmiały.
Odpowiedz
busybox
ulubione z Wbudowane systemy Linux.
BusyBox łączy małe wersje wielu popularnych narzędzi UNIX w jeden mały plik wykonywalny. Zapewnia zamienniki dla większości narzędzi, które zwykle można znaleźć w plikach GNU fileutils, shellutils, itp. Narzędzia w BusyBox zazwyczaj mają mniej opcji niż ich w pełni funkcjonalni kuzyni GNU; jednakże opcje, które są dołączone, zapewniają oczekiwaną funkcjonalność i zachowują się bardzo podobnie do ich odpowiedników w GNU. BusyBox zapewnia dość kompletne środowisko dla każdego małego lub wbudowanego systemu.
BusyBox został napisany z myślą o optymalizacji rozmiaru i ograniczonych zasobach . Jest również niezwykle modułowy, dzięki czemu można łatwo dołączać lub wykluczać polecenia (lub funkcje) w czasie kompilacji. Ułatwia to dostosowywanie systemów wbudowanych. Aby stworzyć działający system, po prostu dodaj kilka węzłów urządzeń w / dev, kilka plików konfiguracyjnych w / etc i jądro Linuksa.
Prawie każda nazwa coreutil może być linkiem do pliku binarnego busybox i to zadziała. możesz też uruchomić busybox <command>
i to zadziała. Przykład: jeśli „jesteś na Gentoo i nie” zainstalowałeś jeszcze vi
, możesz uruchomić busybox vi filename
i będziesz w vi . To jest
-
Alpine Linux – oparty na BusyBox i uClibc, tutaj znajduje się przegląd
Komentarze
- możesz to zmodyfikować za pomocą linków do swojej dystrybucji
- również, jest to ulubiona wersja na osadzonych, więc chociaż alternatywą ' prawdopodobnie nie będzie wystarczająca aby zamienić GNU na moje środowisko desktop / serwer
- To jedyne praktyczne rozwiązanie, jeśli nie ' nie chcesz włamać się do C. A wersje busybox powinny być dość standardowy zgodny.
Answe r
Zdaję sobie sprawę, że to starszy temat. Jednak o tym rozwiązaniu nigdy nie wspomniano i pojawia się stosunkowo wysoko w Google jako „Linux z bsd userland”.
Jest jeszcze jedno rozwiązanie: heirloom. Wiem, że działa na Arch i jest spakowane w AUR (spójrz na przykład na gnu2sysv). Spowoduje to zastąpienie pakietu Coreutils Arch „s i zapewni jego odpowiedniki. Możesz przeczytać o całej sprawie na wiki arch” s: https://wiki.archlinux.org/index.php/Base2heirloom
Odpowiedź
Sprawdź uutils .
Jest to wieloplatformowa implementacja podstawowych narzędzi GNU napisana w Rust. Posiada licencję MIT.W chwili pisania tej odpowiedzi nie jest ona kompletna w 100℅ (brakuje niektórych kluczowych, takich jak ls
i cp
), ale wiele innych są gotowe.
Odpowiedź
Podejrzewam, że „ciężko byłoby ci się pozbyć GNU Coreutils, jednakże jest” s zawsze są równoważnymi narzędziami BSD, chociaż nie są one zamiennikami narzędzi GNU.
Komentarze
- jak zabrać się za instalację BSD narzędzia na dystrybucję Linuksa? gdzie je dostanę?
- FreeBSD ' Cały system operacyjny jest dostępny przez CVS freebsd.org/cgi/cvsweb.cgi/src , jednak skompilowanie przestrzeni użytkownika BSD pod jądrem Linuksa byłoby raczej trudne. GNU ' s prawdopodobnie bardziej przenośny niż BSD, ponieważ obszar użytkownika GNU ' (przynajmniej na początku) został zbudowany tak, aby był przenośny między wieloma jądrami.
- to brzmi podobnie ea PITA, pewnie, czy ' jest rozsądnie możliwe, że ktoś gdzieś spakował go przynajmniej raz dla Linuksa.
- Solaris (od 140-coś jest również dostępne) byłaby również opcją. Jeśli używasz dystrybucji, jesteś szalony. Przestań. Jeśli używasz LFS , baw się! Baw się dobrze! Jeśli tworzysz dystrybucję, pochwalam twoją odwagę, panie.
- Tak, ' nie jestem pewien, czy to ' jest nawet możliwe. ' d prawdopodobnie łatwiej będzie po prostu zainstalować FreeBSD i włączyć zgodność z Linuksem. Możesz łatwo pobrać podstawowe narzędzia GNU działające pod FreeBSD, ale nie odwrotnie.
Odpowiedź
Zwykle gdy ktoś prosi o uciec od czegoś, co jest „w powszechnym użyciu, dobrze przetestowane, zweryfikowane na wielu platformach”, jest to „zewnętrzny wyraz podstawowego problemu znanego jako„ zapach kodu ”i niekontrolowane nagromadzenie„ długu technicznego ”lub „kod długu”. Archiwum GNU narosło przez lata dość duże zadłużenie w kodzie, a kiedy baza kodu nie jest właściwie utrzymywana, może dojść do punktu krytycznego (stary kod, a nawet chorobliwy stary kod).
Zwykle , należałoby co jakiś czas przeprowadzać proces przeprojektowywania i refaktoryzacji, aby utrzymać to pod kontrolą. Tak więc prawdziwe pytanie, które jest tutaj zadawane, dotyczy tego, czy opracowano refaktoryzowaną wersję coreutils. To oczywiście obejmuje możliwość bezpośredniej wymiany (w szczególnym przypadku) – podobnie jak Wayland jest proponowany X … wielu z jego programistów wychodzi prosto z obozu X.
Moja sugestia jest taka, aby rzeczywiście wejść do programu i zreformować coreutils. Ktoś musi to zrobić. A ktokolwiek poruszy kwestię zastąpienia coreutils – Twój pomysł, Twój projekt.
W tym celu skorzystaj z dowolnej automatyzacji, jaką możesz znaleźć: silników refaktoryzacji, takich jak cscout, lub wszystkiego, co stosuje bardziej zaawansowane metody analizy / syntezy (np. formalne kraty pojęciowe). Jednak dogłębna analiza jest wciąż stosunkowo nowym i otwartym obszarem aktywnych badań – i obejmuje sztuczną inteligencję. (Inżynier oprogramowania robota.)
Większość narzędzi powinna mieć już gotowe zestawy testów, więc walidację można przeprowadzić za pomocą stopniowych zmian + zautomatyzowanych kroków testowania regresji; co może przebiegać dość szybko (np. 10 lub więcej aktualizacji wersji dziennie). Komplikacja tego procesu występuje, jeśli w dowolnym miejscu pakietu oprogramowania występują zależności sprzętowe lub oprogramowania niskiego poziomu; ponieważ pociąga to za sobą walidację na wielu platformach. Nie wiem zbyt wiele o tym, co jest w coreutils; powinno być w nim jakieś oddzielenie od warstwy sprzętowej lub oprogramowania niskiego poziomu (np. Liczba miejsc, w których coreutils wie, jakiego typu system plików, na którym się znajduje, powinien być minimalny lub lepiej zerowy.) Emulatory i maszyny wirtualne, używane do testowania na wielu platformach, mają ograniczenia. Na przykład Mac OS X jest specjalnie zaprojektowany w taki sposób, aby utrudniać emulować lub użyć maszyny wirtualnej.
Odpowiedź
Solaris (od svn_140-coś) również byłby opcją.
Jeśli używasz dystrybucji, to zwariowałeś. Przestań. Poszukaj pomocy psychiatrycznej.
Jeśli używasz LFS , baw się! Miłej zabawy!
Jeśli tworzysz dystrybucję, pochwalam twoją odwagę, panie.
Komentarze
- to nie ' to pytanie dotyczące ” dystrybucji ” czy mogę użyć,
s o zamianie coreutils w Linuksie. Chyba że ' odnosisz się do opensolaris coreutils? czy też jest to mniej PITA niż opcja FreeBSD?
- Kod źródłowy OpenSolarisa to po prostu Solaris. Kod źródłowy Solaris do momentu wydania svn_14x przez Sun / Oracle pod CDDL. Istnieją zasadniczo trzy główne dziedzictwo przestrzeni użytkownika systemu Unix.” Genetic ” Unix (Solaris, AIX, True64 itd., który pochodzi z AT & T i jest w dużej mierze zamknięty, ale Solaris był otwarty przez jakiś czas), BSD (który w końcu stał się na nim ' własnym od 4.4-lite) i GNU. Ale myślę, że odejście od GNU będzie równie trudne (lub łatwe), jeśli pójdziesz z BSD czy Solarisem. Albo możesz stać się naprawdę ambitny i stworzyć xenocore-utils 😉