Upgrade Your DVM

Blog Post created by mkauffman on Dec 28, 2016

Scott Hurrey mentioned this the other day during our Technical Office hours... You can upgrade a 3000.x DVM using the same installer package that you use for a self-hosted system. This blog post will show you how easy that is, after a brief plug for our office hours. If you've not attended, office hours a great way to get answers to your questions and to network with other developers. The schedule and link to join are on the upper right of this page.


Prequel: Before doing following, you may need to upgrade the DVMs Java version. See the required technologies for self-hosted environments for the release you are installing on the pages. Post Q4 2018/3500  you will also need to upgrade Postgres to 9.6. It's beyond the scope of this document to explain how to upgrade Postgres from 9.4 or 9.5 to 9.6. It's a standard Ubuntu install. Google on +upgrade +postgresql +9.5 to +9.6 +ubuntu +16.04 and that will get you close the right pages.


Here's what you do to upgrade your DVM.You will do all of your work as the vagrant user. Do not use root or bbuser. (Note: See addendum following these instructions for Q4 2018 and later for the resolution to the Access Denied dialog on the login page.)

  1. Stop Learn
  2. Download the installer for the version you want to upgrade to from Behind the Blackboard. Note this only works for Q2 2016 and later.
    1. For this example, I upgraded my DVM from 3000.1.1 to 3000.1.3 (Q2 2016 CU1 to Q2 2016 CU3)
  3. As the vagrant user, create the recommended installation directories.
    1. mkdir /usr/local/bbinstaller
    2. mkdir /usr/local/bbinstaller/3000_1_3/
  4. Create an file. I've placed the full text for one that works for a DVM below.
    1. Place the file in the /usr/local/bbinstaller directory.
  5. Make a copy of the license file. You MUST do this because the install will mess everything up if the is pointing to a license file inside the blackboard directory that is being upgraded.
    1. cp /usr/local/blackboard/config/license/blackboard-license.xml /usr/local/blackboard-license-copy.xml
    2. chown vagrant /usr/local/blackboard-license-copy.xml
  6. Move the downloaded .zip installer file to the /usr/local/bbinstaller/3000_1_3/ directory
    1. The trick here is that on the DVM the /vagrant directory is the same directory as the host directory where you ran the vagrant up and vagrant ssh command. You place the .zip installer file into that directory, then on the DVM guest you can move it from into the installation directory.
  7. cd /usr/local/bbinstaller/3000_1_3/
  8. unzip
  9. Run the upgrade
    1. ./ -c /usr/local/bbinstaller/
  10. Run PushConfig, which will also start the server.
      1. cd /usr/local/blackboard/tools/admin
      2. ./


That's it! Below are the contents of the file that works for upgrading a DVM:


# DVM for upgrade. First attempt was from Q2 2016 CU1 to CU3.

# Kauffman 2016.12.28



# cp /usr/local/blackboard/config/license/blackboard-license.xml /usr/local/blackboard-license-copy.xml

# chown bbuser /usr/local/blackboard-license-copy.xml



## these properties should not be modified manually ##


# just like the Windows upgrade, the Linux upgrade fails if you don't have these 3 dummy antarg lines





############## properties listed here can be modified ###############


Addendum for Q4 2018 and Later:

With Q4 2018 and later the bb-cookie-disclosure makes it impossible to login. so you have to upgrade through the PushConfigUpdates as described above. Check that the system is up and running and that you do get stuck because of the cookie disclosure issue - you see Access Denied on the login page. Then use the to stop Learn,

cd /usr/local/blackboard/cache/plugins

rm -rf bb-cookie-disclosure

cd /usr/local/blackboard/content/vi/BBLEARN/plugins

rm -rf bb-cookie-disclosure

and finally use to start Learn. Ignore the errors in the stdout-stderr log you get because of the missing bb-cookie-disclosure plugin. At this point, I was able to login and use my upgraded DVM.


NOTE: If you use vagrant destroy to stop the system you will need to repeat this process. Using vagrant halt allows you to stop and start the DVM without doing so. However, with halt you may run into other odd behavior like the DVM hangs for a very long time without stopping, etc. I've had to fiddle with the machine when using halt, but have been able to keep using the same box. It's your choice on whether to use destroy and just know that you need to remove the bb-cookie-disclosure every time, our use halt and fiddle.