上下文:试图学习铁轨/红宝石。将Bitnami Ubuntu Ruby stack VM(2.1)用作开发环境。它是此处详细介绍的预装VM。
问题:制定一个新项目: rails new tp
它将自动运行捆绑式安装,这将失败
Installing sqlite3 (1.3.8)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/opt/bitnami/ruby/bin/ruby extconf.rb --with-sqlite3-dir=/opt/bitnami/sqlite
checking for sqlite3.h... yes
checking for sqlite3_libversion_number() in -lsqlite3... yes
checking for rb_proc_arity()... yes
checking for sqlite3_initialize()... yes
checking for sqlite3_backup_init()... yes
checking for sqlite3_column_database_name()... no
checking for sqlite3_enable_load_extension()... yes
checking for sqlite3_load_extension()... yes
checking for sqlite3_open_v2()... yes
checking for sqlite3_prepare_v2()... yes
checking for sqlite3_int64 in sqlite3.h... yes
checking for sqlite3_uint64 in sqlite3.h... yes
creating Makefile
make "DESTDIR="
compiling database.c
compiling backup.c
compiling sqlite3.c
compiling statement.c
compiling exception.c
linking shared-object sqlite3/sqlite3_native.so
make "DESTDIR=" install
/bin/mkdir: cannot create directory `/opt/bitnami/ruby/lib/ruby/site_ruby/2.1.0/x86_64-linux/sqlite3': Permission denied
make: *** [.RUBYARCHDIR.-.sqlite3.time] Error 1
Gem files will remain installed in /home/bitnami/.bundler/tmp/3622/gems/sqlite3-1.3.8 for inspection.
Results logged to /home/bitnami/.bundler/tmp/3622/gems/sqlite3-1.3.8/ext/sqlite3/gem_make.out
An error occurred while installing sqlite3 (1.3.8), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.3.8'` succeeds before bundling.
当然,由于这些宝石在由 root 管理的目录中,并且作为开发人员我创建文件并以常规 bitnami 用户的方式执行我的工作,因此
当然会失败。, 当然。这包括使用Rails计划并通过IDE使用上述程序。这些假设似乎与RubyStack的设置或应该使用的方式显然是不符的。
问题:
- 如果我的方法与堆栈假设的方法不同,那么假定的方法是什么?
- 如果他们没有区别,为什么要制作一个新项目进行管理?
- 我应该如何使这件事完全工作?
请确保:
ls -l /opt/bitnami/ruby/lib/ruby/site_ruby/2.1.0/x86_64-linux/
说该文件夹属于您,而不是root:root
。如果权利是针对root用户的,则不能创建文件夹,因此要修复它:
sudo chown bitnami:bitnami /home/bitnami/. -R
我强烈建议您使用RVM和GEMSET,以免使用根操作。如下:
为了使用rvm使用 ruby ,只需通过执行即可拾取它:
rvm mount /path/to/system/ruby
然后创建一个宝石:
rvm gemset create bitnami
并使用它:
rvm gemset use bitnami
更新或将所有宝石安装到指定的GEMSET中,但不要将Sudo用于操作,仅:
bundle install