pockestrap

Programmer's memo

AURからパッケージをインストールするItamaeのresourceを作った

github.com

AUR (Arch User Repository)からパッケージをインストールするItamaeのresourceを作りました。

Usage

次のように書くとrbenvパッケージをAURからインストールします。

aur_package "rbenv"

Arch Linuxの環境をItamaeで構築するのに便利な気がします。

Implementation

実装はItamaeのpackage resourceを大きく参考にしています。

https://github.com/itamae-kitchen/itamae/blob/3041d344f755947e6975a9fbbcc8918bd0d0048d/lib/itamae/resource/package.rb

基本的にpackage resourceの実装をベースに、パッケージのインストール部分だけをAURから行うように変えています。

また、yayがインストールされていればそれを使い、インストールされていなければmakepkgを使う実装になっています。

Link

実装の際には id:sue445 さんのItamae pluginを参考にしていました。

qiita.com

具体的には一番上に書かれていた https://github.com/sue445/itamae-plugin-resource-encrypted_remote_file とかを見ていました。

Itamae pluginを作る上では、

  • gem名
  • テストの方法
    • Docker + Serverspecを使った
  • gemspecでのバージョンの書き方
    • 普通にやるとgemspecでItamaeをrequireする必要が出てくる
    • めんどいので、VERSION定数を使わずにgemspecにバージョンをベタ書きするようにした(sue445さんのプラグインと同じ方法)

など、色々気をつける点があり、とても参考になりました。ありがとうございました🙏