如何使用宝石与Ubuntu?
-
05-09-2019 - |
题
我最近升级到Ubuntu 9.04,我必须使用宝石的问题。
我安装了Ruby,RubyGems的和Rails使用apt-get处理。
所述rails
命令确实工作。
我然后安装Capistrano的和其他的宝石,如heroku上。 为了做到这一点,我使用的命令:
sudo gem install XXX
当我想使用cap
命令它不工作:
bash: cap: command not found
有与其它宝石的命令相同。
我有什么特别的事要做,以使宝石命令工作?
解决方案
哪里是我的宝石?
您可以在其中找到你的宝石使用gem environment
命令存储。例如:
chris@chris-laptop:~$ gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.2
- RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /usr/bin/ruby1.8
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /usr/lib/ruby/gems/1.8
- /home/chris/.gem/ruby/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
如果你看一下“创业板的路径:”部分中,您可以看到宝石可以存储在我的笔记本电脑两个地方:在我的家目录/usr/lib/ruby/gems/1.8
或.gem
目录
您还可以看到,可执行文件被存储在可执行文件目录,其在这种情况下是/usr/bin
。
由于/usr/bin
是在我的道路这让我跑cap
,merb
,rails
等。
更新您的PATH
如果由于某种原因,你的可执行文件目录是不是你的路径上(例如,如果它是/var/lib/gems/1.8/bin),那么你需要更新你的PATH变量。
假设你正在使用bash壳。您可以通过键入在shell提示符下当前会话很快做到这一点;让我们假设你想/var/lib/gems/1.8/bin
添加到路径:
export PATH=$PATH:/var/lib/gems/1.8/bin
和按回车键。这追加新路径到当前路径的末尾。注意$PATH
和/var/lib/gems/1.8/bin
之间的冒号
要为你将需要编辑或者您的.profile
或.bashrc
文件和相同的行添加到文件末尾的所有会话设置的值。比这就是我一直在做我通常编辑以外,没有理由我.bashrc
文件。完成后,保存文件,然后通过键入刷新您的环境:
bash
在shell提示。这将导致.bashrc
得到重读。
目前的任何点可以通过键入检查$PATH
的当前值
echo $PATH
在shell提示。
下面是从我自己的服务器,其中,我的用户名是“克里斯”中的一个的样本和机器名称是“克里斯膝上型”:
chris@chris-laptop:~$
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
chris@chris-laptop:~$
chris@chris-laptop:~$ export PATH=$PATH:/var/lib/gems/1.8/bin
chris@chris-laptop:~$
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/1.8/bin
chris@chris-laptop:~$
我的宝石将不会加载!
“红宝石宝石不会即使安装加载”凸显使用多个不同版本的Ruby的一个共同的问题;有时宝石环境和宝石路不同步的:
rb(main):003:0> Gem.path
=> ["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
irb(main):004:0> exit
这里任何Ruby进程正在寻找其宝石只在一个地方。
:~/$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.7
- RUBY VERSION: 1.9.1 (2009-05-12 patchlevel 129) [x86_64-linux]
- INSTALLATION DIRECTORY: /opt/ruby1.9/lib/ruby/gems/1.9.1
- RUBY EXECUTABLE: /opt/ruby1.9/bin/ruby1.9
- EXECUTABLE DIRECTORY: /opt/ruby1.9/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /opt/ruby1.9/lib/ruby/gems/1.9.1
- /home/mark/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
在宝石环境的输出仔细看:
- GEM PATHS:
- /opt/ruby1.9/lib/ruby/gems/1.9.1
这是不相同的路径通过Gem.path作为返回:
["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
这是很难说究竟是什么造成lib/ruby
更改为lib/ruby1.9
但最有可能开发商与多个Ruby版本工作。快速mv
或ln
将解决这个问题。
如果您确实需要使用多个Ruby版本的工作,那么你真的应该使用 RVM 。
其他提示
正如@克里斯指出的,你需要的宝石环境添加到您的路径。你可以这样做:
echo 'export PATH=$PATH:/var/lib/gems/1.8/bin' | tee --append ~/.bashrc
,其中宝石存储在文件夹必须是在你的路径,例如矿是:
/home/victor/.gem/ruby/1.8/bin
通过键入检查你的路径
echo $PATH
据作用似乎在安装RubyGems的时候,现在在Ubuntu 9.04,我有这个问题。我注意到,在“宝石环境”可执行文件的目录是“/var/lib/gems/1.8/bin”,而不是“在/ usr / bin中” ......这是一个RubyGems的问题或与Ubuntu 9.04 ??
这是我遇到的解决方案是“/var/lib/gems/1.8/bin”添加到我的$ PATH这样做: 出口PATH = $ PATH:/var/lib/gems/1.8/bin 但它不保存...我怎样才能挽救我的路?
...谢谢
Resolvi:coloqueiø出口PATH = $ PATH:/var/lib/gems/1.8/bin没有〜/ .bashrc中! =]
MKMF是ruby1.9.1-dev软件包的一部分。该软件包包含需要为1.9.1扩展库的头文件。你需要做安装ruby1.9.1-dev软件包:
须藤易于得到安装ruby1.9.1-dev的