自制的公式建议

时间:2014-04-23 09:09:16

标签: makefile homebrew

我正在尝试为tableutil创建一个家庭酿造公式。我想出了以下内容:

require "formula"

class Tableutil < Formula
  homepage "http://expiretable.fnord.se"
  url "https://github.com/gsson/tableutil/archive/master.tar.gz"
  sha1 "58ccb6826f28bf4e97b320317741a3971516279a"
  version "0.6"

  def install

    system "make", "PREFIX=#{prefix}"

    system "install"
  end

end

然而我收到以下错误:

brew install tableutil 
==> Downloading https://github.com/gsson/tableutil/archive/master.tar.gz
Already downloaded: /Library/Caches/Homebrew/tableutil-0.6.tar.gz
==> make PREFIX=/usr/local/Cellar/tableutil/0.6
==> install
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 file2
       install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
               [-o owner] file1 ... fileN directory
       install -d [-v] [-g group] [-m mode] [-o owner] directory ...

这是因为taleutil的makefile具有以下内容

PREFIX?=/usr/local
INSTALL_BIN?=${PREFIX}/bin
INSTALL_MAN?=${PREFIX}/man/man1

INSTALL=/usr/bin/install

install: ${TARGET}
        ${INSTALL} -g bin -o root -m 755 ${TARGET} ${INSTALL_BIN}
        ${INSTALL} -g bin -o root -m 644 ${MAN} ${INSTALL_MAN}

我使用system&#34; make&#34;,&#34; PREFIX =#{prefix}&#34;修复Makefile以便它安装在适当的地窖中,但我相信这会导致makefile的安装组件出现问题,但我不确定是什么问题。

1 个答案:

答案 0 :(得分:0)

在这一行:

system "install"

您正在调用程序install,其中 是一个二进制文件(在/usr/bin中),但您没有传递正确的参数。

但是,您实际上并不想这样做 - 您想要调用make install,因此您应该将该行更改为

system "make", "install"