【Rust】HomebrewでRust製CLIを公開した

Github releaseとbrew tapを添えて

2023年11月19日

crates.ioでRust製CLIを公開したの続きです。

Homebrewで公開までやったので手順を忘備録として残しておきます。

Homebrewで公開

とはいったものの、今回も手順をブログに公開してくださっている方がいたのでまねただけです。感謝しきりです。

RustのcliをHomebrewで公開する

自分のリポジトリは以下です。

Github release

Homebrew Formula

詰まった点

まず参考サイトの手順通りにやったのですが、HomebrewでMacOSにインストールしてもcannot execute binary fileと出て実行できませんでした。

というのも自分は今までUbuntu上で開発をしていたので、単純にcargo build --releaseとするとUbuntu用のバイナリが生成されてしまっていました。

そこでmacOS用にcargo build --release --target x86_64-apple-darwinと実行したのですが、以下のようなエラーが出てビルドできませんでした。

error: linking with `cc` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/home/..."
  (中略)
  = note: cc: error: x86_64: No such file or directory
          cc: error: unrecognized command line option '-arch'

少し調べてみると、-archオプションはXcode専用のものなんだそうです(参考

The -arch option is part of the Apple extensions to gcc. You need to use the gcc supplied by Apple's Developer Tools, Xcode.

じゃあUbuntuにXcode入れればいいじゃん!と思いさらに調べてみると、実は規約的にNGでした。

THIS SOFTWARE IS AUTHORIZED ONLY FOR EXECUTION ON AN APPLE-BRANDED PRODUCT RUNNING MACOS. ANY OTHER DOWNLOAD OR USE OF THIS SOFTWARE IS NOT AUTHORIZED AND IS IN BREACH OF THIS AGREEMENT. (Xcode and Apple SDKs Agreementより引用)

最終的にUbuntu上でmacOS用のバイナリを生成するのは諦め、おとなしくMacBook Airでビルドしました。

感想

Homebrewというと大御所感がありますが、Github releaseとbrew tapを利用すればこんなあっさり公開できるんだと驚きました。

また普段何気なく使っていたbrew tapがどういうものなのかを知る機会にもなってよかったです。

thueコマンドはあまり機能を追加するつもりはないですが、ちょっとずつメンテできたらいいなぁと思います。

参考

文中で上げたもの以外を記載しておきます。