如何强制自制软件安装本地文件?

Aer*_*ang 1 homebrew

我尝试运行:

brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb
Run Code Online (Sandbox Code Playgroud)

但得到

curl: (56) Recv failure: Connection reset by peer
Run Code Online (Sandbox Code Playgroud)

因为http://sourceforge.net/projects/sshpass/files/sshpass/1.06/sshpass-1.06.tar.gz需要通过运行 JavaScript 的浏览器下载。无论如何,现在我有了这个文件,我把它放进去$(brew --cache)brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb再次运行,但它没有用。自制软件中是否有命令强制安装本地 tar.gz 文件或允许 sshpass.rb 定位本地文件而不是 url?

bfo*_*ine 5

简单的回答:你不能;没有办法做到这一点。

但是,您可以自己覆盖缓存下载。不要使用$(brew --cache):这是一般缓存位置,但 Homebrew 可能会为此公式的缓存下载使用不同的名称。要知道确切的路径使用brew --cache <formula>

brew --cache https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb
Run Code Online (Sandbox Code Playgroud)

我的 Linuxbrew 安装的示例输出:

/home/me/.cache/Homebrew/downloads/b46bd79ca1d250486d5a0e0fcd455ed1d78eea689cf0612dffcdd7056b153efc--sshpass-1.06.tar.gz
Run Code Online (Sandbox Code Playgroud)

将您下载的文件放在这个确切的位置,并使用这个确切的名称。

Homebrew 仍会尝试向HEADURL 发出请求以检查其Last-Modified标头,但如果该请求不成功,则不会失败。

现在像以前一样运行你的命令:

$ brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb
Run Code Online (Sandbox Code Playgroud)

它应该打印类似“ Downloading https://…”的内容,然后是Already downloaded: ….