バイナリを移動するためにmakeを実行すると、Homebrewでエラーが発生します。

バイナリを移動するためにmakeを実行すると、Homebrewでエラーが発生します。

私が作成したC ++ツールをインストールするためにホームブルーム公式を作成しようとしています。binaryFileファイルをコピーするメイクファイルには、次の規則があります/usr/local/bin

install:

    @install -m 0755 binaryFile /usr/local/bin

実行すると、.dllファイルにmake install正しくコピーされます。binaryFile/usr/local/bin

ただし、brew installパッケージングすると、実行時に次のエラーが発生しますmake install

install: /usr/local/bin/binaryFile: Operation not permitted
make: *** [install] Error 71

私はいくつかの本を読んでおり、ほとんどの場所ではこのエラーが発生した場合は/usr/local/bin/代わりに使用するように言います/usr/bin。これはすでに私がやっていることです。ホームブレークを実行するときにmake installが手動で実行したときとは異なる動作をする理由を理解できません。

私が経験している正確な問題を確認するには、次の手順に従ってください。

brew tap k-vernooy/tap
brew install terminalgol

答え1

あなたは正しいことをしませんでした。一つの式は禁止バイナリを直接インストールするか、他のものをインストールしてください/usr/local/bin

正式には、すべてのコンテンツを同様のパス(/usr/local/Celler/<formula-name>/<version>ルビーでprefixマークされているパス)にインストールする必要があります。#{prefix}Homebrewはそのbin/下のサブフォルダのバイナリを 。#{prefix}/usr/local/bin

Rubyの変数は、#{prefix}上記のパターンに従ってHomebrewによって自動的に計算されます。

prefixあなたがしなければならないことは、コンパイルしてビルドする前に設定ファイルにそれを知らせることです。

class Wget < Formula
  homepage "https://www.gnu.org/software/wget/"
  url "https://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz"
  sha256 "52126be8cf1bddd7536886e74c053ad7d0ed2aa89b4b630f76785bac21695fcd"

  def install
    system "./configure", "--prefix=#{prefix}"
    system "make", "install"
  end
end

独自の数式を作成する前に、開発者ドキュメントといくつかの既存の数式コードをお読みください。

関連情報