微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Ruby gem部署shell脚本并安装在bin目录中

我希望在我的gem的bin目录中放置一个 shell脚本,以及属于该包的其他 Ruby程序.我希望将这个shell脚本原样安装在bin目录中(即没有包装器).这可能与Ruby宝石有关吗?如果没有其他可能,我会对安装后挂钩感到满意.有人有这方面的经验吗?

解决方法

此问题在此处描述:
https://github.com/rubygems/rubygems/issues/88

如果您正在开发的宝石仅供您自己使用,您可以简单地安装它

gem install --no-wrapper my_gem

我认为你最好写一个运行你的bash脚本的ruby脚本.这是一个如何做到这一点的例子:

斌/ test_gem

#!/usr/bin/env ruby

bin_dir = File.expand_path(File.dirname(__FILE__))
shell_script_path = File.join(bin_dir,'test_gem.sh')

`#{shell_script_path}`

斌/ test_gem.sh

#!/bin/sh

echo "Hello World!"

test_gem.gemspec

spec.files = [
  # ...
  'bin/test_gem','bin/test_gem.sh'
]

# ...

spec.executables = ['test_gem']

注意:不要忘记将bin文件夹中的两个文件都设置为可执行文件

请注意,虽然test_gem.sh是使用文件Rubygems命令注册的,但它没有注册为可执行文件:它只会被放置在已安装的gem的目录中,但不会被包装/填充.

如果你安装了gem(并在必要时运行rbenv rehash),调用test_gem将导致ruby脚本执行你的shell脚本.

原文地址:https://www.jb51.cc/ruby/267974.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐