I'm still trying to upgrade our development WeBWorK VM from 2.17 to 2.18. I finally got our network IT guy (yes, we have just one!) to upgrade the VM to Ubuntu 22.04 LTS and Perl 5.34.0. Running check_modules.pl shows all necessary programs/modules are present. I was able to now successfully run the job for webwork2.service. But when I try to visit WeBWorK on the web, I'm now getting the following error messages which I really don't understand. This was an upgrade from 2.17 which was successfully using MariaDB, so I not sure why "install_driver(MariaDB) failed" unless the Ubuntu/Perl upgrades messed that up. I'm also not sure how to "install the DBD::MariaDB module". Any help with deciphering what is going wrong and how to fix it would be greatly appreciated.
Error messages
install_driver(MariaDB) failed: Can't locate DBD/MariaDB.pm in @INC (you may need to install the DBD::MariaDB module) (@INC contains: /opt/webwork/pg/lib /opt/webwork/webwork2/lib /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.34.0 /usr/local/share/perl/5.34.0 /usr/lib/x86_64-linux-gnu/perl5/5.34 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.34 /usr/share/perl/5.34 /usr/local/lib/site_perl) at (eval 903) line 3. Context: 1: % use WeBWorK::Utils::CourseManagement qw(listCourses); 2: % 3: % my $coursesDir = $ce->{webworkDirs}{courses}; 4: % my @courseIDs = listCourses($ce); 5: % 6:
<%= maketext('Welcome to WeBWorK!') %>
7: % 8: % if ((grep { $_ eq 'admin' } @courseIDs) && !-f "$coursesDir/admin/hide_directory") { Traceback (most recent call first): File "(eval 903)", line 3, in "DBI::_firesafe" File "/usr/lib/x86_64-linux-gnu/perl5/5.34/DBI.pm", line 791, in "DBI" File "/usr/lib/x86_64-linux-gnu/perl5/5.34/DBI.pm", line 660, in "DBI" File "/opt/webwork/webwork2/lib/WeBWorK/Utils/CourseManagement.pm", line 92, in "WeBWorK::Utils::CourseManagement" File "template ContentGenerator/Home.html.ep", line 4, in "Mojo::Template::Sandbox::17059843715ca081ee23d50c7c661e29" File "/usr/share/perl5/Mojo/Template.pm", line 160, in "Mojo::Template" File "/usr/share/perl5/Mojo/Template.pm", line 160, in "Mojo::Template" File "/usr/share/perl5/Mojolicious/Plugin/EPLRenderer.pm", line 18, in "Mojolicious::Plugin::EPLRenderer" File "/usr/share/perl5/Mojolicious/Plugin/EPRenderer.pm", line 39, in "Mojolicious::Plugin::EPRenderer" File "/usr/share/perl5/Mojolicious/Renderer.pm", line 225, in "Mojolicious::Renderer" File "/usr/share/perl5/Mojolicious/Renderer.pm", line 106, in "Mojolicious::Renderer" File "/usr/share/perl5/Mojolicious/Controller.pm", line 147, in "Mojolicious::Controller" File "/opt/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm", line 472, in "WeBWorK::ContentGenerator" File "/opt/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm", line 146, in "WeBWorK::ContentGenerator" File "/opt/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm", line 107, in "WeBWorK::ContentGenerator" File "/usr/share/perl5/Mojolicious.pm", line 190, in "Mojolicious" File "/usr/share/perl5/Mojolicious/Plugins.pm", line 15, in "Mojolicious::Plugins" File "/opt/webwork/webwork2/lib/Mojolicious/WeBWorK.pm", line 162, in "Mojolicious::WeBWorK" File "/opt/webwork/webwork2/lib/Mojolicious/WeBWorK.pm", line 142, in "Mojolicious::WeBWorK" File "/usr/share/perl5/Mojolicious/Plugins.pm", line 15, in "Mojolicious::Plugins" File "/usr/share/perl5/Mojolicious/Plugins.pm", line 18, in "Mojolicious::Plugins" File "/usr/share/perl5/Mojolicious/Routes.pm", line 88, in "Mojolicious::Routes" File "/usr/share/perl5/Mojolicious/Routes.pm", line 161, in "Mojolicious::Routes" File "/usr/share/perl5/Mojolicious/Routes.pm", line 44, in "Mojolicious::Routes" File "/usr/share/perl5/Mojolicious/Routes.pm", line 46, in "Mojolicious::Routes" File "/usr/share/perl5/Mojolicious/Routes.pm", line 52, in "Mojolicious::Routes" File "/usr/share/perl5/Mojolicious.pm", line 125, in "Mojolicious" File "/usr/share/perl5/Mojolicious.pm", line 134, in "Mojolicious" File "/usr/share/perl5/Mojolicious/Plugins.pm", line 15, in "Mojolicious::Plugins" File "/usr/share/perl5/Mojolicious.pm", line 200, in "Mojolicious" File "/usr/share/perl5/Mojolicious.pm", line 200, in "Mojolicious" File "/usr/share/perl5/Mojolicious/Plugins.pm", line 15, in "Mojolicious::Plugins" File "/usr/share/perl5/Mojolicious/Plugins.pm", line 18, in "Mojolicious::Plugins" File "/usr/share/perl5/Mojolicious.pm", line 139, in "Mojolicious" File "/usr/share/perl5/Mojo/Server.pm", line 70, in "Mojo::Server" File "/usr/share/perl5/Mojo/EventEmitter.pm", line 15, in "Mojo::EventEmitter" File "/usr/share/perl5/Mojo/Server/Daemon.pm", line 103, in "Mojo::Server::Daemon" File "/usr/share/perl5/Mojo/EventEmitter.pm", line 15, in "Mojo::EventEmitter" File "/usr/share/perl5/Mojo/Transaction/HTTP.pm", line 60, in "Mojo::Transaction::HTTP" File "/usr/share/perl5/Mojo/Server/Daemon.pm", line 222, in "Mojo::Server::Daemon" File "/usr/share/perl5/Mojo/Server/Daemon.pm", line 202, in "Mojo::Server::Daemon" File "/usr/share/perl5/Mojo/EventEmitter.pm", line 15, in "Mojo::EventEmitter" File "/usr/share/perl5/Mojo/IOLoop/Stream.pm", line 109, in "Mojo::IOLoop::Stream" File "/usr/share/perl5/Mojo/IOLoop/Stream.pm", line 57, in "Mojo::IOLoop::Stream" File "/usr/share/perl5/Mojo/Reactor/Poll.pm", line 141, in "Mojo::Reactor::Poll" File "/usr/share/perl5/Mojo/Reactor/Poll.pm", line 141, in "Mojo::Reactor::Poll" File "/usr/share/perl5/Mojo/Reactor/EV.pm", line 54, in "Mojo::Reactor::EV" File "/usr/share/perl5/Mojo/Reactor/EV.pm", line 32, in "Mojo::Reactor::EV" File "/usr/share/perl5/Mojo/Reactor/EV.pm", line 32, in "Mojo::Reactor::EV" File "/usr/share/perl5/Mojo/IOLoop.pm", line 134, in "Mojo::IOLoop" File "/usr/share/perl5/Mojo/Server/Prefork.pm", line 152, in "Mojo::Server::Prefork" File "/usr/share/perl5/Mojo/Server/Prefork.pm", line 93, in "Mojo::Server::Prefork" File "/usr/share/perl5/Mojo/Server/Prefork.pm", line 78, in "Mojo::Server::Prefork" File "/usr/share/perl5/Mojo/Server/Hypnotoad.pm", line 74, in "Mojo::Server::Hypnotoad" File "/usr/local/bin/hypnotoad", line 14, in "main" Perhaps the DBD::MariaDB perl module hasn't been fully installed, or perhaps the capitalisation of 'MariaDB' isn't right. Available drivers: DBM, ExampleP, File, Gofer, Mem, Proxy, SQLite, Sponge, mysql. at /opt/webwork/webwork2/lib/WeBWorK/Utils/CourseManagement.pm line 92.
Context
87: my $dbh = DBI->connect(
88: $ce->{database_dsn},
89: $ce->{database_username},
90: $ce->{database_password},
91: {
92: PrintError => 0,
93: RaiseError => 1,
94: },
95: );
96:
97: my $dbname = ${ce}->{database_name};
Call stack
in Mojo::Template::__ANON__ called at line 289 of /usr/lib/x86_64-linux-gnu/perl-base/Carp.pm
in Carp::croak called at line 815 of /usr/lib/x86_64-linux-gnu/perl5/5.34/DBI.pm
in DBI::install_driver called at line 660 of /usr/lib/x86_64-linux-gnu/perl5/5.34/DBI.pm
in DBI::connect called at line 92 of /opt/webwork/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
in WeBWorK::Utils::CourseManagement::listCourses called at line 4 of template ContentGenerator/Home.html.ep
in Mojo::Template::Sandbox::17059843715ca081ee23d50c7c661e29::__ANON__ called at line 160 of /usr/share/perl5/Mojo/Template.pm
in (eval) called at line 160 of /usr/share/perl5/Mojo/Template.pm
in Mojo::Template::process called at line 18 of /usr/share/perl5/Mojolicious/Plugin/EPLRenderer.pm
in Mojolicious::Plugin::EPLRenderer::_render called at line 39 of /usr/share/perl5/Mojolicious/Plugin/EPRenderer.pm
in Mojolicious::Plugin::EPRenderer::__ANON__ called at line 225 of /usr/share/perl5/Mojolicious/Renderer.pm
in Mojolicious::Renderer::_render_template called at line 106 of /usr/share/perl5/Mojolicious/Renderer.pm
in Mojolicious::Renderer::render called at line 147 of /usr/share/perl5/Mojolicious/Controller.pm
in Mojolicious::Controller::render called at line 472 of /opt/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm
in WeBWorK::ContentGenerator::content called at line 146 of /opt/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm
in (eval) called at line 107 of /opt/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm
in WeBWorK::ContentGenerator::go called at line 190 of /usr/share/perl5/Mojolicious.pm
in Mojolicious::_action called at line 15 of /usr/share/perl5/Mojolicious/Plugins.pm
in Mojolicious::Plugins::__ANON__ called at line 162 of /opt/webwork/webwork2/lib/Mojolicious/WeBWorK.pm
in (eval) called at line 142 of /opt/webwork/webwork2/lib/Mojolicious/WeBWorK.pm
in Mojolicious::WeBWorK::__ANON__ called at line 15 of /usr/share/perl5/Mojolicious/Plugins.pm
in Mojolicious::Plugins::__ANON__ called at line 18 of /usr/share/perl5/Mojolicious/Plugins.pm
in Mojolicious::Plugins::emit_chain called at line 88 of /usr/share/perl5/Mojolicious/Routes.pm
in Mojolicious::Routes::_action called at line 161 of /usr/share/perl5/Mojolicious/Routes.pm
in Mojolicious::Routes::_controller called at line 44 of /usr/share/perl5/Mojolicious/Routes.pm
in Mojolicious::Routes::continue called at line 46 of /usr/share/perl5/Mojolicious/Routes.pm
in Mojolicious::Routes::continue called at line 52 of /usr/share/perl5/Mojolicious/Routes.pm
in Mojolicious::Routes::dispatch called at line 125 of /usr/share/perl5/Mojolicious.pm
in Mojolicious::dispatch called at line 134 of /usr/share/perl5/Mojolicious.pm
in Mojolicious::__ANON__ called at line 15 of /usr/share/perl5/Mojolicious/Plugins.pm
in Mojolicious::Plugins::__ANON__ called at line 200 of /usr/share/perl5/Mojolicious.pm
in (eval) called at line 200 of /usr/share/perl5/Mojolicious.pm
in Mojolicious::_exception called at line 15 of /usr/share/perl5/Mojolicious/Plugins.pm
in Mojolicious::Plugins::__ANON__ called at line 18 of /usr/share/perl5/Mojolicious/Plugins.pm
in Mojolicious::Plugins::emit_chain called at line 139 of /usr/share/perl5/Mojolicious.pm
in Mojolicious::handler called at line 70 of /usr/share/perl5/Mojo/Server.pm
in Mojo::Server::__ANON__ called at line 15 of /usr/share/perl5/Mojo/EventEmitter.pm
in Mojo::EventEmitter::emit called at line 103 of /usr/share/perl5/Mojo/Server/Daemon.pm
in Mojo::Server::Daemon::__ANON__ called at line 15 of /usr/share/perl5/Mojo/EventEmitter.pm
in Mojo::EventEmitter::emit called at line 60 of /usr/share/perl5/Mojo/Transaction/HTTP.pm
in Mojo::Transaction::HTTP::server_read called at line 222 of /usr/share/perl5/Mojo/Server/Daemon.pm
in Mojo::Server::Daemon::_read called at line 202 of /usr/share/perl5/Mojo/Server/Daemon.pm
in Mojo::Server::Daemon::__ANON__ called at line 15 of /usr/share/perl5/Mojo/EventEmitter.pm
in Mojo::EventEmitter::emit called at line 109 of /usr/share/perl5/Mojo/IOLoop/Stream.pm
in Mojo::IOLoop::Stream::_read called at line 57 of /usr/share/perl5/Mojo/IOLoop/Stream.pm
in Mojo::IOLoop::Stream::__ANON__ called at line 141 of /usr/share/perl5/Mojo/Reactor/Poll.pm
in (eval) called at line 141 of /usr/share/perl5/Mojo/Reactor/Poll.pm
in Mojo::Reactor::Poll::_try called at line 54 of /usr/share/perl5/Mojo/Reactor/EV.pm
in Mojo::Reactor::EV::__ANON__ called at line 32 of /usr/share/perl5/Mojo/Reactor/EV.pm
in (eval) called at line 32 of /usr/share/perl5/Mojo/Reactor/EV.pm
in Mojo::Reactor::EV::start called at line 134 of /usr/share/perl5/Mojo/IOLoop.pm
in Mojo::IOLoop::start called at line 152 of /usr/share/perl5/Mojo/Server/Prefork.pm
in Mojo::Server::Prefork::_spawn called at line 93 of /usr/share/perl5/Mojo/Server/Prefork.pm
in Mojo::Server::Prefork::_manage called at line 78 of /usr/share/perl5/Mojo/Server/Prefork.pm
in Mojo::Server::Prefork::run called at line 74 of /usr/share/perl5/Mojo/Server/Hypnotoad.pm
in Mojo::Server::Hypnotoad::run called at line 14 of /usr/local/bin/hypnotoad