カラクリサイクル

『輝かしい青春』なんて無かった人の雑記

root 権限の無い Linux サーバ上でも chroot な Archlinux を使えるスクリプトを作ってみた!

※ とは言っても実態は既存 OSS の fork だけどな!正に(ry


今回の制作物

github.com

で、これは何?

これは昨日、色々調べててその時に知ったのですが、Archlinux 界隈では、 chroot な環境で Archlinux を利用できるように bootstraping してくれるツールとして、

github.com

という、 Bash script で書かれたツールが有ります。

それで、この arch-bootstrap は、基本 chroot 環境が前提となっているツールで、 哀しいかな、 root 権限が無い (sudo とか使えない) 環境では、そのままでは動作させることが出来ません。

そして、その後に色々、他にも root 権限が無い状態でも chroot できるツールで無いやろか、って調べていったところ、

というツールを見付けました。

で、この proot というツールは、 root 権限がまったく無い環境でも chroot っぽいコトが出来るツールで、

お、これ ( proot ) と arch-bootstrap を組み合わせれば、root 権限が無くても chrooted な Archlinux 環境を動かせる!?

と思って色々と実験してみたところ、 arch-bootstrap に手を加えて、proot 対応させれば良い感じになる、 と判明したので、その辺りの修正とかスクリプトの追加とかしたツールキットが、今回の作成物である、

github.com

に、なります。

※ まあ元ネタのある fork ですけどネ!

基本的な使い方

基本的には上記リポジトリに含まれる、

  • arch-bootstrap.sh

curlwget で取ってきてパスを通し、かつ、先程も紹介した、

をダウンロードするか時前でコンパイルするなどして、 proot コマンドもパスを通せば、一応は使えるようになります。

そして、使い方は、基本オリジナルの arch-bootstrap.sh と同じで、大体、

$ arch-bootstrap.sh /path/to/container

というコマンド一発で Archlinux chrooted container が作れます。

また、作成した Archlinux な chroot container に 疑似 chroot するには、今回の制作物のリポジトリに含まれる、

  • arch-proot.sh

を使って、

$ arch-proot.sh /path/to/container /bin/bash

という感じで chroot 環境を使用することが出来ます。

おまけ Tips

ちなみに、先に紹介したコマンド、

$ arch-proot.sh /path/to/container /bin/bash

で Archlinux chrooted container を chroot すると、環境変数が元々の Linux 環境のヤツと混ざるんですが、 それがイヤンって方は、

$ arch-proot.sh /path/to/container /usr/bin/env -i /bin/bash --norc

とすると、環境変数が混ざらずに使えます。

※ ちなみにこのテクニックは Bash - まっさらなシェルを起動する - Qiita を参考にしてます。

以上

です。

ちなみに、今回のツール自体は昨日の時点で出来上ってたんですが、いかんせんブログに紹介記事を書く前に力尽きてたので、 この記事を書くのが今日になりましたとさ。まあ体調不良はいつものコトなんで、しゃーないんだけども。

で、今回のスクリプト、 本当に root 権限無しでほぼフル機能の Archlinux が使えるんで、場合によっては inuxbrew の代用になるかもしれません。 まあ Linuxbrew は、色々と使うのが大変な場合が有りますからね。Lnux Distro の環境の差異とかで。


というコトで、今回のツール、まあ良かったら使ってみてください。

というワケで以上です。はい。