X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/9f1850a385ee8e0a011474de19ee6507b0b168f3..ed268e53d2014ce5c49301559a46e67660f1404c:/build/rails-package-scripts/postinst.sh diff --git a/build/rails-package-scripts/postinst.sh b/build/rails-package-scripts/postinst.sh index e317f85aaf..c832606785 100644 --- a/build/rails-package-scripts/postinst.sh +++ b/build/rails-package-scripts/postinst.sh @@ -10,12 +10,6 @@ set -e DATABASE_READY=1 APPLICATION_READY=1 -if [ -s "$HOME/.rvm/scripts/rvm" ] || [ -s "/usr/local/rvm/scripts/rvm" ]; then - COMMAND_PREFIX="/usr/local/rvm/bin/rvm-exec default" -else - COMMAND_PREFIX= -fi - report_not_ready() { local ready_flag="$1"; shift local config_file="$1"; shift @@ -125,17 +119,17 @@ setup_conffile() { } prepare_database() { - DB_MIGRATE_STATUS=`$COMMAND_PREFIX bin/rake db:migrate:status 2>&1 || true` + DB_MIGRATE_STATUS=`bin/rake db:migrate:status 2>&1 || true` if echo "$DB_MIGRATE_STATUS" | grep -qF 'Schema migrations table does not exist yet.'; then # The database exists, but the migrations table doesn't. - run_and_report "Setting up database" $COMMAND_PREFIX bin/rake \ + run_and_report "Setting up database" bin/rake \ "$RAILSPKG_DATABASE_LOAD_TASK" db:seed elif echo "$DB_MIGRATE_STATUS" | grep -q '^database: '; then run_and_report "Running db:migrate" \ - $COMMAND_PREFIX bin/rake db:migrate + bin/rake db:migrate elif echo "$DB_MIGRATE_STATUS" | grep -q 'database .* does not exist'; then if ! run_and_report "Running db:setup" \ - $COMMAND_PREFIX bin/rake db:setup 2>/dev/null; then + bin/rake db:setup 2>/dev/null; then echo "Warning: unable to set up database." >&2 DATABASE_READY=0 fi @@ -198,15 +192,27 @@ configure_version() { cd "$RELEASE_PATH" export RAILS_ENV=production - if ! $COMMAND_PREFIX bundle --version >/dev/null 2>&1; then - run_and_report "Installing bundler" $COMMAND_PREFIX gem install bundler --version 2.2.19 --no-document + if ! bundle --version >/dev/null 2>&1; then + run_and_report "Installing bundler" gem install bundler --version 2.2.19 --no-document fi run_and_report "Running bundle config set --local path $SHARED_PATH/vendor_bundle" \ - $COMMAND_PREFIX bin/bundle config set --local path $SHARED_PATH/vendor_bundle + bundle config set --local path "$SHARED_PATH/vendor_bundle" run_and_report "Running bundle install" \ - $COMMAND_PREFIX bin/bundle install --local --quiet + bundle install --prefer-local --quiet + + # As of April 2024/Bundler 2.4, for some reason `bundle install` skips + # zlib if it's already installed as a system-wide gem, which it often will + # be because arvados gems pull it in. If this happened, install it in the + # bundle manually as a workaround. + if ! bin/bundle info zlib >/dev/null 2>&1; then + local RUBY_VERSION="$(ruby -e 'puts RUBY_VERSION')" + run_and_report "Adding zlib to bundle" \ + gem install \ + --install-dir="$SHARED_PATH/vendor_bundle/ruby/$RUBY_VERSION" \ + vendor/cache/zlib-*.gem + fi echo -n "Ensuring directory and file permissions ..." # Ensure correct ownership of a few files @@ -236,7 +242,7 @@ configure_version() { # warn about config errors (deprecated/removed keys from # previous version, etc) run_and_report "Checking configuration for completeness" \ - $COMMAND_PREFIX bin/rake config:check || APPLICATION_READY=0 + bin/rake config:check || APPLICATION_READY=0 else APPLICATION_READY=0 fi