cloudpanel-io/cloudpanel-ce

[Reopen, Enhancement] Use apt-get upgrade and apt-get update instead of just apt upgrade/update in the CLP update script.

Closed this issue · 2 comments

CloudPanel version(s) affected

2.4.0

Description

Reopened because it has not been added yet!

In the CLP update script at https://update.cloudpanel.io/v2. you will find these lines almost at the bottom:

else
    addAptSourceList
    apt -y upgrade
    UPDATED_APP_VERSION=$(su -s /bin/bash -c "clpctl app:get:config-value 'app_version'" clp)
    if [[ $UPDATED_APP_VERSION == $LATEST_APP_VERSION ]]; then
      echo "${GREEN_TEXT_COLOR}CloudPanel has been updated to v$LATEST_APP_VERSION ${RESET_TEXT_COLOR}"
    fi
  fi
}

And a little further up is the update line.

  echo -e "$CLOUDPANEL_SOURCE_LIST" > /etc/apt/sources.list.d/packages.cloudpanel.io.list
  echo -e "$CLOUDPANEL_APT_PREFERENCES" > /etc/apt/preferences.d/00packages.cloudpanel.io.pref
  apt update -y
  apt clean -y
}

-> Use apt-get upgrade and apt-get update -> Because if you use the automatic update script for CLP updates, this Warning will appear in the logs (only when there is an update, as far as I can tell):

WARNING: apt does not have a stable CLI interface. Use with caution in scripts. -> This is not causing a problem on the server at the moment, but may cause a problem on the server at some point in the future, just the log Warning is concerning.

-> and it is simply not good practice to use apt upgrade in any non-interactive scripts (see solution).

How to reproduce

Use the automatic update script https://www.techbreeze.in/auto-update-securing-cloudpanel/ and watch the log, when there is an update the log will contain the following Warning:
WARNING: apt does not have a stable CLI interface. Use with care in scripts.

Possible Solution

Use apt-get instead of just apt, because apt is designed for interactive use on the command line, not for use in scripts. For scripts, you should use apt-get or apt-cache instead, which provide stable, parsable output.

Additional Context

No response

At the moment we won't change it, as it's working fine.

"Use apt-get instead of just apt, because apt is designed for interactive use on the command line, not for use in scripts. For scripts, you should use apt-get or apt-cache instead, which provide stable, parsable output."

--> We have changed it in the update script. Thanks a lot for reporting it.