He estado pensando en suspender el uso de GNU Coreutils en mis sistemas Linux, pero para ser honesto, a diferencia de muchos otros componentes GNU, no puedo pensar en ninguna alternativa (en Linux) . ¿Qué alternativas hay a GNU coreutils? ¿Necesitaré más de un paquete? Los enlaces al proyecto son imprescindibles, puntos de bonificación para nombrar paquetes de distribución.
Además, no sugiera cosas a menos que sepa que funcionan en Linux y puede consultar las instrucciones. Dudo que cambie de kernel pronto, y soy demasiado vago para cualquier cosa que no sea sencilla ./configure; make; make install
. Ciertamente no voy a hackear C por eso.
advertencia: si su distribución usa coreutils, eliminarlos podría romper la forma en que funciona su distribución. Sin embargo, no tenerlos en primer lugar $PATH
no debería romper las cosas, ya que la mayoría de los scripts deberían usar rutas absolutas.
Respuestas:
busybox
El favorito de los sistemas Linux embebidos.Puede hacer que cualquier nombre coreutil sea un enlace al binario busybox y funcionará. también puedes correr
busybox <command>
y funcionará. Ejemplo: si estás en Gentoo y aún no has instalado tuvi
, puedes ejecutarbusybox vi filename
y estarás en vi. SusArch Linux - comunidad / busybox
Gentoo Linux - sys-apps / busybox
Alpine Linux : basado en BusyBox y uClibc, aquí hay una descripción general
fuente
Este es un tema antiguo, me doy cuenta. Sin embargo, esta solución nunca se mencionó y aparece relativamente en Google para "Linux con bsd userland".
Hay otra solución: reliquia. Sé que funciona en Arch, y está empaquetado en el AUR (mira gnu2sysv, por ejemplo). Esto reemplazará el paquete coreutils de Arch y proporcionará los equivalentes de la herencia. Puedes leer todo sobre la wiki de arch: https://wiki.archlinux.org/index.php/Base2heirloom
fuente
Echa un vistazo a uutils .
Esta es una implementación multiplataforma de los coreutils de GNU que está escrita en Rust. Tiene licencia MIT. Al momento de escribir esta respuesta, no está completa 100℅ (faltan algunos cruciales como
ls
ycp
), pero muchos otros están listos.fuente
Sospecho que le sería difícil deshacerse de GNU Coreutils, sin embargo, siempre hay herramientas BSD equivalentes, aunque no son reemplazos directos para las herramientas GNU.
fuente
Por lo general, cuando alguien pide alejarse de algo que está en uso generalizado, bien probado y verificado en muchas plataformas, es una expresión externa de un problema subyacente conocido como "olor a código" y la acumulación incontrolada de "deuda técnica" o "código deuda". El archivo GNU había acumulado una gran cantidad de deuda de código a lo largo de los años, y cuando una base de código no se mantiene adecuadamente puede llegar a un punto de ruptura (código heredado e incluso código heredado mórbido).
Normalmente, uno llevaría a cabo un proceso de reingeniería y refactorización a intervalos para mantener esto bajo control. Entonces, la verdadera pregunta que se plantea aquí es si se ha desarrollado una versión refactorizada de coreutils. Esto, por supuesto, incluye la posibilidad de un reemplazo absoluto (como un caso especial), al igual que Wayland se propone para X ... muchos de sus desarrolladores salen directamente del campamento X.
Mi sugerencia es entrar y refactorizar coreutils. Alguien tiene que hacerlo. Y quien plantea el problema de reemplazar coreutils: su idea, su proyecto.
Para este fin, aproveche cualquier automatización que pueda encontrar: refactorizar motores, como cscout, o cualquier cosa que aplique métodos de análisis / síntesis más avanzados (por ejemplo, redes conceptuales formales). Pero el análisis profundo sigue siendo un área relativamente nueva y abierta de investigación activa, y se cruza con la Inteligencia Artificial. (Un ingeniero de software de robot).
La mayoría de las utilidades ya deberían tener conjuntos de pruebas en su lugar, por lo que la validación se puede hacer con un cambio progresivo gradual + pasos de prueba de regresión automatizados; que puede ir bastante rápido (por ejemplo, 10 o más actualizaciones de revisión / día). Una complicación de este proceso ocurre si hay dependencias de hardware o software de bajo nivel en cualquier parte del paquete de software; ya que eso implica validación en múltiples plataformas. No sé mucho de eso hay en coreutils; debe haber algún tipo de separación entre el hardware o las capas de software de bajo nivel (por ejemplo, el número de lugares donde coreutils sabe qué tipodel sistema de archivos en el que se encuentra debe ser mínimo o, mejor, cero.) Los emuladores y las máquinas virtuales, que se utilizan para realizar pruebas multiplataforma, tienen limitaciones. Por ejemplo, Mac OS X está diseñado específicamente para obstruir la capacidad de emularlo o VM.
fuente
Solaris (a partir de svn_140-something) también sería una opción.
Si estás usando una distribución, estás loco. Parar ahora. Busque ayuda psiquiátrica.
Si está utilizando LFS , ¡adelante! ¡Que te diviertas!
Si está haciendo una distribución, aplaudo su valentía señor.
fuente