busybox
組み込み Linux システムのお気に入りです。
BusyBox は、多くの一般的な UNIX ユーティリティの小さなバージョンを 1 つの小さな実行可能ファイルに結合します。これは、GNU fileutils、shellutils などで通常見られるほとんどのユーティリティの代替を提供します。BusyBox のユーティリティは、通常、フル機能の GNU のいとこよりもオプションが少なくなっています。ただし、含まれているオプションは、期待される機能を提供し、対応する GNU と非常によく似た動作をします。 BusyBox は、あらゆる小規模または組み込みシステム向けの完全な環境を提供します。
BusyBox は、サイズの最適化と限られたリソースを念頭に置いて作成されています。また、非常にモジュール化されているため、コンパイル時にコマンド (または機能) を簡単に含めたり除外したりできます。これにより、組み込みシステムのカスタマイズが容易になります。動作するシステムを作成するには、/dev にいくつかのデバイス ノードを追加し、/etc にいくつかの構成ファイルを追加し、Linux カーネルを追加するだけです。
ほとんどの coreutil 名を busybox バイナリへのリンクにすることができ、それは機能します。 busybox <command>
を実行することもできます そしてそれはうまくいくでしょう。例:Gentoo を使用していて vi
をインストールしていない場合 それでも、busybox vi filename
を実行できます そしてあなたはviになります。それは
-
Arch Linux - コミュニティ/busybox
-
Gentoo Linux - sys-apps/busybox
-
Alpine Linux - BusyBox と uClibc に基づく、概要はこちら
これは古いトピックです。ただし、このソリューションは言及されておらず、Google で「Linux with bsd userland」の比較的上位に表示されます。
別の解決策があります:家宝です。 Arch で動作し、AUR にパッケージ化されていることは知っています (たとえば、gnu2sysv を見てください)。これは Arch の coreutils パッケージを置き換え、家宝の同等物を提供します。 Arch の wiki ですべてを読むことができます:https://wiki.archlinux.org/index.php/Base2heirloom
uutils をチェックしてください。
これは Rust で書かれた GNU coreutils のクロスプラットフォーム実装です。 MITライセンスです。この回答を書いている時点では、それは 100℅ 完全ではありません (ls
のようないくつかの重要なものが欠けています) および cp
)、しかし、他にも多くのことが行われています。