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

読了まで:約3分


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

今回の​制作物

で、​これは​何?

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

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

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

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

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

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

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

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

に、​なります。

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

基本的な​使い方

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

  • arch-bootstrap.sh

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

を​ダウンロードするか​時前で​コンパイルするなどして、​ 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 が​使えるんで、​場合に​よっては​ linuxbrew の​代用に​なるかもしれません。​まあ Linuxbrew は、​色々と​使うのが​大変な​場合が​有りますからね。​Lnux Distro の​環境の​差異とかで。


と​いう​コトで、​今回の​ツール、​まあ良かったら​使ってみてください。​と​いう​ワケで以上です。​はい。

アバターアイコン兼ロゴ

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。次に備えて待機中。

今は趣味でプログラミングをして生活しています。