RailsGirls_day.1-3retry

Rails Girls インストール・レシピ:クラウドサービスを利用する Rails Girls - Japanese

ということで再挑戦です。

  1. rbenv を使って Ruby の version を最新にする
kabe:~/environment $ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
kabe:~/environment $ which ruby
/usr/local/rvm/rubies/ruby-2.4.1/bin/ruby

この状態からスタート。 まずは/home/ec2-user/の配下にrbenvとruby-buildをclone

kabe:~/environment $ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
Cloning into '/home/ec2-user/.rbenv'...
remote: Counting objects: 2697, done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 2697 (delta 13), reused 21 (delta 10), pack-reused 2666
Receiving objects: 100% (2697/2697), 506.27 KiB | 631.00 KiB/s, done.
Resolving deltas: 100% (1682/1682), done.
kabe:~/environment $ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Cloning into '/home/ec2-user/.rbenv/plugins/ruby-build'...
remote: Counting objects: 8347, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 8347 (delta 1), reused 1 (delta 0), pack-reused 8344
Receiving objects: 100% (8347/8347), 1.75 MiB | 2.06 MiB/s, done.
Resolving deltas: 100% (5280/5280), done.

PATHをとおして

echo 'PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

インストールして使用バージョンを指定。

kabe:~ $ rbenv install 2.4.2
Downloading ruby-2.4.2.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.2.tar.bz2
Installing ruby-2.4.2...
Installed ruby-2.4.2 to /home/ec2-user/.rbenv/versions/2.4.2
kabe:~ $ rbenv global 2.4.2
kabe:~ $ which ruby
~/.rbenv/shims/ruby

普通に行けたやないか…

5.Bundlerのインストール

kabe:~ $ gem install bundler --no-document 
Ignoring executable-hooks-1.3.2 because its extensions are not built.  Try: gem pristine executable-hooks --version 1.3.2
Ignoring gem-wrappers-1.3.2 because its extensions are not built.  Try: gem pristine gem-wrappers --version 1.3.2
Ignoring nio4r-2.1.0 because its extensions are not built.  Try: gem pristine nio4r --version 2.1.0
Ignoring nokogiri-1.8.1 because its extensions are not built.  Try: gem pristine nokogiri --version 1.8.1
Ignoring websocket-driver-0.6.5 because its extensions are not built.  Try: gem pristine websocket-driver --version 0.6.5
Error loading RubyGems plugin "/usr/local/rvm/gems/ruby-2.4.1@global/gems/executable-hooks-1.3.2/lib/rubygems_plugin.rb": cannot load such file -- executable-hooks/wrapper (LoadError)
Error loading RubyGems plugin "/usr/local/rvm/gems/ruby-2.4.1@global/gems/gem-wrappers-1.3.2/lib/rubygems_plugin.rb": cannot load such file -- gem-wrappers (LoadError)
Fetching: bundler-1.16.0.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /usr/local/rvm/gems/ruby-2.4.1 directory.

なんで/usr/local/rvm/gems/ruby-2.4.1を見に行っちゃうんだろ。

kabe:~/environment $ gem environment
Ignoring executable-hooks-1.3.2 because its extensions are not built.  Try: gem pristine executable-hooks --version 1.3.2
Ignoring gem-wrappers-1.3.2 because its extensions are not built.  Try: gem pristine gem-wrappers --version 1.3.2
Ignoring nio4r-2.1.0 because its extensions are not built.  Try: gem pristine nio4r --version 2.1.0
Ignoring nokogiri-1.8.1 because its extensions are not built.  Try: gem pristine nokogiri --version 1.8.1
Ignoring websocket-driver-0.6.5 because its extensions are not built.  Try: gem pristine websocket-driver --version 0.6.5
Error loading RubyGems plugin "/usr/local/rvm/gems/ruby-2.4.1@global/gems/executable-hooks-1.3.2/lib/rubygems_plugin.rb": cannot load such file -- executable-hooks/wrapper (LoadError)
Error loading RubyGems plugin "/usr/local/rvm/gems/ruby-2.4.1@global/gems/gem-wrappers-1.3.2/lib/rubygems_plugin.rb": cannot load such file -- gem-wrappers (LoadError)
RubyGems Environment:
  - RUBYGEMS VERSION: 2.6.13
  - RUBY VERSION: 2.4.2 (2017-09-14 patchlevel 198) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/local/rvm/gems/ruby-2.4.1
  - USER INSTALLATION DIRECTORY: /home/ec2-user/.gem/ruby/2.4.0
  - RUBY EXECUTABLE: /home/ec2-user/.rbenv/versions/2.4.2/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/local/rvm/gems/ruby-2.4.1/bin
  - SPEC CACHE DIRECTORY: /home/ec2-user/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /home/ec2-user/.rbenv/versions/2.4.2/etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /usr/local/rvm/gems/ruby-2.4.1
     - /usr/local/rvm/gems/ruby-2.4.1@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /home/ec2-user/.rbenv/versions/2.4.2/bin
     - /home/ec2-user/.rbenv/libexec
     - /home/ec2-user/.rbenv/plugins/ruby-build/bin
     - /home/ec2-user/.rbenv/shims
     - /home/ec2-user/.rbenv/bin
     - /home/ec2-user/.nvm/versions/node/v6.11.4/bin
     - /usr/local/rvm/gems/ruby-2.4.1/bin
     - /usr/local/rvm/gems/ruby-2.4.1@global/bin
     - /usr/local/rvm/rubies/ruby-2.4.1/bin
     - /usr/local/bin
     - /bin
     - /usr/bin
     - /home/ec2-user/.local/bin
     - /home/ec2-user/bin
     - /usr/local/sbin
     - /usr/sbin
     - /sbin
     - /opt/aws/bin
     - /usr/local/rvm/bin
     - /home/ec2-user/.local/bin
     - /home/ec2-user/bin
     - /home/ec2-user/.local/bin
     - /home/ec2-user/bin
     - /home/ec2-user/.local/bin
     - /home/ec2-user/bin
     - /home/ec2-user/.local/bin
     - /home/ec2-user/bin

うーん…どうもrvm管理のものと混ざってしまっているように見える(´;ω;`) which gemすると~/.rbenv/shims/gemが返ってくるんだけど、GEM PATHSにこのパスが無いのがおかしい??のかな??

調べてる途中でsudoしてしまって通っちゃった

kabe:~/environment $ sudo gem install bundler --no-rdoc --no-ri
Fetching: bundler-1.16.0.gem (100%)
GemWrappers: Can not wrap missing file: bundle
GemWrappers: Can not wrap missing file: bundler
GemWrappers: Can not wrap missing file: sprockets
GemWrappers: Can not wrap missing file: thor
GemWrappers: Can not wrap missing file: rackup
GemWrappers: Can not wrap missing file: bundle
GemWrappers: Can not wrap missing file: rails
GemWrappers: Can not wrap missing file: ruby_executable_hooks
GemWrappers: Can not wrap missing file: rake
GemWrappers: Can not wrap missing file: nokogiri
GemWrappers: Can not wrap missing file: bundler
Successfully installed bundler-1.16.0
1 gem installed
kabe:~/environment $ sudo gem install rails --no-document
GemWrappers: Can not wrap missing file: sprockets
GemWrappers: Can not wrap missing file: thor
GemWrappers: Can not wrap missing file: rackup
GemWrappers: Can not wrap missing file: bundle
GemWrappers: Can not wrap missing file: rails
GemWrappers: Can not wrap missing file: ruby_executable_hooks
GemWrappers: Can not wrap missing file: rake
GemWrappers: Can not wrap missing file: nokogiri
GemWrappers: Can not wrap missing file: bundler
Successfully installed rails-5.1.4
1 gem installed

これで先にすすめるんだろうか…一旦やってみる。

kabe:~/environment $ mkdir projects
kabe:~/environment $ cd projects
kabe:~/environment/projects $ rails new railsgirls
Ignoring executable-hooks-1.3.2 because its extensions are not built.  Try: gem pristine executable-hooks --version 1.3.2
Ignoring gem-wrappers-1.3.2 because its extensions are not built.  Try: gem pristine gem-wrappers --version 1.3.2
Ignoring nio4r-2.1.0 because its extensions are not built.  Try: gem pristine nio4r --version 2.1.0
Ignoring nokogiri-1.8.1 because its extensions are not built.  Try: gem pristine nokogiri --version 1.8.1
Ignoring websocket-driver-0.6.5 because its extensions are not built.  Try: gem pristine websocket-driver --version 0.6.5
      create  
      create  README.md
      create  Rakefile
      create  config.ru
      create  .gitignore
      create  Gemfile
         run  git init from "."
Initialized empty Git repository in /home/ec2-user/environment/projects/railsgirls/.git/
      create  app
      create  app/assets/config/manifest.js
      create  app/assets/javascripts/application.js
      create  app/assets/javascripts/cable.js
      create  app/assets/stylesheets/application.css
      create  app/channels/application_cable/channel.rb
      create  app/channels/application_cable/connection.rb
      create  app/controllers/application_controller.rb
      create  app/helpers/application_helper.rb
      create  app/jobs/application_job.rb
      create  app/mailers/application_mailer.rb
      create  app/models/application_record.rb
      create  app/views/layouts/application.html.erb
      create  app/views/layouts/mailer.html.erb
      create  app/views/layouts/mailer.text.erb
      create  app/assets/images/.keep
      create  app/assets/javascripts/channels
      create  app/assets/javascripts/channels/.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  bin/update
      create  bin/yarn
      create  config
      create  config/routes.rb
      create  config/application.rb
      create  config/environment.rb
      create  config/secrets.yml
      create  config/cable.yml
      create  config/puma.rb
      create  config/spring.rb
      create  config/environments
      create  config/environments/development.rb
      create  config/environments/production.rb
      create  config/environments/test.rb
      create  config/initializers
      create  config/initializers/application_controller_renderer.rb
      create  config/initializers/assets.rb
      create  config/initializers/backtrace_silencers.rb
      create  config/initializers/cookies_serializer.rb
      create  config/initializers/cors.rb
      create  config/initializers/filter_parameter_logging.rb
      create  config/initializers/inflections.rb
      create  config/initializers/mime_types.rb
      create  config/initializers/new_framework_defaults_5_1.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/apple-touch-icon-precomposed.png
      create  public/apple-touch-icon.png
      create  public/favicon.ico
      create  public/robots.txt
      create  test/fixtures
      create  test/fixtures/.keep
      create  test/fixtures/files
      create  test/fixtures/files/.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  test/system
      create  test/system/.keep
      create  test/application_system_test_case.rb
      create  tmp
      create  tmp/.keep
      create  tmp/cache
      create  tmp/cache/assets
      create  vendor
      create  vendor/.keep
      create  package.json
      remove  config/initializers/cors.rb
      remove  config/initializers/new_framework_defaults_5_1.rb
         run  bundle install
Ignoring executable-hooks-1.3.2 because its extensions are not built.  Try: gem pristine executable-hooks --version 1.3.2
Ignoring gem-wrappers-1.3.2 because its extensions are not built.  Try: gem pristine gem-wrappers --version 1.3.2
Ignoring nio4r-2.1.0 because its extensions are not built.  Try: gem pristine nio4r --version 2.1.0
Ignoring nokogiri-1.8.1 because its extensions are not built.  Try: gem pristine nokogiri --version 1.8.1
Ignoring websocket-driver-0.6.5 because its extensions are not built.  Try: gem pristine websocket-driver --version 0.6.5
--- ERROR REPORT TEMPLATE -------------------------------------------------------
# Error Report

## Questions

Please fill out answers to these questions, it'll help us figure out
why things are going wrong.

- **What did you do?**

  I ran the command `/usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/exe/bundle install`

- **What did you expect to happen?**

  I expected Bundler to...

- **What happened instead?**

  Instead, what happened was...

- **Have you tried any solutions posted on similar issues in our issue tracker, stack overflow, or google?**

  I tried...

- **Have you read our issues document, https://github.com/bundler/bundler/blob/master/doc/contributing/ISSUES.md?**

  ...

## Backtrace

`
Errno::ENOTDIR: Not a directory @ rb_sysopen - /home/ec2-user/.rbenv/shims/gem/bundler.lock
  /usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/lib/bundler/process_lock.rb:9:in `initialize'
  /usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/lib/bundler/process_lock.rb:9:in `open'
  /usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/lib/bundler/process_lock.rb:9:in `lock'
  /usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/lib/bundler/installer.rb:72:in `run'
  /usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/lib/bundler/installer.rb:25:in `install'
  /usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/lib/bundler/cli/install.rb:65:in `run'
  /usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/lib/bundler/cli.rb:224:in `block in install'
  /usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/lib/bundler/settings.rb:136:in `temporary'
  /usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/lib/bundler/cli.rb:223:in `install'
  /usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
  /usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
  /usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/lib/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
  /usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/lib/bundler/cli.rb:27:in `dispatch'
  /usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/lib/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
  /usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/lib/bundler/cli.rb:18:in `start'
  /usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/exe/bundle:30:in `block in <main>'
  /usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/lib/bundler/friendly_errors.rb:122:in `with_friendly_errors'
  /usr/local/rvm/gems/ruby-2.4.1@global/gems/bundler-1.16.0/exe/bundle:22:in `<main>'
`

## Environment

`
Bundler       1.16.0
  Platforms   ruby, x86_64-linux
Ruby          2.4.2p198 (2017-09-14 revision 59899) [x86_64-linux]
  Full Path   /home/ec2-user/.rbenv/versions/2.4.2/bin/ruby
  Config Dir  /home/ec2-user/.rbenv/versions/2.4.2/etc
RubyGems      2.6.13
  Gem Home    /home/ec2-user/.rbenv/shims/gem
  Gem Path    
  User Path   /home/ec2-user/.gem/ruby/2.4.0
  Bin Dir     /home/ec2-user/.rbenv/shims/gem/bin
OpenSSL       
  Compiled    OpenSSL 1.0.2k  26 Jan 2017
  Loaded      OpenSSL 1.0.2k-fips  26 Jan 2017
  Cert File   /etc/pki/tls/cert.pem
  Cert Dir    /etc/pki/tls/certs
Tools         
  Git         2.13.6
  RVM         1.29.3 (latest)
  rbenv       rbenv 1.1.1-25-g6aa70b6

  chruby      not installed
`

## Bundler Build Metadata

`
Built At          2017-10-31
Git SHA           10f20fa33
Released Version  true
`

## Bundler settings

`
path
  Set for the current user (/home/ec2-user/.bundle/config): "/home/ec2-user/.rbenv/shims/gem"
disable_shared_gems
  Set for the current user (/home/ec2-user/.bundle/config): true
`

## Gemfile

### Gemfile

`ruby
source 'https://rubygems.org'

git_source(:github) do |repo_name|
  repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
  "https://github.com/#{repo_name}.git"
end


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.1.4'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use Puma as the app server
gem 'puma', '~> 3.7'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.2'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem 'turbolinks', '~> 5'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.5'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 3.0'
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'

# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
  # Adds support for Capybara system testing and selenium driver
  gem 'capybara', '~> 2.13'
  gem 'selenium-webdriver'
end

group :development do
  # Access an IRB console on exception pages or by using <%= console %> anywhere in the code.
  gem 'web-console', '>= 3.3.0'
  gem 'listen', '>= 3.0.5', '< 3.2'
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
`

### Gemfile.lock

`
<No /home/ec2-user/environment/projects/railsgirls/Gemfile.lock found>
`

--- TEMPLATE END ----------------------------------------------------------------

Unfortunately, an unexpected error occurred, and Bundler cannot continue.

First, try this link to see if there are any existing issue reports for this error:
https://github.com/bundler/bundler/search?q=Not+a+directory+%40+rb_sysopen+-+%2Fhome%2Fec2-user%2F.rbenv%2Fshims%2Fgem%2Fbundler.lock&type=Issues

If there aren't any reports for this error yet, please create copy and paste the report template above into a new issue. Don't forget to anonymize any private data! The new issue form is located at:
https://github.com/bundler/bundler/issues/new
         run  bundle exec spring binstub --all
bundler: command not found: spring
Install missing gem executables with `bundle install`

やっぱりねー! やっぱ一度rvmを削除してrbenvでRubyインストールするところから始めたほうがよさそうな気がしてきました。 もう一度最初から。