質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.35%

  • Ruby

    10209questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails

    9552questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

rails g controller 〜ができません。

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 3
  • VIEW 97

kyotaro

score 0

前提・実現したいこと

$ rails g controller 〜 のコマンドでコントローラを作成したいです。
(使用しているパソコンはMacで、作業はvagrantです)

発生している問題・エラーメッセージ

rails g controller 〜 を実行したところ

/usr/bin/env:ruby’: No such file or directory


と出てしまいます。

試したこと

$ ruby -v で確認
Command 'ruby' not found, but can be installed with:

snap install ruby  # version 2.6.3, or
apt  install ruby

See 'snap info ruby' for additional versions.

と出たので次は、、、

$ sudo apt install ruby

Reading package lists... Done
Building dependency tree       
Reading state information... Done
ruby is already the newest version (2:2.5.0+1bbox1~bionic1).
0 upgraded, 0 newly installed, 0 to remove and 23 not upgraded.

となりましたが結果は変わらずでした。

追記①2019/8/6

Vagrantfileの中身

# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure(2) do |config|
  # The most common configuration options are documented and commented below.
  # For a complete reference, please see the online documentation at
  # https://docs.vagrantup.com.

  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://atlas.hashicorp.com/search.
  config.vm.box = "ubuntu/bionic64"
  # Disable automatic box update checking. If you disable this, then
  # boxes will only be checked for updates when the user runs
  # `vagrant box outdated`. This is not recommended.
  # config.vm.box_check_update = false

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine. In the example below,
  # accessing "localhost:8080" will access port 80 on the guest machine.
  config.vm.network "forwarded_port", guest: 3000, host: 3000

  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  config.vm.network "private_network", ip: "192.168.33.10"

  # Create a public network, which generally matched to bridged network.
  # Bridged networks make the machine appear as another physical device on
  # your network.
  # config.vm.network "public_network"

  # Share an additional folder to the guest VM. The first argument is
  # the path on the host to the actual folder. The second argument is
  # the path on the guest to mount the folder. And the optional third
  # argument is a set of non-required options.


  # Provider-specific configuration so you can fine-tune various
  # backing providers for Vagrant. These expose provider-specific options.
  # Example for VirtualBox:
  #
  # config.vm.provider "virtualbox" do |vb|
  #   # Display the VirtualBox GUI when booting the machine
  #   vb.gui = true
  #
  #   # Customize the amount of memory on the VM:
  #   vb.memory = "1024"
  # end
  #
  # View the documentation for the provider you are using for more
  # information on available options.

  # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
  # such as FTP and Heroku are also available. See the documentation at
  # https://docs.vagrantup.com/v2/push/atlas.html for more information.
  # config.push.define "atlas" do |push|
  #   push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
  # end

  # Enable provisioning with a shell script. Additional provisioners such as
  # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
  # documentation for more information about their specific syntax and use.
   config.vm.provision "shell", inline: <<-SHELLSC
     function install {
           echo installing $1
               shift
                   apt-get -y install "$@" >/dev/null 2>&1
     }

     echo updating package information
     apt-add-repository -y ppa:brightbox/ruby-ng >/dev/null 2>&1
     apt-get -y update >/dev/null 2>&1

     install 'development tools' build-essential

     install Ruby ruby2.5 ruby2.5-dev
     update-alternatives --set ruby /usr/bin/ruby2.3 >/dev/null 2>&1
     update-alternatives --set gem /usr/bin/gem2.3 >/dev/null 2>&1
     echo installing Bundler
     echo "gem: --no-ri --no-rdoc" > ~/.gemrc
     gem install bundler -N >/dev/null 2>&1
     install Git git
     install SQLite sqlite3 libsqlite3-dev
     install 'Nokogiri dependencies' libxml2 libxml2-dev libxslt1-dev zlib1g-dev
     install 'ExecJS runtime' nodejs
     echo 'Installing rails'
     gem install rails
     gem install railties
     gem install listen
     gem install puma
     gem install sass
     gem install tilt
     gem install spring
     gem install byebug
     gem install chromedriver-helper
     gem install sqlite3
     gem install rest-client
     update-locale LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_ALL=en_US.UTF-8
     echo 'You are now on Rails!'
     echo '        o o o o o o o . . .    ______________________________ _____=======_||____'
     echo '    o      _____            |                            | |                 |'
     echo '  .][__n_n_|DD[  ====_____  |                            | |                 |'
     echo ' >(________|__|_[_________]_|____________________________|_|_________________|'
     echo ' _/oo OOOOO oo`  ooo   ooo  `o!o!o                  o!o!o` `o!o         o!o`  '
     echo ' -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-'
   SHELLSC
end

追記②2019/8/6

$ echo $PATHの結果

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

初歩的なことになってしまいますが
何か解決方法がわかる方がいらっしゃったら
ご教授いただけると幸いでございます。
よろしくお願い致します。

また何か足りない情報などがございましたら
おっしゃっていただけると助かります。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kazto

    2019/08/05 21:27

    それでは、Vagrantfileがあると思いますが、その内容を質問に追記していただけますでしょうか。
    簡単に推測すると、仮想環境内にRubyがインストールされていないと予測できます。

    キャンセル

  • kazto

    2019/08/06 07:56

    以下、ご確認ください。
    1. `vagrant ssh`でちゃんと仮想環境にログインした状態で`ruby -v`など行っているか
    2. `echo $PATH`の結果はどう出力されるか

    キャンセル

  • kyotaro

    2019/08/06 08:37

    コメントありがとうございます。
    Vagrantfileとecho $PATHの追記を行いました。

    またruby -vもvagrant sshを行った後にしましたが結果は変わらずでした。

    キャンセル

回答 1

0

vagrant provisionは実行しましたか?


   config.vm.provision "shell", inline: <<-SHELLSC
     function install {
           echo installing $1
               shift
                   apt-get -y install "$@" >/dev/null 2>&1
     }

     echo updating package information
     apt-add-repository -y ppa:brightbox/ruby-ng >/dev/null 2>&1
     apt-get -y update >/dev/null 2>&1

     install 'development tools' build-essential

     install Ruby ruby2.5 ruby2.5-dev
     update-alternatives --set ruby /usr/bin/ruby2.3 >/dev/null 2>&1
     update-alternatives --set gem /usr/bin/gem2.3 >/dev/null 2>&1
     echo installing Bundler
     echo "gem: --no-ri --no-rdoc" > ~/.gemrc
     gem install bundler -N >/dev/null 2>&1
     install Git git
     install SQLite sqlite3 libsqlite3-dev
     install 'Nokogiri dependencies' libxml2 libxml2-dev libxslt1-dev zlib1g-dev
     install 'ExecJS runtime' nodejs
     echo 'Installing rails'

♯### ↓ここから
     gem install rails
     gem install railties
     gem install listen
     gem install puma
     gem install sass
     gem install tilt
     gem install spring
     gem install byebug
     gem install chromedriver-helper
     gem install sqlite3
     gem install rest-client
#### ↑ここまでを

     update-locale LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_ALL=en_US.UTF-8
     echo 'You are now on Rails!'
     echo '        o o o o o o o . . .    ______________________________ _____=======_||____'
     echo '    o      _____            |                            | |                 |'
     echo '  .][__n_n_|DD[  ====_____  |                            | |                 |'
     echo ' >(________|__|_[_________]_|____________________________|_|_________________|'
     echo ' _/oo OOOOO oo`  ooo   ooo  `o!o!o                  o!o!o` `o!o         o!o`  '
     echo ' -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-'
   SHELLSC
end


Vagrantfile内の上記の部分を、フルパスで記載するようにしてください。

     /usr/bin/gem install rails
     /usr/bin/gem install railties
     /usr/bin/gem install listen
     /usr/bin/gem install puma
     /usr/bin/gem install sass
     /usr/bin/gem install tilt
     /usr/bin/gem install spring
     /usr/bin/gem install byebug
     /usr/bin/gem install chromedriver-helper
     /usr/bin/gem install sqlite3
     /usr/bin/gem install rest-client

Vagrantfile内、下記の場所を書き換えて実行してみて下さい。

   config.vm.provision "shell", inline: <<-SHELLSC
     function install {
           echo installing $1
               shift
                   apt-get -y install "$@" >/dev/null 2>&1
     }

ここの、
apt-get -y install "$@" >/dev/null 2>&1
を、
apt-get -y install "$@"
に変更


この変更で、大量にログが出るようになります。
それを全て貼り付けて下さい。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/08/16 08:08

    なるほど。私の読みが外れていたようです。失礼しました。gemのインストールがうまく行ってない可能性がでてきました。

    キャンセル

  • 2019/08/16 20:42

    いつもご丁寧にありがとうございます。

    申し訳ございません。
    大量のログとはどの事でしょうか。

    キャンセル

  • 2019/08/16 21:45

    vagrant provisionを実行した際に出るログです。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.35%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Ruby

    10209questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails

    9552questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。