Skip to content

Latest commit

 

History

History
107 lines (87 loc) · 6.35 KB

README.md

File metadata and controls

107 lines (87 loc) · 6.35 KB

Build UnitTest IntegrationTest GitHub GitHub all releases Lines of code

[英語]

MimixBox - mimic BusyBox on Linux

MimixBoxは、シングルバイナリの中に多数のUnixコマンドを持ちます。しかし、MimixBoxはBusyBoxと異なる目標を持ちます。デスクトップ環境での使用を念頭に置き、組み込み環境での使用は考えていません。
同様に、MimixBoxプロジェクトメンテナは、Coreutilsに代表されるような一般的なコマンドから実験的なコマンド(applets)まで幅広く組み込み事を計画しています。

インストール方法

リリースページで、ソースコードとバイナリをzip形式とtar.gz形式で配布しています。OSとCPUアーキテクチャにあうバイナリを選択してください。
例えば、Linux(amd64)の場合、次のコマンドでMimixBoxとドキュメントをインストールできます。

$ tar xf mimixbox-0.0.1-linux-arm64.tar.gz
$ cd mimixbox-0.0.1-linux-arm64
$ sudo ./installer.sh

Golang開発環境がある場合、以下の方法でもインストールできます。この方法では、ドキュメントがインストールされません。

$ go install github.com/nao1215/mimixbox/cmd/mimixbox
$ mimixbox --install /usr/local/bin

開発方法

ツール

下表は、MimixBoxプロジェクトで開発する上で用いるツール一覧です。

ツール名 説明
go-licenses 依存ライブラリのライセンス管理で使用
pandoc Markdownファイルをmanページに変換するために使用
make ビルド、テスト、リリースなど使用
gzip manページの圧縮で使用
curl ShellSpecのインストールで使用
install MimixBoxバイナリとドキュメントをインストールするために使用
docker Docker内でMimixBoxをテストするために使用
debootstrap Jail内でMimixBoxをテストするために使用
shellspec 統合テスト時に使用

Debian系ディストリビューション(例:Debian、Ubuntu、Kali Linux、Raspberry Pi OS)を使用している場合、次のコマンドでツールをインストールできます。

$ sudo apt install build-essential curl git pandoc gzip docker.io debootstrap
$ go install github.com/google/go-licenses@latest
$ curl -fsSL https://git.io/shellspec | sh -s -- --yes

ビルド方法

$ git clone https://github.com/nao1215/mimixbox.git
$ cd mimixbox
$ make build

デバッグ方法

Docker環境の作成方法

$ make docker

(注釈) Dockerイメージのビルドが完了次第、Dockerコンテナ内に入ります。
$ 

Jail環境

$ make build                      ※ MimixBoxバイナリの作成
$ sudo make jail                  ※ /tmp/mimixbox/jailを作成

$ sudo chroot /tmp/mimixbox/jail /bin/bash   ※ Jail環境の中へ移動
# mimixbox --full-install /usr/local/bin     ※ MimixBox組み込みコマンドをJail内にインストール

Roadmap

  • Step1. 多くのUnixコマンドを開発(〜Version 0.x.x).
  • Step2. コマンドオプションの拡充 (〜Version 1.x.x).
  • Step3. コマンドに近代的な仕様を追加(〜Version 2.x.x)

現在、MimixBoxは、充分な数のコマンドを実装していません(サポートコマンドリストはこちら)。そのため、プロジェクトとしては、ドッグフーディングできる状態までコマンド数を増やすことが最優先の目標です。

次に、コマンドオプション数をCoreutilsや他のパッケージと同レベルまで増やします。ただし、Coreutilsと同じコマンドを開発することを目標としていません。しかし、Linuxユーザが期待するオプションはサポートしたいと考えています。

最後に、MimixBoxを独自のコマンドとする段階があります。catコマンドを改良したbatやlsコマンドを改良したlsdのように、コマンドの機能性を上げていきます。

MimixBoxオリジナルコマンド

MimixBoxは、Coreutilsのようなパッケージに含まれていないオリジナルコマンドがあります。

コマンド名 説明
fakemovie 画像にビデオ開始ボタンを付与
ghrdc GitHub Relaseのダウンロード数をカウント
path PATH情報を操作するコマンド
serial ファイル名をシリアル番号付きにリネーム

連絡先

「バグ発見」や「追加機能の要望」などのコメントを送りたい場合、以下の連絡先のいずれかを使用してください。

ライセンス

MimixBoxプロジェクトは、MITライセンス条文およびApache License Version 2.0ライセンス条文の下でライセンスされています。詳細はLICENSEおよびNOTICEをご確認ください。