diff options
| -rwxr-xr-x | installer/slxossetup | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/installer/slxossetup b/installer/slxossetup index 14811739..10f581a5 100755 --- a/installer/slxossetup +++ b/installer/slxossetup @@ -88,9 +88,17 @@ function slxossetup_rpm_suse() # Download and unpack prerequired packages before any package installation SLX_PACKAGE_PATH="${SLX_METADATA_PATH}/packages" - test -d "${SLX_PACKAGE_PATH}" || \ - mkdir -p "${SLX_PACKAGE_PATH}" - pushd "${SLX_PACKAGE_PATH}" >/dev/null + TMP_DIR=$( mktemp -d "${SLX_METADATA_PATH}/packages.XXXXXXXX") + if test $? -ne 0; then + echo "$0: Warning, can not create temp package download directory! " + echo " Using ${SLX_PACKAGE_DOWNLOAD_PATH} instead. " + SLX_PACKAGE_DOWNLOAD_PATH="${SLX_PACKAGE_PATH}" + else + SLX_PACKAGE_DOWNLOAD_PATH="${TMP_DIR}" + fi + test -d "${SLX_PACKAGE_DOWNLOAD_PATH}" || \ + mkdir -p "${SLX_PACKAGE_DOWNLOAD_PATH}" + pushd "${SLX_PACKAGE_DOWNLOAD_PATH}" >/dev/null smart --data-dir="${SLX_METADATA_PATH}" \ download \ "${SLX_BASE_PREREQ_PACKAGES}" @@ -100,9 +108,18 @@ function slxossetup_rpm_suse() mkdir -p "${SLX_STAGE1_PATH}" pushd "${SLX_STAGE1_PATH}" >/dev/null for package in $SLX_BASE_PREREQ_PACKAGES; do - rpm2cpio ${SLX_PACKAGE_PATH}/${package}-*.rpm | \ + rpm2cpio ${SLX_PACKAGE_DOWNLOAD_PATH}/${package}-*.rpm | \ cpio -i --make-directories done + + # Move package from temp to package dir. + if test "${SLX_PACKAGE_DOWNLOAD_PATH}" != "${SLX_PACKAGE_PATH}"; then + test -d "${SLX_PACKAGE_PATH}" || \ + mkdir -p "${SLX_PACKAGE_PATH}" + mv "${SLX_PACKAGE_DOWNLOAD_PATH}/"*.rpm "${SLX_PACKAGE_PATH}/" + rmdir "${SLX_PACKAGE_DOWNLOAD_PATH}" + fi + # Cleanup etc to prevent .rpnnew files # FIXME: This should be controled by the config file. find etc/ -type f -print0 | \ |
