カラクリサイクル

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

HomebrewとLinuxbrew用のBundlerのようなスクリプトを書きました

概要: 名付けて brewbox + linbox


最近、なにも思いたたるコトが無いのに精神面での体調を崩していた、にゃるらコト岡村 直樹(25)です。皆様方におかれましては、体調の方はいかがでしょうか。

一応僕の方は、どういうことなのかうつ病が悪化しまして、

  1. 不眠
  2. それに伴う昼間のだるさ
  3. 足すことの抑うつによるだるさ

に悩まされていたのですが、とりあえず昨日の定期通院で、うつによる不眠に対する薬が新しく増え、それを飲んで寝たら、まあとりあえず今日ブログを書けるようになるまでは回復しました。が、ぶっちゃけものすごく精神面での負荷に対する余裕というか余力が無い状態ですね。はい。勘弁してほしいです。

でまあ、それそれで良いとして、今日の本題。

僕は数日前、Qiita上に

という記事を書いたのですが、その Linuxbrew でライブラリやソフトウェアをインストールする際に、

Linuxbrewを使ったFormulaのインストールを、デプロイするアプリケーションごとに区切りたい!

というか、

Gehirn RS2で、fakeroot + fakechroot + debootstrap の組み合わせは容量食い過ぎでつらい。もうちょっと容量面で軽量なコンテナもどき作りたい!

ということで、本日、

  • Brewbox + Linbox
    • These make (home|linux)brew sandbox in your local directory like as bundler and carton

というモノをバッと書いてバッとこしらえました。

で、これは何をするモノかというと、簡単に言えば、

(Home|Linux)brewにおける、 Rubyの bundler や Perl の carton の様なモノ (ただしもどき)

です。で、実行スクリプト本体はBash scriptとして書かれています。

使い方等は、

に簡単に書きましたが、大体の使い方を説明すると、

  1. brewbox or linbox のスクリプトをパスの通ったディレクトリに配置し 実行権限つける
  2. 任意のアプリケーション用のディレクトリに Brewfile を用意
  3. $ brewbox install or $ linbox install で任意のディレクトリ以下に Brewfile に記載されたライブラリ類をインストール
    • この時のインストール先は、任意のディレクトリ以下の .brewdle ディレクトリ
  4. $ brewbox exec <任意のコマンド> or $ linbox exec <任意のコマンド> で インストールしたコマンド等を実行

という感じです。

まあBash scriptの中身の方を見てもらうと分かりますが、ぶっちゃけやってるコトは、

  1. 隠しディレクトリ .brewdle(Home|Linux)brewgit clone
  2. git clone された方の brew コマンドを使って brew bundle を実行
  3. あとは .brewdle に一時的にパス等を通してコマンド等を実行する

という感じの内容です。

まあぶっちゃけた話、 brewboxlinboxHomebrewLinuxbrew の Wrapper Script でしかないので、Formulaでインストールされるライブラリのバージョン固定とか、あるいは、冪等性の保障、みたいなコトはできません。

まあ何だろう、 Dockerで Dockerfile で書くよな感覚で Brewfile を書いて、 (brew|lin)box install した後、その環境が要らなくなったらディレクトリ毎捨てる、みたいな使い方を想定しています。

で、あと今回作った、 brewboxlinbox のライセンスは、

としました。

まあ、なんでかって言うと、

  1. これぐらいのスクリプトにライセンス云々言うのはなんかアレ
  2. 個人的にはこれスゲー役に立つんじゃね的な公益性があると思ってる
  3. 僕はこれで一応は満足してるので、後は野となれ山となれ、みたいな?

という感じですね。はい。


まあ、今日バッと作ってバッと公開したスクリプトについてはそんな感じです。

あとまあ体調の方がやっぱり優れないせいか、文章力と構成力がだだらにに落ちていて、その辺りちょっちびみょーですねぇ、という感じです。いや本当、文章に詰まるんです。Chrono Crossのツマルじゃないですけど。


というコトで、まあ今日の記事は以上です。良かったら使ってみてください。

P.S.

あと最近、

という @moznionさんの主催っぽいPodCastを見つけたので、しばらく聴いて楽しみたいと思ってます。

というコトで本日は以上です。終わります。