簡體   English   中英

如何安裝Rails並創建沒有root訪問權限的新應用程序?

[英]How do I install rails and create a new application without root access?

我正在嘗試在我的主目錄中的Linux機器上安裝Ruby on Rails(無root訪問權限)。 我的ruby版本是ruby 2.1.5p273 (2014-11-13) [x86_64-linux-gnu] 到目前為止,我能夠:

$ gem install --user-install rails

顯然已經將rails安裝到~/.gem/ruby/2.1.0/bin/rails

$ ./.gem/ruby/2.1.0/bin/rails --version
Rails 4.2.6

但是隨后它無法創建應用程序:

$ ~/.gem/ruby/2.1.0/bin/rails new myapp
  create  
  create  README.rdoc
  create  Rakefile
  create  config.ru
  create  .gitignore
  create  Gemfile
  create  app
  create  app/assets/javascripts/application.js
  create  app/assets/stylesheets/application.css
  create  app/controllers/application_controller.rb
  create  app/helpers/application_helper.rb
  create  app/views/layouts/application.html.erb
  create  app/assets/images/.keep
  create  app/mailers/.keep
  create  app/models/.keep
  create  app/controllers/concerns/.keep
  create  app/models/concerns/.keep
  create  bin
  create  bin/bundle
  create  bin/rails
  create  bin/rake
  create  bin/setup
  create  config
  create  config/routes.rb
  create  config/application.rb
  create  config/environment.rb
  create  config/secrets.yml
  create  config/environments
  create  config/environments/development.rb
  create  config/environments/production.rb
  create  config/environments/test.rb
  create  config/initializers
  create  config/initializers/assets.rb
  create  config/initializers/backtrace_silencers.rb
  create  config/initializers/cookies_serializer.rb
  create  config/initializers/filter_parameter_logging.rb
  create  config/initializers/inflections.rb
  create  config/initializers/mime_types.rb
  create  config/initializers/session_store.rb
  create  config/initializers/wrap_parameters.rb
  create  config/locales
  create  config/locales/en.yml
  create  config/boot.rb
  create  config/database.yml
  create  db
  create  db/seeds.rb
  create  lib
  create  lib/tasks
  create  lib/tasks/.keep
  create  lib/assets
  create  lib/assets/.keep
  create  log
  create  log/.keep
  create  public
  create  public/404.html
  create  public/422.html
  create  public/500.html
  create  public/favicon.ico
  create  public/robots.txt
  create  test/fixtures
  create  test/fixtures/.keep
  create  test/controllers
  create  test/controllers/.keep
  create  test/mailers
  create  test/mailers/.keep
  create  test/models
  create  test/models/.keep
  create  test/helpers
  create  test/helpers/.keep
  create  test/integration
  create  test/integration/.keep
  create  test/test_helper.rb
  create  tmp/cache
  create  tmp/cache/assets
  create  vendor/assets/javascripts
  create  vendor/assets/javascripts/.keep
  create  vendor/assets/stylesheets
  create  vendor/assets/stylesheets/.keep
     run  bundle install
There was an error while trying to write to `/var/lib/gems/2.1.0`. It is likely that you need to
grant write permissions for that path.
     run  bundle exec spring binstub --all
bundler: command not found: spring
Install missing gem executables with `bundle install`

Rails是否需要root訪問權限?

謝謝!

是的,沒有。

一個典型的開發環境是使用RVM (或rbenv ,從未嘗試過)設置的,並且完全包含在您的主文件夾中: Ruby解釋器 (可能不止一個!),它的gemsconfiguration 為此,您不需要root訪問。

通過RVM安裝Ruby時,可能會提示您安裝從源代碼編譯Ruby所需的依賴項。 那是一種情況。 (而且,事實證明,如果sudo不可用,可能會失敗,所以可能會失敗,所以請參閱此問題以獲取可能的替代方法

您有時可能需要root用戶訪問權限才能安裝開發庫,這些開發庫需要編譯某些gem的本機擴展 例如,對於gem pg您需要在Debian及其衍生產品(Ubuntu,Mint等)上使用libpq-dev 雖然您可以嘗試將源下載到主文件夾中,然后將編譯器指向該方向,但這會花費一些時間。 這是兩種情況。


但是沒有RVM ...

在您的特定情況下, rails很好地完成了這項工作:它生成了模板,但bundle install模板的依賴項失敗。 它使用RubyGems默認的gem目錄。 看到它是/var/lib/gems/2.1.0我猜您正在使用系統范圍的Ruby 對於開發而言,這不是理想的選擇,因為您可能希望在不同的解釋器版本(甚至是實現,例如Rubinius)之間來回切換, 使用受限於主文件夾的版本管理器

不是說你無能為力。 嘗試cd進入生成的文件夾並運行:

bundle --help install

您會看到很多選擇。 --path甚至--standalone可能會在這里保存您的位置,它會覆蓋 gem的安裝路徑,並記住它已被覆蓋的事實,因此它知道在哪里查找gem。


無論如何,一旦安裝了應用程序並解決並安裝了依賴項,您將不需要root訪問權限即可運行它(當然是在非特權端口上)或設置另一個應用程序,因為任何必要的系統范圍的依賴項都將屆時已安裝。

據我所知,Ruby on Rails應用程序默認需要root權限才能安裝gem。 可能已經配置好了,但是還有更簡單的解決方案-Ruby Version Manager或類似的東西。

Rvm在用戶的主目錄中安裝ruby gem,並且不需要root訪問權限即可安裝gem。 除了不必要的root Rvm允許在一個用戶配置文件中運行不同的Ruby環境(例如,不同的Ruby或RoR版本)。

並查看如何在沒有root用戶訪問權限的情況下安裝Rvm,例如在此處此處或自行查找

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM