質問編集履歴

1 質問内容を加筆しました

fuzisan

fuzisan score 40

2017/09/22 13:46  投稿

仮想環境内で実行されたrails導入スクリプトがうまく走らない
Vagrant と virtualboxを使って
ubuntu16.04 内にrails環境を整え、railsアプリを作成したいと思い、下記のファイルを作成しました。
`vagrant up`実行後、ターミナルに
```
==> default: Successfully installed rails-5.1.3
==> default: 33 gems installed
```
と表示されたことを確認し、
ユーザ名vagrantでログイン後`rails new sampleapp`を実行すると
`-bash: rails: command not found`
と返されます。
`exec $SHELL`  
を実行するとrailsコマンドが走るようになりました。  
どこが間違っているか、ご指摘いただけませんでしょうか。
なぜ、`provision_user.sh`の`exec $SHELL`が走らないのか
教えていただけませんでしょうか。
よろしくお願いいたします。
## 作成したファイル
Vagrantfile
```
Vagrant.configure("2") do |config|
 config.vm.box = "bento/ubuntu-16.04"
 config.vm.box_check_update = false
 config.vm.network "forwarded_port", guest: 3000, host: 3000
 config.vm.network "private_network", ip: "192.168.33.10"
 config.vm.synced_folder ".", "/home/vagrant"
 config.vm.provider "virtualbox" do |vb|
   vb.gui = false
   vb.memory = "2048"
 end
 config.vm.provision "shell", path: "provision_root.sh"
 config.vm.provision "shell", path: "provision_user.sh", :privileged => false
end
```
provision_root.sh
```
apt-get update -y
apt-get install -y openssh-server
systemctl restart ssh
DEBIAN_FRONTEND=noninteractive apt-get -y install git curl g++ make zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt-dev sqlite3 libsqlite3-dev nodejs mysql-server mysql-client libmysqlclient-dev libmysqld-dev
```
provision_user.sh
```
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
~/.rbenv/bin/rbenv install 2.4.2
~/.rbenv/bin/rbenv rehash
~/.rbenv/bin/rbenv global 2.4.2
~/.rbenv/bin/rbenv exec gem install bundler nokogiri
~/.rbenv/bin/rbenv exec gem install rails -v 5.1.3 --no-ri --no-rdoc
exec $SHELL  
```
  • Vagrant

    1819 questions

    Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

  • rbenv

    135 questions

    rbenvは、Rubyバージョン管理ツール。プロジェクトごとでRubyバージョンを切り替えることが可能です。RVMよりもシンプルで、少ない機能で動作します。本体にはRubyのビルド機能は備わっておらず、ruby-buildというツールを用いる必要があります。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る