2009-12-23 140 views
25

我使用Ubuntu 9.10 Karmic Koala和Ruby 1.9.1。已安裝的導軌,但rails命令說沒有安裝

我使用sudo gem install rails安裝了Rails,它爲我安裝了所有庫。

當我在終端鍵入rails它說。

程序'rails'目前未安裝。您可以通過鍵入安裝: 命令和apt-get安裝導軌 導軌:找不到命令

我能找到耙,這是下rake1.9.1,但Rails是無處可尋,可有人點我在正確的方向?

編輯:紅寶石路徑不是問題,問題是軌道在哪裏?我該如何執行它?鐵軌不起作用,可執行的生活在哪裏?

+0

您是否更新PATH變量以包含rails安裝的bin目錄? – MarkPowell 2009-12-23 17:03:19

+0

不..我沒有,我應該在哪裏指向?我找不到它的可執行文件。找到rails只返回文檔的鏈接。 – rgoytacaz 2009-12-23 17:35:57

+0

可能重複的[Rails告訴我,它目前沒有安裝](http://stackoverflow.com/questions/7788946/rails-keeps-telling-me-that-its-not-currently-installed) – 2012-10-31 17:32:40

回答

20

正如其他人所說,這很可能是您的bashrc/bash_profile文件中的PATH變量問題。

You can learn how to change PATH.

您可以通過鍵入echo $PATH

+0

它不是一個放在那裏的路徑的問題,它似乎軌道它根本沒有安裝,我該如何檢查它是否真的安裝?最新的可執行文件?它住在哪裏? – rgoytacaz 2009-12-23 17:48:26

+18

運行'gem環境',你會發現'可執行目錄'。 – 2009-12-23 18:56:34

+4

你是偉大的!感謝TK!那正是我所需要的。 事實證明,通過gem安裝它並不會創建符號鏈接。我創建它並將其指向可執行目錄。很棒的工作 – rgoytacaz 2009-12-23 19:27:58

-1

您可能希望在您的bashrc文件中包含Ruby/Jruby文件夾的路徑。這將確保您可以從任何地方運行它。 不要忘記重新啓動終端或「源.bashrc」重新加載終端中的變量。

+0

問題不是與紅寶石,紅寶石工作很好。但是,當運行軌說,它沒有安裝,但如果我做的寶石列表,它會正確地向我展示,軌2.3.5 – rgoytacaz 2009-12-23 17:37:15

+0

我擡起了我的紅寶石安裝的bin文件夾。它有一個「rails」文件。如果我將其重命名爲其他任何內容並嘗試運行rails;它不腳手架或創建項目..斯蒂爾說,沒有安裝軌道做sudo apt-get install來安裝軌道。 但是,如果我將它重新命名爲導軌;那麼它開始工作。所以我非常肯定,只要軌道安裝正確,並且您在bin文件夾中它應該運行。 也許我還沒有安裝它作爲一個寶石,我正在使用JRuby。 – Priyank 2009-12-23 18:37:35

1

gem獲得當前的PATH變量應該放在鐵軌在同一位置紅寶石的可執行腳本。我會看看那裏,並確保權限設置正確,它是可執行的。

11

剛剛有同樣的問題只是把下面的輸入您的.bashrc

PATH="${PATH}:/var/lib/gems/1.8/bin/" 
+2

PATH =「$ {PATH}:/ var/lib/gems/1.8/bin /」 – 2011-09-02 11:11:02

14

如果你正在運行的導軌安裝護欄後,立即命令,你需要你的命令之前重新啓動您的終端會被認可。

+1

在發佈複製和粘貼樣板/逐字回答多個問題時要小心,這些問題往往會被社區標記爲「垃圾」。如果你這樣做,那麼它通常意味着問題是重複的,因此請將它們標記爲:http://stackoverflow.com/a/13149543/419 – Kev 2012-10-31 00:29:54

+1

已標記。我會對此更加小心。答案可能對那些遇到任何帖子的人有幫助(像我一樣),這就是我分享它的原因。 – 2012-10-31 00:48:57

+0

這個評論是相當低估,因此解決了它大聲笑 – RDSpinz 2017-06-24 17:11:04

1

我認爲這不是解決此問題的正確方法。但我所做的是, 我在我的可執行文件目錄中創建了一個rails.rb文件,因爲當我打開那個目錄文件時,並沒有提供以下內容。

#!/usr/bin/env ruby_noexec_wrapper 
# 
# 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 =~ /^_(.*)_$/ and Gem::Version.correct? $1 then 
    version = $1 
    ARGV.shift 
end 

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

然後我嘗試運行我的項目和它的作品rails s ..

但在此之前請確保可執行目錄在你的路徑就像我在我的機器已經: /home/anand/.rvm/gems/ruby-1.9.3-p286/bin:/home/anand/.rvm/gems/[email protected]/bin:/home/anand/.rvm/rubies/ruby-1.9.3-p286/bin:/home/anand/.rvm/bin

按照TK說你可以使用gem environment命令獲得可執行文件路徑

1

我在我的.bashrc文件中添加了以下幾行代碼,它工作正常。

[[-s「$ HOME/.rvm/scripts/rvm」]] & & source「$ HOME /。RVM /腳本/ RVM 「#加載RVM成shell會話作爲功能

PATH =」 $ {PATH}:$ {HOME}/RVM /寶石/紅寶石1.9.3-P327 /斌/ 「

3

假設ruby-2.0.0-p247安裝,rails位於以下位置。

[email protected]$ ls -l ~/.rvm/gems/ruby-2.0.0-p247/bin/ 
total 60 
-rwxr-xr-x 1 prayag prayag 484 Oct 2 00:20 cap 
-rwxr-xr-x 1 prayag prayag 487 Oct 2 00:20 capify 
-rwxr-xr-x 1 prayag prayag 475 Oct 1 21:13 erubis 
-rwxr-xr-x 1 prayag prayag 469 Oct 1 21:13 rackup 
-rwxr-xr-x 1 prayag prayag 480 Oct 1 21:18 rails 
-rwxr-xr-x 1 prayag prayag 494 Oct 2 00:27 restclient 
-rwxrwxr-x 1 prayag prayag 368 Oct 1 21:10 ruby_executable_hooks 
-rwxr-xr-x 1 prayag prayag 467 Oct 2 00:27 sass 
-rwxr-xr-x 1 prayag prayag 475 Oct 2 00:27 sass-convert 
-rwxr-xr-x 1 prayag prayag 467 Oct 2 00:27 scss 
-rwxr-xr-x 1 prayag prayag 487 Oct 1 21:20 sprockets 
-rwxr-xr-x 1 prayag prayag 483 Oct 2 00:29 stripe-console 
-rwxr-xr-x 1 prayag prayag 467 Oct 1 21:17 thor 
-rwxr-xr-x 1 prayag prayag 467 Oct 1 21:20 tilt 
-rwxr-xr-x 1 prayag prayag 474 Oct 1 21:16 tt 

[1].bash_profile應該已經包含下面的行,如果不添加。

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* 

[2]將以下行加到.bashrc的末尾。

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting 
PATH="${PATH}:${HOME}/.rvm/gems/ruby-2.0.0-p247/bin/" 

[3]刷新~/.bashrc

$ source ~/.bashrc 

而且,它應該工作。

2

如果您正在運行rbenv,則需要運行rbenv rehash以訪問rails-api命令。

0

一個可能的解決方案是不維護兩個不同的配置文件.bash_profile.bashrc

它建議在.bash_profile.bashrc之間的區別這個優秀的帖子是從您的.bash_profile文件源.bashrc,然後把PATH和通用設置在.bashrc

報價,

以下行添加到.bash_profile

if [ -f ~/.bashrc ]; then source ~/.bashrc fi

末報價

1

如果您正在使用rbenv不要忘了加

eval "$(rbenv init -)" 

成您的.bash_profile或其他啓動腳本。 運行rbenv rehash也是需要的。