Edited at

Rails 環境構築でつまずいた箇所メモ


環境

VagrantFileで仮想環境の設定を用意する。


仮想環境

CentOS/7

Ruby 2.6.0

Rails 5.2.2


mountしない

下記のようなエラーが表示されて自分のOSとmountしてくれない。

/sbin/mount.vboxsf: mounting failed with the error: No such device


やったこと

参考

https://qiita.com/takutoki/items/33cf1230e032931f9adc

開発用のディレクトリでコマンドプロンプトを開き下記コマンドを順に実行する。

vagrant plugin install vagrant-vbguest

vagrant vbguest

vagrant teraterm

teraterm用のプラグインを用意していたため vagrant teraterm でログイン。

無い場合は vagrant ssh で。

ssh接続ができたら、開いたターミナルで下記コマンド実行

sudo /etc/init.d/vboxadd setup

何度もvagrant upやり直していたからか、ここで一旦下記コマンドを実行しないと上手く動かなかった。

vagrant destroy

※vagrantで用意した環境を削除してしまうため実行時は注意

改めて下記コマンドを実行するとmoutできた。

vagrant up


sqlite3 入らない

仮想環境で bundle install を実行するとsqlite3が無いというエラーが表示された。

An error occurred while installing sqlite3 (1.3.13), and Bundler cannot

continue.
Make sure that `gem install sqlite3 -v '1.3.13' --source
'https://rubygems.org/'` succeeds before bundling.


やったこと

最初の方のログで↓のようにコマンドをいくつか教えてくれる。権限によってはsudo つける必要はある。

sqlite3.h is missing. Try 'brew install sqlite3',

'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
and check your shared library search path (the
location where your sqlite3 shared library is located).

下記コマンドを実行しsqlite3をインストール。

sudo yum install sqlite-devel

改めて bundle install を実行すると上手くインストールできた。


bundlerのエラー

bundle した時に下記エラーが表示される。

You must use Bundler 2 or greater with this lockfile.

VagrantFileのbundlerのバージョンは2.0.1になっていた。


やったこと

参考

https://github.com/bundler/bundler/issues/6784

下記コマンドを実行するとエラーが出なくなった。

gem update --system