From 9b6c612fd410f349e7aa46d6227f9a99f4d68139 Mon Sep 17 00:00:00 2001 From: kamataryo Date: Sun, 27 Aug 2017 13:14:05 +0900 Subject: [PATCH 1/4] Update ruby on Vagrant VM and related document --- README.md | 4 +-- lib/vagrant/provision.sh | 60 ++++++++++++++++++++++++++++++++++++---- 2 files changed, 57 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index ada3bff5..ec109292 100644 --- a/README.md +++ b/README.md @@ -155,11 +155,11 @@ to get and install the virtual machine - this will also install the libraries an After that runs, type vagrant ssh to login and then you can cd /srv/mapwarper - rails c + bundle exec rails c Create a user in the console, as shown above and then exit - rails s -b 0.0.0.0 -p 3000 + bundle exec rails s -b 0.0.0.0 -p 3000 to start the server, running on port 3000 diff --git a/lib/vagrant/provision.sh b/lib/vagrant/provision.sh index 3875e6e5..d6edc99e 100644 --- a/lib/vagrant/provision.sh +++ b/lib/vagrant/provision.sh @@ -1,5 +1,8 @@ #!/usr/bin/env bash +VAGRANT_HOME=/home/vagrant +RUBY_VERSION=2.2.1 + # make sure we have up-to-date packages apt-get update @@ -25,14 +28,60 @@ apt-get install -y ruby1.9.1 libruby1.9.1 ruby1.9.1-dev ri1.9.1 \ #ruby gdal needs the build Werror=format-security removed currently sed -i 's/-Werror=format-security//g' /usr/lib/ruby/1.9.1/x86_64-linux/rbconfig.rb - -gem1.9.1 install bundle + +# https://github.com/rbenv/ruby-build/wiki#suggested-build-environment +apt-get install -y \ + autoconf \ + bison \ + libffi-dev \ + libgdal-dev \ + libgdbm-dev \ + libgdbm3 \ + libncurses5-dev \ + libreadline6-dev \ + libssl-dev \ + libxslt1-dev \ + libyaml-dev \ + python-dev \ + ruby-dev \ + zlib1g-dev + +# install and enable rbenv +if [[ ! -d $VAGRANT_HOME/.rbenv ]]; then + sudo -u vagrant -H git clone https://github.com/rbenv/rbenv.git $VAGRANT_HOME/.rbenv + echo 'export PATH="'$VAGRANT_HOME'/.rbenv/bin:$PATH"' | sudo -u vagrant tee -a $VAGRANT_HOME/.bashrc + echo 'eval "$(rbenv init -)"' | sudo -u vagrant tee -a $VAGRANT_HOME/.bashrc +fi +if [[ ! -d $VAGRANT_HOME/.rbenv/plugins/ruby-build ]]; then + sudo -u vagrant -H git clone https://github.com/rbenv/ruby-build.git $VAGRANT_HOME/.rbenv/plugins/ruby-build + echo 'export PATH="'$VAGRANT_HOME'/.rbenv/plugins/ruby-build/bin:$PATH"' | sudo -u vagrant tee -a $VAGRANT_HOME/.bashrc +fi + +# the local executives +RBENV=$VAGRANT_HOME/.rbenv/bin/rbenv +GEM=$VAGRANT_HOME/.rbenv/shims/gem +BUNDLE=$VAGRANT_HOME/.rbenv/shims/bundle + +# get and switch ruby version +sudo -u vagrant -H $RBENV install $RUBY_VERSION +sudo -u vagrant -H $RBENV global $RUBY_VERSION +sudo -u vagrant -H $RBENV rehash + +# link depended modules from global into local +sudo -u vagrant ln -s \ + /usr/lib/x86_64-linux-gnu/ruby/vendor_ruby/2.0.0/mapscript.so \ + $VAGRANT_HOME/.rbenv/versions/$RUBY_VERSION/lib/ruby/vendor_ruby/2.2.0/x86_64-linux/mapscript.so + +# install module management package +# gem1.9.1 install bundle +sudo -u vagrant -H $GEM install bundler ## install the bundle necessary for mapwarper pushd /srv/mapwarper -# do bundle install as a convenience -sudo -u vagrant -H bundle install +# do bundle install as a convenience and put the dependencies outside to accelerate `bundle exec` command +sudo -u vagrant -H $BUNDLE install --path $VAGRANT_HOME/mapwarper_dependencies + # create user and database for openstreetmap-website db_user_exists=`sudo -u postgres psql postgres -tAc "select 1 from pg_roles where rolname='vagrant'"` if [ "$db_user_exists" != "1" ]; then @@ -58,5 +107,6 @@ fi echo "now migrating database. This may take a few minutes" # migrate the database to the latest version -sudo -u vagrant -H bundle exec rake db:migrate +sudo -u vagrant -H $BUNDLE exec rake db:migrate + popd From baf50d57f1b4064711da756cf79aa3da632958a0 Mon Sep 17 00:00:00 2001 From: kamataryo Date: Fri, 1 Sep 2017 00:15:01 +0900 Subject: [PATCH 2/4] Add RVM --- lib/vagrant/provision.sh | 53 +++++++++------------------------------- 1 file changed, 12 insertions(+), 41 deletions(-) diff --git a/lib/vagrant/provision.sh b/lib/vagrant/provision.sh index d6edc99e..534433e3 100644 --- a/lib/vagrant/provision.sh +++ b/lib/vagrant/provision.sh @@ -20,8 +20,7 @@ dpkg-reconfigure -f noninteractive grub-pc #apt-get upgrade -y # install packages as explained in INSTALL.md -apt-get install -y ruby1.9.1 libruby1.9.1 ruby1.9.1-dev ri1.9.1 \ - postgresql-9.3-postgis-2.1 postgresql-server-dev-all postgresql-contrib \ +apt-get install -y postgresql-9.3-postgis-2.1 postgresql-server-dev-all postgresql-contrib \ build-essential git-core \ libxml2-dev libxslt-dev imagemagick libmapserver1 gdal-bin libgdal-dev ruby-mapscript nodejs @@ -29,58 +28,31 @@ apt-get install -y ruby1.9.1 libruby1.9.1 ruby1.9.1-dev ri1.9.1 \ #ruby gdal needs the build Werror=format-security removed currently sed -i 's/-Werror=format-security//g' /usr/lib/ruby/1.9.1/x86_64-linux/rbconfig.rb -# https://github.com/rbenv/ruby-build/wiki#suggested-build-environment -apt-get install -y \ - autoconf \ - bison \ - libffi-dev \ - libgdal-dev \ - libgdbm-dev \ - libgdbm3 \ - libncurses5-dev \ - libreadline6-dev \ - libssl-dev \ - libxslt1-dev \ - libyaml-dev \ - python-dev \ - ruby-dev \ - zlib1g-dev - -# install and enable rbenv -if [[ ! -d $VAGRANT_HOME/.rbenv ]]; then - sudo -u vagrant -H git clone https://github.com/rbenv/rbenv.git $VAGRANT_HOME/.rbenv - echo 'export PATH="'$VAGRANT_HOME'/.rbenv/bin:$PATH"' | sudo -u vagrant tee -a $VAGRANT_HOME/.bashrc - echo 'eval "$(rbenv init -)"' | sudo -u vagrant tee -a $VAGRANT_HOME/.bashrc -fi -if [[ ! -d $VAGRANT_HOME/.rbenv/plugins/ruby-build ]]; then - sudo -u vagrant -H git clone https://github.com/rbenv/ruby-build.git $VAGRANT_HOME/.rbenv/plugins/ruby-build - echo 'export PATH="'$VAGRANT_HOME'/.rbenv/plugins/ruby-build/bin:$PATH"' | sudo -u vagrant tee -a $VAGRANT_HOME/.bashrc -fi +# install and enable rvm +curl -sSL https://get.rvm.io | bash -s stable -# the local executives -RBENV=$VAGRANT_HOME/.rbenv/bin/rbenv -GEM=$VAGRANT_HOME/.rbenv/shims/gem -BUNDLE=$VAGRANT_HOME/.rbenv/shims/bundle +RVM=/usr/local/rvm/bin/rvm # get and switch ruby version -sudo -u vagrant -H $RBENV install $RUBY_VERSION -sudo -u vagrant -H $RBENV global $RUBY_VERSION -sudo -u vagrant -H $RBENV rehash +sudo -u vagrant -H $RVM install $RUBY_VERSION +sudo -u vagrant -H $RVM use $RUBY_VERSION --default + +which ruby # link depended modules from global into local sudo -u vagrant ln -s \ /usr/lib/x86_64-linux-gnu/ruby/vendor_ruby/2.0.0/mapscript.so \ - $VAGRANT_HOME/.rbenv/versions/$RUBY_VERSION/lib/ruby/vendor_ruby/2.2.0/x86_64-linux/mapscript.so + $VAGRANT_HOME/.rvm/versions/$RUBY_VERSION/lib/ruby/vendor_ruby/2.2.0/x86_64-linux/mapscript.so # install module management package # gem1.9.1 install bundle -sudo -u vagrant -H $GEM install bundler +sudo -u vagrant -H gem install bundler ## install the bundle necessary for mapwarper pushd /srv/mapwarper # do bundle install as a convenience and put the dependencies outside to accelerate `bundle exec` command -sudo -u vagrant -H $BUNDLE install --path $VAGRANT_HOME/mapwarper_dependencies +sudo -u vagrant -H bundle install --path $VAGRANT_HOME/mapwarper_dependencies # create user and database for openstreetmap-website db_user_exists=`sudo -u postgres psql postgres -tAc "select 1 from pg_roles where rolname='vagrant'"` @@ -107,6 +79,5 @@ fi echo "now migrating database. This may take a few minutes" # migrate the database to the latest version -sudo -u vagrant -H $BUNDLE exec rake db:migrate - +sudo -u vagrant -H bundle exec rake db:migrate popd From 45850ec5549871828b9fd669dfaea95510be3631 Mon Sep 17 00:00:00 2001 From: kamataryo Date: Tue, 24 Oct 2017 15:35:20 +0900 Subject: [PATCH 3/4] Some fix --- lib/vagrant/provision.sh | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/lib/vagrant/provision.sh b/lib/vagrant/provision.sh index 534433e3..85c831e4 100644 --- a/lib/vagrant/provision.sh +++ b/lib/vagrant/provision.sh @@ -1,7 +1,10 @@ #!/usr/bin/env bash +set -eu +# constants VAGRANT_HOME=/home/vagrant RUBY_VERSION=2.2.1 +RVM=/usr/local/rvm/bin/rvm # make sure we have up-to-date packages apt-get update @@ -24,29 +27,33 @@ apt-get install -y postgresql-9.3-postgis-2.1 postgresql-server-dev-all postgres build-essential git-core \ libxml2-dev libxslt-dev imagemagick libmapserver1 gdal-bin libgdal-dev ruby-mapscript nodejs - #ruby gdal needs the build Werror=format-security removed currently sed -i 's/-Werror=format-security//g' /usr/lib/ruby/1.9.1/x86_64-linux/rbconfig.rb -# install and enable rvm +# install RVM https://rvm.io/ +gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB curl -sSL https://get.rvm.io | bash -s stable -RVM=/usr/local/rvm/bin/rvm -# get and switch ruby version -sudo -u vagrant -H $RVM install $RUBY_VERSION -sudo -u vagrant -H $RVM use $RUBY_VERSION --default +# TODO: sudoでするか、vagrantユーザーでやるか、わからない + +sudo -u vagrant -H $RVM install 2.2.1 --bin $VAGRANT_HOME/.rvm + +sudo su vagrant + +$RVM install $RUBY_VERSION +sudo -u vagrant -H $RVM use which ruby +which gem # link depended modules from global into local -sudo -u vagrant ln -s \ - /usr/lib/x86_64-linux-gnu/ruby/vendor_ruby/2.0.0/mapscript.so \ - $VAGRANT_HOME/.rvm/versions/$RUBY_VERSION/lib/ruby/vendor_ruby/2.2.0/x86_64-linux/mapscript.so - +ln -s \ + "/usr/lib/x86_64-linux-gnu/ruby/vendor_ruby/2.0.0/mapscript.so" \ + "/usr/local/rvm/rubies/ruby-$RUBY_VERSION/lib/ruby/vendor_ruby/2.2.0/x86_64-linux/mapscript.so" + # install module management package -# gem1.9.1 install bundle -sudo -u vagrant -H gem install bundler +sudo -u vagrant -H $GEM install bundler ## install the bundle necessary for mapwarper pushd /srv/mapwarper From c0c7d3d6a8682fe926aa9db88dd8ee046341cfaa Mon Sep 17 00:00:00 2001 From: kamataryo Date: Thu, 2 Nov 2017 17:35:15 +0900 Subject: [PATCH 4/4] fix some --- lib/vagrant/provision.sh | 49 +++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 28 deletions(-) diff --git a/lib/vagrant/provision.sh b/lib/vagrant/provision.sh index 85c831e4..d3029def 100644 --- a/lib/vagrant/provision.sh +++ b/lib/vagrant/provision.sh @@ -4,45 +4,38 @@ set -eu # constants VAGRANT_HOME=/home/vagrant RUBY_VERSION=2.2.1 -RVM=/usr/local/rvm/bin/rvm # make sure we have up-to-date packages apt-get update ## vagrant grub-pc fix from: https://gist.github.com/jrnickell/6289943 # parameters -echo "grub-pc grub-pc/kopt_extracted boolean true" | debconf-set-selections -echo "grub-pc grub2/linux_cmdline string" | debconf-set-selections -echo "grub-pc grub-pc/install_devices multiselect /dev/sda" | debconf-set-selections -echo "grub-pc grub-pc/install_devices_failed_upgrade boolean true" | debconf-set-selections -echo "grub-pc grub-pc/install_devices_disks_changed multiselect /dev/sda" | debconf-set-selections +echo "grub-pc grub-pc/kopt_extracted boolean true" | sudo debconf-set-selections +echo "grub-pc grub2/linux_cmdline string" | sudo debconf-set-selections +echo "grub-pc grub-pc/install_devices multiselect /dev/sda" | sudo debconf-set-selections +echo "grub-pc grub-pc/install_devices_failed_upgrade boolean true" | sudo debconf-set-selections +echo "grub-pc grub-pc/install_devices_disks_changed multiselect /dev/sda" | sudo debconf-set-selections # vagrant grub fix -dpkg-reconfigure -f noninteractive grub-pc +sudo dpkg-reconfigure -f noninteractive grub-pc # upgrade all packages #apt-get upgrade -y # install packages as explained in INSTALL.md -apt-get install -y postgresql-9.3-postgis-2.1 postgresql-server-dev-all postgresql-contrib \ +sudo apt-get install -y postgresql-9.3-postgis-2.1 postgresql-server-dev-all postgresql-contrib \ build-essential git-core \ libxml2-dev libxslt-dev imagemagick libmapserver1 gdal-bin libgdal-dev ruby-mapscript nodejs #ruby gdal needs the build Werror=format-security removed currently -sed -i 's/-Werror=format-security//g' /usr/lib/ruby/1.9.1/x86_64-linux/rbconfig.rb +sudo sed -i 's/-Werror=format-security//g' /usr/lib/ruby/1.9.1/x86_64-linux/rbconfig.rb -# install RVM https://rvm.io/ + +# install RVM https://rvm.io/integration/vagrant gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB curl -sSL https://get.rvm.io | bash -s stable - - -# TODO: sudoでするか、vagrantユーザーでやるか、わからない - -sudo -u vagrant -H $RVM install 2.2.1 --bin $VAGRANT_HOME/.rvm - -sudo su vagrant - -$RVM install $RUBY_VERSION -sudo -u vagrant -H $RVM use +rvm install $RUBY_VERSION +rvm use $RUBY_VERSION +rvm --default use $RUBY_VERSION # これが聞かない which ruby which gem @@ -53,38 +46,38 @@ ln -s \ "/usr/local/rvm/rubies/ruby-$RUBY_VERSION/lib/ruby/vendor_ruby/2.2.0/x86_64-linux/mapscript.so" # install module management package -sudo -u vagrant -H $GEM install bundler +gem install bundler ## install the bundle necessary for mapwarper pushd /srv/mapwarper # do bundle install as a convenience and put the dependencies outside to accelerate `bundle exec` command -sudo -u vagrant -H bundle install --path $VAGRANT_HOME/mapwarper_dependencies +bundle install --path $VAGRANT_HOME/mapwarper_dependencies # create user and database for openstreetmap-website db_user_exists=`sudo -u postgres psql postgres -tAc "select 1 from pg_roles where rolname='vagrant'"` if [ "$db_user_exists" != "1" ]; then sudo -u postgres createuser -s vagrant - sudo -u vagrant -H createdb -E UTF-8 -O vagrant mapwarper_development + createdb -E UTF-8 -O vagrant mapwarper_development fi # build and set up postgres extensions -sudo -u vagrant psql mapwarper_development -c "create extension postgis;" +psql mapwarper_development -c "create extension postgis;" # set up sample configs if [ ! -f config/database.yml ]; then - sudo -u vagrant cp config/database.example.yml config/database.yml + cp config/database.example.yml config/database.yml fi if [ ! -f config/application.yml ]; then - sudo -u vagrant cp config/application.example.yml config/application.yml + cp config/application.example.yml config/application.yml fi if [ ! -f config/secrets.yml ]; then - sudo -u vagrant cp config/secrets.yml.example config/secrets.yml + cp config/secrets.yml.example config/secrets.yml fi echo "now migrating database. This may take a few minutes" # migrate the database to the latest version -sudo -u vagrant -H bundle exec rake db:migrate +bundle exec rake db:migrate popd