Bug #17528
Updated by Peter Amstutz over 3 years ago
When installing workbench1 or rails API workbench on a system without config.yml (or with an incomplete config.yml): <pre> Running transaction Installing : arvados-workbench-2.2.0~dev20210413145725-1.x86_64 1/1 WARNING: Unsupported init system. Can't manage web service. WARNING: Web service (Nginx or Apache) not found. To override, set the WEB_SERVICE environment variable to the name of the service hosting the Rails server. For Debian-based systems, then reconfigure this package with dpkg-reconfigure. For RPM-based systems, then reinstall this package. Assumption: is configured to serve Rails from /var/www/arvados-workbench/current Assumption: and passenger run as apache Creating symlinks to configuration in /etc/arvados/workbench ...... done. Running bundle install... done. Ensuring directory and file permissions ...... done. Checking configuration for completeness...Called 'load' without the :safe option -- defaulting to safe mode. You can avoid this warning in the future by setting the SafeYAML::OPTIONS[:default_mode] option (to :safe or :unsafe). open /etc/arvados/config.yml: no such file or directory rake aborted! Keep-web service must be configured in Services.WebDAV and/or Services.WebDAVDownload /var/www/arvados-workbench/current/lib/config_validators.rb:23:in `validate_download_config' /var/www/arvados-workbench/current/config/arvados_config.rb:193:in `block in <top (required)>' /var/www/arvados-workbench/shared/vendor_bundle/ruby/2.5.0/gems/railties-5.2.4.5/lib/rails/railtie.rb:216:in `instance_eval' /var/www/arvados-workbench/shared/vendor_bundle/ruby/2.5.0/gems/railties-5.2.4.5/lib/rails/railtie.rb:216:in `configure' /var/www/arvados-workbench/shared/vendor_bundle/ruby/2.5.0/gems/railties-5.2.4.5/lib/rails/railtie.rb:174:in `configure' /var/www/arvados-workbench/current/config/arvados_config.rb:184:in `<top (required)>' /var/www/arvados-workbench/shared/vendor_bundle/ruby/2.5.0/gems/bootsnap-1.4.7/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' /var/www/arvados-workbench/shared/vendor_bundle/ruby/2.5.0/gems/bootsnap-1.4.7/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' /var/www/arvados-workbench/shared/vendor_bundle/ruby/2.5.0/gems/bootsnap-1.4.7/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' /var/www/arvados-workbench/shared/vendor_bundle/ruby/2.5.0/gems/bootsnap-1.4.7/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' /var/www/arvados-workbench/shared/vendor_bundle/ruby/2.5.0/gems/bootsnap-1.4.7/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' /var/www/arvados-workbench/shared/vendor_bundle/ruby/2.5.0/gems/activesupport-5.2.4.5/lib/active_support/dependencies.rb:291:in `block in require' /var/www/arvados-workbench/shared/vendor_bundle/ruby/2.5.0/gems/activesupport-5.2.4.5/lib/active_support/dependencies.rb:257:in `load_dependency' /var/www/arvados-workbench/shared/vendor_bundle/ruby/2.5.0/gems/activesupport-5.2.4.5/lib/active_support/dependencies.rb:291:in `require' /var/www/arvados-workbench/shared/vendor_bundle/ruby/2.5.0/gems/bootsnap-1.4.7/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:49:in `require_relative' /var/www/arvados-workbench/current/config/application.rb:31:in `<class:Application>' /var/www/arvados-workbench/current/config/application.rb:29:in `<module:ArvadosWorkbench>' /var/www/arvados-workbench/current/config/application.rb:28:in `<top (required)>' /var/www/arvados-workbench/current/Rakefile:9:in `require' /var/www/arvados-workbench/current/Rakefile:9:in `<top (required)>' /var/www/arvados-workbench/shared/vendor_bundle/ruby/2.5.0/gems/rake-13.0.3/exe/rake:27:in `<top (required)>' /usr/local/rvm/gems/ruby-2.5.8/bin/bundle:23:in `load' /usr/local/rvm/gems/ruby-2.5.8/bin/bundle:23:in `<main>' /usr/local/rvm/gems/ruby-2.5.8/bin/ruby_executable_hooks:24:in `eval' /usr/local/rvm/gems/ruby-2.5.8/bin/ruby_executable_hooks:24:in `<main>' (See full trace by running task with --trace) failed. Precompiling assets... skipped. PLEASE NOTE: The arvados-workbench package was not configured completely because /etc/arvados/config.yml needs some tweaking. Please refer to the documentation at <http://doc.arvados.org/install/install-workbench-app.html#configure> for more details. When config.yml has been modified, reconfigure or reinstall this package. Verifying : arvados-workbench-2.2.0~dev20210413145725-1.x86_64 1/1 Installed: arvados-workbench.x86_64 0:2.2.0~dev20210413145725-1 Complete! </pre> The good: the package installs and tells the user what happened (config not good enough) and what to do (reconfigure/reinstall package). The bad: the package needs to be reconfigured/reinstalled after config.yml is tweaked. The ugly: there is a backtrace printed. To close this bug, at a minimum, we should not print that backtrace. For bonus points: ideally, the package reconfigure/reinstall step wouldn't be needed. Can we create a default that makes sense? Or use package dependencies to make sure config.yml is already in good shape before installation? How do other packages handle this kind of configuration requirement?