🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

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

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Vagrant

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

Q&A

解決済

1回答

2687閲覧

vagrant upするとcommand not foundエラーが出てしまう。(ruby環境構築)

Homaresan

総合スコア15

Ruby

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

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Vagrant

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

0グッド

0クリップ

投稿2019/11/04 07:06

前提・実現したいこと

今現在、Virtual Box、Vagrantをインストールし、Mac上にVagrantでUbuntuゲストOSを作成し、その中でrubyの環境を構築しようといています。

Vagrant boxを作成しvagrantfileを編集しvagrant upすると下記のエラーが出てしまうことを解決したいです。

※途中エラーが出なかった箇所があったので、エラー文が出た箇所だけ分けて下記に記述させていただきました。

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

default: dpkg-preconfigure: unable to re-open stdin: No such file or directory
default: fatal: could not create work tree dir '/home/ubuntu/.rbenv': Permission denied default: Cloning into '/home/vagrant/.rbenv/plugins/ruby-build'... default: /tmp/vagrant-shell: line 20: rbenv: command not found default: /tmp/vagrant-shell: line 21: rbenv: command not found default: /tmp/vagrant-shell: line 22: rbenv: command not found
default: ERROR: While executing gem ... (Gem::FilePermissionError) default: You don't have write permissions for the /var/lib/gems/2.3.0 directory.

Vagrantfile

# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "ubuntu/xenial64" config.vm.network :"forwarded_port", guest: 3000, host: 3000 config.vm.synced_folder "~/workspace", "/home/ubuntu/workspace", :create => true, mount_options: ['dmode=777','fmode=755'] config.vm.provision "shell", privileged: false, inline: <<-SHELL sudo apt-get -y upgrade sudo apt-get -y update # install essentials sudo apt-get install git curl g++ make vim nodejs libreadline-dev libssl-dev zlib1g-dev imagemagick libmagickcore-dev libmagickwand-dev -y sudo apt-get remove ruby -y # get rbenv and set path git clone git://github.com/rbenv/rbenv.git /home/ubuntu/.rbenv echo 'export PATH="/home/ubuntu/.rbenv/bin:$PATH"' >> ~/.profile echo 'eval "$(rbenv init -)"' >> ~/.profile . /home/ubuntu/.profile # install ruby-build mkdir -p ~/.rbenv/plugins git clone git://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build # install ruby rbenv install 2.3.0 rbenv global 2.3.0 rbenv rehash sudo apt-get install ruby-railties -y # install bundle gem install bundler --no-document # install postgresql sudo apt-get install postgresql postgresql-contrib python-psycopg2 libpq-dev -y SHELL end

試したこと

以前同じような質問(今回と同じ条件でpythonの環境構築)を行った時、全体としてログインユーザーを「ubuntu」ではなく、「vagrant」として処理を書く必要があると指摘されたので今回もその点を修正してvagrant upしましたが、上記と同じエラーが出てしまい解決に至らなかったので、質問しました。

修正後のVagrantfile

# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "ubuntu/xenial64" config.vm.network :"forwarded_port", guest: 3000, host: 3000 config.vm.synced_folder "~/workspace", "/home/vagrant/workspace", :create => true, mount_options: ['dmode=777','fmode=755'] config.vm.provision "shell", privileged: false, inline: <<-SHELL sudo apt-get -y upgrade sudo apt-get -y update # install essentials sudo apt-get install git curl g++ make vim nodejs libreadline-dev libssl-dev zlib1g-dev imagemagick libmagickcore-dev libmagickwand-dev -y sudo apt-get remove ruby -y # get rbenv and set path git clone git://github.com/rbenv/rbenv.git /home/ubuntu/.rbenv echo 'export PATH="/home/ubuntu/.rbenv/bin:$PATH"' >> ~/.profile echo 'eval "$(rbenv init -)"' >> ~/.profile . /home/vagrant/.profile # install ruby-build mkdir -p ~/.rbenv/plugins git clone git://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build # install ruby rbenv install 2.3.0 rbenv global 2.3.0 rbenv rehash sudo apt-get install ruby-railties -y # install bundle gem install bundler --no-document # install postgresql sudo apt-get install postgresql postgresql-contrib python-psycopg2 libpq-dev -y SHELL end

参考記事

Ruby on Railsで作ったWEBアプリとPythonで作った機械学習モデルを連携するには?
のruby環境構築と同じ条件で行っています。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

修正後となってるVagrantfileを再度/home/ubuntuで検索して~に置換するとよいです

追記

とりあえず、provisionに成功するようにだけしたものは以下です。
注: 一度vagrant upに失敗した場合は、vagrant destroyでイメージを破棄しないと失敗し続けます。
また、コメントでも指摘した通りいくつかの問題がありrailsを使うことは実質不可能かと思います。

vagrantfile

1# -*- mode: ruby -*- 2# vi: set ft=ruby : 3 4Vagrant.configure("2") do |config| 5 config.vm.box = "ubuntu/xenial64" 6 config.vm.network :"forwarded_port", guest: 3000, host: 3000 7 config.vm.synced_folder "~/workspace", "/home/vagrant/workspace", :create => true, mount_options: ['dmode=777','fmode=755'] 8 config.vm.provision "shell", privileged: false, inline: <<-SHELL 9 10 sudo apt-get -y upgrade 11 sudo apt-get -y update 12 13 # install essentials 14 sudo apt-get install git curl g++ make vim nodejs libreadline-dev libssl-dev zlib1g-dev imagemagick libmagickcore-dev libmagickwand-dev libsqlite3-dev -y 15 sudo apt-get remove ruby -y 16 17 # get rbenv and set path 18 git clone git://github.com/rbenv/rbenv.git ~.rbenv 19 echo 'export PATH="~.rbenv/bin:$PATH"' >> ~/.profile 20 echo 'eval "$(rbenv init -)"' >> ~/.profile 21 . /home/vagrant/.profile 22 23 # install ruby-build 24 mkdir -p ~/.rbenv/plugins 25 git clone git://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build 26 27 # install ruby 28 rbenv install 2.3.0 29 rbenv global 2.3.0 30 rbenv rehash 31 sudo apt-get install ruby-railties -y 32 33 # install bundle 34 gem install bundler --no-document 35 36 # install postgresql 37 sudo apt-get install postgresql postgresql-contrib python-psycopg2 libpq-dev -y 38 SHELL 39end

投稿2019/11/04 08:50

編集2019/11/04 16:09
asm

総合スコア15149

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Homaresan

2019/11/04 09:43

ご回答ありがとうございます!修正前のvagrantfileに戻し、. /home/ubuntu/.profileを~/.profileにすると言う解釈であってますか?初歩的な質問ですみません...
asm

2019/11/04 10:10

修正後として掲載されてるものでも、いくつか変換忘れがあるという指摘になります。 ついでにホームディレクトリを直接指定するよりも~を使ったほうが楽です。
Homaresan

2019/11/04 10:59

なるほどです!ホームディレクトリは~にしてみます! 修正後のvagrantfileに変換忘れがあるとの事ですが、具体的にどこを編集すればいいですか?
asm

2019/11/04 12:09

普通にエディタの検索機能を使えば見つかると思いますが > git clone git://github.com/rbenv/rbenv.git /home/ubuntu/.rbenv > echo 'export PATH="/home/ubuntu/.rbenv/bin:$PATH"' >> ~/.profile この2行ですね ただ、これをしたところで、rails(およびheroku)が使えるかというと・・・多分無理ですね ruby2.3が古すぎるという問題とruby-railtiesをインストールしたら意味がないということ、libsqlite3-devをインストールする必要があるという3つの問題があります。
Homaresan

2019/11/04 15:04

なるほど…申し訳ないのですが、vagrantfileを修正したものを共有してもらえませんか?記事主やたくさんの人に以前から質問しているのですが、皆原因がわからないみたいで自分もとても困っています。あつかましいことは承知ですが、どうかお願いしたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問