-bash搞砸了?

时间:2010-10-16 20:23:04

标签: bash

试图弄清楚为什么我无法设置Heroku Gem并遵循这个答案SO 2396004 (Heroku Gem Doesn't Work)。我想我可能搞砸了我的系统。

现在我正在键入heroku列表,我得到(-bash:heroku:command not found),当我输入ruby -v时,我得到(-bash:ruby:command not found)

以下是最近的输出

zak$ export PATH=$PATHEXECUTABLE DIRECTORY: /Users/zak/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/bin
-bash: export: `DIRECTORY:': not a valid identifier
-bash: export: `/Users/zak/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/bin': not a valid identifier

ZKidds-MacBook-Pro:rails_projects zak$ export PATH=$PATH:/Users/zak/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/bin

ZKidds-MacBook-Pro:rails_projects zak$ heroku list
-bash: heroku: command not found

ZKidds-MacBook-Pro:rails_projects zak$ cd ..

ZKidds-MacBook-Pro:~ zak$ export PATH=$PATH:/Users/zak/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/bin

ZKidds-MacBook-Pro:~ zak$ heroku list
-bash: heroku: command not found

ZKidds-MacBook-Pro:~ zak$ echo $PATH
:/Users/zak/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/bin:/Users/zak/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/bin
-bash: GEM: command not found

ZKidds-MacBook-Pro:~ zak$ gem env
-bash: gem: command not found

ZKidds-MacBook-Pro:~ zak$ heroko list
-bash: heroko: command not found

2 个答案:

答案 0 :(得分:1)

当您将PATH设置为仅一个值时,您丢失了所有其他要搜索的位置,例如/bin/usr/bin。逐步设置PATH:

export PATH=/new/place/bin:$PATH

你可以比这更精细,但这种基本技术有效。

同时,退出并再次登录 - 这将让您最轻松地前进。可替换地:

export PATH=$PATH:/bin:/usr/bin

此外,您的第一行是:

export PATH=$PATHEXECUTABLE DIRECTORY: /Users/zak/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/bin

当你运行export时,它会导出一个或多个变量,但这些值必须是简单的变量名,或者必须是变量赋值:

export SOMEVAR NOTHERVAR=new-value ...

投诉-bash: export: DIRECTORY:':没有有效的标识符'告诉您“目录:”无效。目前尚不清楚你的想法。你有一个类似的抱怨/ Users / zak / ...不是标识符。

您只需为一次命令运行设置环境变量:

PATH=$EXECUTABLE_DIRECTORY:$PATH /Users/zak/bin/command

命令的环境将包括给定的PATH的值;但请注意,shell不会搜索具有该修改路径的命令。


  

......我想做的是......

我不是Ruby或Rails的用户,但在我的Mac(10.6.4)上,我可以找到:

Osiris-2 JL:  ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
Osiris-2 JL: rails -v
Rails 2.3.5
Osiris-2 JL: which ruby rails
/usr/bin/ruby
/usr/bin/rails
Osiris-2 JL: 

所以,在我的机器上,Ruby和Rails都在/usr/bin。我没有Heroku安装AFAIK(不管怎么说都不在我的PATH上)。你的第一个出口破坏了PATH;第二个将Ruby 1.9.2目录添加到空PATH。显然,Heroku安装在其他地方,或者根本没有安装。您更改了目录 - 一个不需要工作路径的内置操作;你再次将Ruby 1.9.2目录添加到你的PATH(它没有改变任何有用的东西)。 Heroku仍未找到。你回应了PATH(另一个内置的) - 我不清楚GEM: command not found消息来自哪里。并且找不到命令gemheroko(原文如此)。所以,你的第一个命令就是训练问题。

然后你评论道:

  

就我试图做的事情而言,我只是试图设置我的heroku帐户并在我尝试添加公共ssh密钥时卡住了。我安装的heroko gem(思考)没有注册。那时我读了上面提到的stackoverflow问题,表明我的路径不正确。我关闭了终端并重新打开。运行ruby -v输出之类的东西,但运行rails -v却没有。还有什么事要做吗?为什么rails -v不输出?

     

特别是在rails -v上我从/ / report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError) from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:261:in激活'/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:827:in {{1}} activate'系统/库/框架/ Ruby.framework / Versions / 1.8 / usr / lib / ruby​​ / 1.8 / ruby​​gems.rb:68:来自/ usr / bin / rails的“gem”:18“

这表明你在/ usr / bin中安装了rails(就像我一样),但是安装已经以某种方式被改变,因此它是自我不一致的。无论是那个还是混乱的环境(PATH)都会造成麻烦。但通常情况下,软件可以找到自己的比特,所以它表明有一些东西。部分麻烦可能是您使用Ruby 1.9.2程序和一些Ruby 1.8软件。

我的个人政策是严格保留o / s提供的软件;我让Mac更新解决了这个问题。如果我想要我自己的版本的东西,我构建它并在我的控制下安装它 - 我用Perl,有时用GCC,用Git或SVN或Mercurial或其他这样的软件。

我会考虑确保您完全使用Ruby 1.9.2环境,并担心是否需要并行更新Rails环境。我怀疑使用Ruby 1.9.2和为Ruby 1.8.x构建的Rails会导致一些麻烦 - 但我不确定。

答案 1 :(得分:0)

我认为你错误理解了正在阅读的文档。 当您阅读“$ PATHEXECUTABLE DIRECTORY”时,它是一个占位符,可以替换您要添加的实际路径。 为了做到这一点,请遵循Jonathan Leffler所说的。