加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – “$bin / rails”中的“bin”是什么意思?

发布时间:2020-12-16 23:10:39 所属栏目:百科 来源:网络整理
导读:我正在尝试按照“入门引擎”Rails指南的教程进行操作,并发现: $bin/rails plugin new blorgh --mountable 当我在终端上输入时,我得到: bash: bin/rails: No such file or directory 当我尝试$rails它可以正常工作. 我一直在使用命令行几个月,还有Rails.我
我正在尝试按照“入门引擎”Rails指南的教程进行操作,并发现:
$bin/rails plugin new blorgh --mountable

当我在终端上输入时,我得到:

bash: bin/rails: No such file or directory

当我尝试$rails它可以正常工作.

我一直在使用命令行几个月,还有Rails.我知道$符号,但我对此之后“bin”的含义感到困惑.我习惯在$之后输入“Rails”,但本教程说使用“bin”…

bin /是什么意思?

解决方法

TL;博士

运行bundle install –binstubs,它会工作.你只需要做一次,Bundler会记住你要求它(对于那个项目).

更长的答案

当您使用bundle -binstubs安装bundle时,Bundler会将所有特定于bundle的binstub安装到bin /子目录(相对于Gemfile),而不是将它们放入gemset的全局binstub路径中.

您通常会这样做:

>确保您正在运行的rails binstub是Gemfile中的那个(而不是以后与Bundler分开安装到gemset中的不同版本),以及
>改进执行时间(因为它在功能上等同于捆绑exec rails除了减去一个子进程调用之外).

全局binstubs与Bundler binstubs

如果你键入哪个rails,你会得到一个很长的路径,比如/usr/local/rvm/gems/jruby-1.7.18/bin/rails,其中的内容是:cat` which rails`

#!/usr/bin/env jruby_executable_hooks
#
# This file was generated by RubyGems.
#
# The application 'railties' is installed as part of a gem,and
# this file is here to facilitate running it.
#

require 'rubygems'

version = ">= 0"

if ARGV.first
  str = ARGV.first
  str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
  if str =~ /A_(.*)_z/
    version = $1
    ARGV.shift
  end
end

gem 'railties',version
load Gem.bin_path('railties','rails',version)

运行bundler –binstubs之后,如果你使用bin / rails,你会得到类似的东西:

#!/usr/bin/env jruby
#
# This file was generated by Bundler.
#
# The application 'rails' is installed as part of a gem,and
# this file is here to facilitate running it.
#

require 'pathname'
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",Pathname.new(__FILE__).realpath)

require 'rubygems'
require 'bundler/setup'

load Gem.bin_path('railties','rails')

关键的区别在于bin / version设置了BUNDLE_GEMFILE环境变量,它需要bundler / setup,这就是告诉Bundler用gem路径做的事情. bin / rails脚本具有捆绑器感知功能,并且可以识别您的Gemfile,因此它可以立即为您的环境做好准备.

我通常建议在gemset版本上使用–binstubs和bin / x调用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读