我想编写一个 Homebrew 公式来安装 Go 包及其依赖项。到目前为止,这是我得到的:
class LsGo < Formula
desc "A more colorful, user-friendly implementation of `ls` written in Go"
homepage "https://github.com/acarl005/ls-go"
url "https://github.com/acarl005/ls-go/archive/v0.0.0.tar.gz"
sha256 "db9ba7300fbbaf92926b2c95fd63e3e936739e359f123b5a45e6ca04b490af51"
depends_on "go" => :build
def install
ENV["GOPATH"] = buildpath
(buildpath/"src/github.com/acarl005").mkpath
ln_s buildpath, buildpath/"src/github.com/acarl005/ls-go"
system "cd", buildpath/"src/github.com/acarl005/ls-go"
system "go", "get", "./"
system "cd", "-"
system "go", "build", "-o", bin/"ls-go"
end
test do
system bin/"ls-go", "--help"
end
end
但是我在 $GOPATH 之外运行 go get ./ 时遇到错误。
==> cd /private/tmp/ls-go-20180612-22435-oidqms/ls-go-0.0.0/src/github.com/acarl005/ls-go
==> go get ./
Last 15 lines from /Users/andy/Library/Logs/Homebrew/ls-go/02.go:
2018-06-12 16:31:14 -0700
go
get
./
go get: no install location for directory /private/tmp/ls-go-20180612-22435-oidqms/ls-go-0.0.0 outside GOPATH
这对我来说没有意义。我将 ENV["GOPATH"] 设置为 /private/tmp/ls-go-20180612-22435-oidqms/ls-go-0.0.0/,然后我 cd进入该路径的子目录。为什么它说我在 $GOPATH 之外?
我应该如何获取我的包的依赖项?
编辑:我宁愿避免销售包。
最佳答案
我很确定您的 Homebrew 公式只是一个 Ruby 类,具有一些 DSL 魔法以使其更友好。这意味着 system 在单独的进程中运行命令,因此:
system "cd", "some_directory"
将在一个单独的进程中更改当前目录,然后该进程退出而不影响父进程。
你应该使用 Dir.chdir相反:
Dir.chdir buildpath/"src/github.com/acarl005/ls-go" do
system "go", "get", "./"
end
system "go", "build", "-o", bin/"ls-go"
使用 block 形式(即 Dir.chdir dir do ... end)将更改指令,运行 system 命令,然后更改回原始目录在继续之前,您不必担心 cd - 部分。
关于go - Golang 的 Homebrew 公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50827348/
在Railcasts上,我注意到一个非常有趣的功能“转到符号”窗口。它像Command-T一样工作,但显示当前文件中可用的类和方法。如何在vim中获取它? 最佳答案 尝试:helptags有各种程序和脚本可以生成标记文件。此外,标记文件格式非常简单,因此很容易将sed(1)或类似的脚本组合在一起,无论您使用何种语言,它们都可以生成标记文件。轻松获取标记文件(除了下载生成器之外)的关键在于格式化样式而不是实际解析语法。 关于ruby-on-rails-Textmate'Gotosymbol
我想安装treetagger在OSX中。为了使它更容易,我尝试搜索Homebrew是否可行。所以我在网上找到了这个formula来自pepijnkokke用户。接下来,我尝试按如下方式安装treetagger:user@MacBook-Pro-User-2:~$brewinstall/Users/user/Downloads/tree-tagger.rb但是,我得到了以下错误:==>Installingdependenciesfortree-tagger:openssl,wget==>Installingtree-taggerdependency:openssl==>Downloadi
我正在为包含自己的测试套件的C库创建Homebrew公式。作为公式的testblock的一部分,我想运行下载文件中包含的测试。测试作为make目标运行(maketest)。但是,Homebrewtestblock在它们自己的临时目录中运行,下载的文件不在路径中。也就是说,以下内容不起作用,因为它找不到文件:testdosystem"make","test"end如何访问文件最初下载和解压的位置?我无法在文档中找到有关该内容的任何信息。或者在这种情况下是否有更好的Homebrew测试解决方案? 最佳答案 testdoblock旨在测试
自97年以来我一直在使用vi/vim进行各种快速编辑和管理任务,但最近才考虑使用它来替换Netbeans作为我选择的ruby编辑器。我发现一件事在Netbeans和Eclipse中非常有用的是Ctrl+Click“转到定义”功能,您可以在其中按住Ctrl键并单击一个类或方法,然后它将带您了解定义。现在,我玩过丰富的ctags和rails.vim,而且很接近,但没有雪茄。这就是我想要的:默认情况下在Netbeans和Eclipse中,您可以在本地rails中按住ctrl并单击本地方法或类项目,但你也可以ctrl+click定义在gems或用Ruby编写的系统库。以Netbeans为例
当我尝试安装Homebrew时,出现以下连接被拒绝错误。请帮我解决这个问题。$ruby-e"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)"curl:(7)Failedtoconnecttoraw.githubusercontent.comport443:Connectionrefused 最佳答案 适合我。除非它是github的真正问题,它可能是但我猜它不是,它可能是您的连接问题。您可以通过浏览器访问相同的URL吗?http
每当我在这台Mac操作系统机器上运行brew命令时,我都会收到以下错误>brewdoctor/usr/local/Library/Homebrew/macos.rb:251:in`require':nosuchfiletoload--macos/xcode(LoadError)from/usr/local/Library/Homebrew/macos.rb:251from/usr/local/Library/Homebrew/utils.rb:3:in`require'from/usr/local/Library/Homebrew/utils.rb:3from/usr/local/Li
每次我尝试运行brew命令时,都会出现以下错误:/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.7/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in`require':cannotloadsuchfile--vendor/bundle/bundler/setup(LoadError)from/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.7/lib/ruby/2.3.0/r
像个白痴一样,我设法删除了我的系统ruby安装。我重新安装了xcode,还安装了RVM这样做:$whichruby返回这个:/Users/alex/.rvm/bin/ruby但是,Homebrew似乎还是坏了:$brew-bash:/usr/local/bin/brew:/usr/bin/ruby:badinterpreter:Nosuchfileordirectory 最佳答案 OSX上的系统ruby符号链接(symboliclink)到Ruby.framework。由于您重新安装了Xcode,它应该已安装,但您需要恢复符
这个问题在这里已经有了答案:HowdoIcreatemultiplesubmitbuttonsforthesameforminRails?(7个答案)关闭9年前。所以..'save'%>'library'%>然后在我的Controller中:with_actiondo|a|a.savedoenda.librarydoendend问题是只有一个操作被调用...两个submit_tags调用相同的操作...知道为什么吗?或者我如何获得两个按钮以将表单提交给两种不同的方法?
努力奔跑if[["$TRAVIS_OS_NAME"=="osx"]];thenbrewinstallpython3;fi在before_install中,我最终得到了/usr/local/Homebrew/Library/Homebrew/brew.rb:12:in\`':HomebrewmustberununderRuby2.3!(RuntimeError)Thecommand"if[["$TRAVIS_OS_NAME"=="osx"]];thenbrewinstallpython3;fi"failedandexitedwith1during.Yourbuildhasbeenstop