Saya sudah berpikir untuk menghentikan penggunaan GNU Coreutils pada sistem Linux saya, tetapi jujur saja, tidak seperti banyak komponen GNU lainnya, saya tidak dapat memikirkan alternatif lain (di Linux) . Apa alternatif yang ada untuk GNU coreutils? Apakah saya memerlukan lebih dari satu paket? Tautan ke proyek adalah keharusan, poin bonus untuk penamaan paket distro.
Juga tolong jangan menyarankan hal-hal kecuali Anda tahu mereka bekerja di Linux, dan dapat referensi petunjuk. Saya ragu saya akan segera mengganti kernel, dan saya terlalu malas untuk hal-hal yang jauh dari langsung ./configure; make; make install
. Saya pasti tidak akan meretas C untuk itu.
peringatan: jika distro Anda menggunakan coreutils, menghapusnya dapat merusak fungsi distro Anda. Namun tidak menjadikan mereka yang pertama dalam hal Anda $PATH
tidak boleh merusak, karena kebanyakan skrip harus menggunakan jalur absolut.
Jawaban:
busybox
favorit sistem Linux Tertanam.Anda dapat membuat coreutil nama tautan ke binary busybox dan itu akan berhasil. Anda juga dapat menjalankan
busybox <command>
dan itu akan berhasil. Contoh: jika Anda menggunakan Gentoo dan belum menginstalnyavi
, Anda dapat menjalankanbusybox vi filename
dan Anda akan berada di vi. NyaArch Linux - community / busybox
Gentoo Linux - sys-apps / busybox
Alpine Linux - berbasis pada BusyBox dan uClibc, berikut ini ikhtisar
sumber
Saya sadar ini adalah topik yang lebih tua. Namun, solusi ini tidak pernah disebutkan dan muncul relatif tinggi di google untuk "Linux dengan bsd userland".
Ada solusi lain: pusaka. Saya tahu ini berfungsi di Arch, dan itu dikemas dalam AUR (lihat gnu2sysv, misalnya). Ini akan menggantikan paket coreutils Arch dan memberikan padanan pusaka. Anda dapat membaca semuanya di wiki arch: https://wiki.archlinux.org/index.php/Base2heirloom
sumber
Lihat uutils .
Ini adalah implementasi lintas platform dari GNU coreutils yang ditulis dalam Rust. Ini adalah lisensi MIT. Pada saat penulisan jawaban ini tidak 100℅ lengkap (hilang beberapa yang penting seperti
ls
dancp
), tetapi banyak yang lain dilakukan.sumber
Saya menduga Anda akan kesulitan menyingkirkan GNU Coreutils, namun, selalu ada alat BSD yang setara, meskipun mereka bukan pengganti pengganti untuk alat GNU.
sumber
Biasanya, ketika seseorang meminta untuk menjauh dari sesuatu yang digunakan secara luas, diuji dengan baik, diverifikasi pada banyak platform, itu merupakan ekspresi luar dari masalah mendasar yang dikenal sebagai "bau kode" dan akumulasi "utang teknis" atau "kode yang tidak terkendali" hutang". Arsip GNU telah membangun jumlah hutang kode yang cukup besar selama bertahun-tahun, dan ketika basis kode tidak dipelihara dengan baik, ia dapat mencapai titik puncak (kode warisan, dan bahkan kode warisan yang tidak wajar).
Biasanya, seseorang akan melakukan proses rekayasa ulang dan refactoring pada interval untuk menjaga ini tetap terkendali. Jadi, pertanyaan sebenarnya yang diajukan di sini adalah apakah versi inti dari refutor telah dikembangkan. Ini, tentu saja, termasuk kemungkinan penggantian langsung (sebagai kasus khusus) - seperti Wayland sedang dipromosikan untuk X ... banyak pengembangnya yang langsung keluar dari kamp X.
Saran saya adalah untuk benar-benar masuk dan refactor coreutils. Seseorang harus melakukannya. Dan siapa pun yang mengangkat masalah mengganti coreutils - ide Anda proyek Anda.
Untuk tujuan ini, manfaatkan otomatisasi apa pun yang dapat Anda temukan: mesin refactoring, seperti cscout, atau apa pun yang menerapkan metode analisis / sintesis yang lebih maju (misalnya, kisi konsep formal). Tetapi analisis mendalam masih merupakan bidang penelitian aktif yang relatif baru dan terbuka - dan beralih ke Intelegensi Buatan. (Seorang insinyur perangkat lunak robot.)
Sebagian besar utilitas seharusnya sudah memiliki ruang uji di tempat, sehingga validasi dapat dilakukan dengan perubahan langkah-progresif + langkah-langkah pengujian regresi otomatis; yang bisa berjalan sangat cepat (mis. 10 atau lebih pembaruan revisi / hari). Kerumitan untuk proses ini terjadi jika ada perangkat keras atau ketergantungan perangkat lunak tingkat rendah di mana saja dalam rangkaian perangkat lunak; karena itu memerlukan validasi pada berbagai platform. Saya tidak tahu banyak tentang itu di coreutils; harus ada semacam pemisahan di dalamnya dari perangkat keras atau lapisan perangkat lunak tingkat rendah (misalnya jumlah tempat di mana coreutils tahu jenis apasistem file yang dihidupkan harus minimal atau, lebih baik, nol.) Emulator dan mesin virtual, digunakan untuk tujuan melakukan pengujian multi-platform, memiliki keterbatasan. Misalnya, Mac OS X dirancang khusus dengan cara menghalangi kemampuan untuk meniru atau VM itu.
sumber
Solaris (per svn_140-sesuatu) juga akan menjadi pilihan.
Jika Anda menggunakan distro, Anda gila. Berhenti sekarang. Mencari bantuan psikiater.
Jika Anda menggunakan LFS , teruskan ! Selamat bersenang-senang!
Jika Anda membuat distro, saya memuji keberanian Anda, Tuan.
sumber