免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2535 | 回复: 4
打印 上一主题 下一主题

[求助] 多个depot 打成一个depot总是没有成功 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-09-28 15:13 |只看该作者 |倒序浏览
  

# for i in PH*depot
        do
          swcopy -x enforce_dependencies=false -s ${PWD}/$i \*
          @ /tmp/patch_depot
        done

论坛徽章:
48
15-16赛季CBA联赛之青岛
日期:2021-01-07 13:41:2315-16赛季CBA联赛之上海
日期:2020-12-01 18:02:0720周年集字徽章-20	
日期:2020-10-28 14:14:2620周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之天津
日期:2020-10-18 22:51:412016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之北控
日期:2015-12-22 13:30:48操作系统版块每日发帖之星
日期:2015-12-07 06:20:00操作系统版块每日发帖之星
日期:2015-09-04 06:20:002015亚冠之德黑兰石油
日期:2015-08-05 18:46:082015年亚洲杯之巴勒斯坦
日期:2015-04-19 10:42:502015年亚洲杯之巴林
日期:2015-04-09 08:03:23
2 [报告]
发表于 2012-09-28 15:23 |只看该作者
到HP的support center上面下载多个patch后,下载回来的包里面有一个类似功能的脚本,研究下就知道了~

论坛徽章:
0
3 [报告]
发表于 2012-09-28 15:24 |只看该作者
执行完后,会弹出一个菜单式界面sd copy
我不知道后面如何操作了,求大神指点

论坛徽章:
0
4 [报告]
发表于 2012-09-28 15:43 |只看该作者
本帖最后由 monster_3j 于 2012-09-28 15:50 编辑

嗯,看不出什么东西啊!
server ftp.itrc.hp.com
user 43dce659797392b78971196d7423027c
patch patch_bundles/hp-ux/QUALITYPACK/QPK1131_B.11.31.1109.367a.depot 1072486400
patch hp-ux_patches/11.X/PHKL_42060 715513
patch hp-ux_patches/11.X/PHCO_42262 27623753
patch hp-ux_patches/11.X/PHKL_41967 113048
patch hp-ux_patches/11.X/PHKL_42496 13240952
patch hp-ux_patches/11.X/PHKL_42310 289133
patch hp-ux_patches/11.X/PHKL_42335 757176
patch patch_bundles/hp-ux/SPECIAL/FEATURE11i_B.11.31.1109.367a.depot 151613440
patch patch_bundles/hp-ux/HWE/HWEnable11i_B.11.31.1109.367a.depot 128696320


MANIFEST=./patch_manifest

RES=`awk '/^patch/ {print $2 " " $3}' $MANIFEST | sed s/.depot//g`
if [ -z "$RES" ]; then
  echo "Error 7901: No patches specified in patch_manifest file"
  exit 2
fi
set $RES
while [ $# -gt 0 ]; do
  PATCH=`basename $1`
  PATCH_LIST="${PATCH_LIST:+${PATCH_LIST} }$PATCH"
  shift 2
done

#
# NOTE: Check all the options here and see if there are any problems.
#

if [ $INTERACTIVE -eq 1 ]; then
{
  echo "Depot name [$DEPOT]: \c"
  read ANSWER

  if [ -n "$ANSWER" ]; then
  {
    DEPOT=$ANSWER
  }
  fi

  echo "Bundle name [$BUNDLE]: \c"
  read ANSWER

  if [ -n "$ANSWER" ]; then
  {
    BUNDLE=$ANSWER
  }
  fi

  echo "Bundle title [$TITLE]: \c"
  read ANSWER

  if [ -n "$ANSWER" ]; then
  {
    TITLE=$ANSWER
  }
  fi

  echo "Unshar patch files ([$UNSHAR]/n): \c"
  read ANSWER

  if [ -n "$ANSWER" ]; then
  {
    UNSHAR=$ANSWER
  }
  fi
}
fi

echo "DEPOT: $DEPOT"
echo "BUNDLE: $BUNDLE"
echo "TITLE: $TITLE"
echo "UNSHAR: $UNSHAR"

echo "PSF: $PSF"

typeset -i ERRORS=0

#
# Check for existence of depot
#
if [ -d "$DEPOT" ]; then
{
  if [ $SKIP_DEPOT -eq 0 ]; then
    echo "ERROR: Depot already exists: ${DEPOT}."
    echo "       Use -f option to override or delete depot."
    exit 1
  else
    echo "NOTE: Using existing depot."
  fi
}
fi

#
# Unshar all the patch files.
#
if [ "$UNSHAR" = "y" ]; then
{
  echo "Expanding patch shar files..."
  for PATCH in $PATCH_LIST; do
  {
  if [[ "$PATCH.depot" = @(HWE|GOLD|QPK|Y2K|BUNDLE|MAINTPACK|FEATURE)* ]];then
    SD_LIST="$SD_LIST $PATCH \
"
    continue
  fi
    if [ ! -f $PATCH ]; then
      echo "ERROR: Shar file not found for patch $PATCH."
      ERRORS=1
    else
      rm -f ${PATCH}.text ${PATCH}.depot
      /bin/sh ${PATCH}

      if [ $? -ne 0 ]; then
      {
        if [ "$PATCH"  = @(PHCO_|PHKL_|PHNE_|PHSS_)* ]; then
          echo "ERROR: Could not unshar ${PATCH}"
          ERRORS=1
        else
          echo "${PATCH} is a non-SD installable patch, skipping ..."
        fi
      }
      else
          SD_LIST="$SD_LIST $PATCH \
"
      fi
    fi
  }
  done
}
fi

> $PSF

echo "list of SD installable patches = $SD_LIST  "
if [ -z "$SD_LIST" ]; then
  echo "No valid SD installable patch found.  Exiting..."
  exit 1
fi

if [ $ERRORS -eq 1 ]; then
  echo "Errors were found but Depot creation will continue."
fi

PATCH_BUNDLE_REVISION=`/bin/date +%Y.%m.%d`
PATCH_LIST=$SD_LIST
ERRORS=0

echo "#" >> $PSF
echo "# Temporary product specification file" >> $PSF
echo "#" >> $PSF
echo "# Bundle: $BUNDLE" >> $PSF
echo "# Title: $TITLE" >> $PSF
echo "# Created: `date`" >> $PSF
echo "#" >> $PSF

echo "vendor" >> $PSF
echo "  tag                HP" >> $PSF
echo "  title                Hewlett-Packard Company" >> $PSF
echo "  description        Software Patches from Hewlett-Packard" >> $PSF
echo "end" >> $PSF

echo "bundle" >> $PSF
echo "  tag                $BUNDLE" >> $PSF
echo "  title                $TITLE" >> $PSF
echo "  description        Custom Patch Bundle" >> $PSF
echo "  vendor_tag        HP" >> $PSF
echo "  revision        B.$PATCH_BUNDLE_REVISION" >> $PSF
echo "  architecture        HP-UX_B.11.00_32/64" >> $PSF
echo "  machine_type        *" >> $PSF
echo "  os_name        HP-UX" >> $PSF
echo "  os_release        B.$OS" >> $PSF
echo "  os_version        *" >> $PSF
echo "  is_reference        TRUE" >> $PSF
echo "  copyright        (c)Copyright 1983-2008 Hewlett-Packard Co., All Rights Reserved" >> $PSF

for PATCH in $PATCH_LIST; do
{
  SPEC=`swlist -l product -a software_spec -s $PWD/${PATCH}.depot \
        | grep -v "^#" | awk '{print }' -`
  SPEC=${SPEC#*,}
  echo "  contents        $PATCH,$SPEC" >> $PSF
}
done

echo "end" >> $PSF

for PATCH in $PATCH_LIST; do
{
  echo "Copying $PATCH into depot $DEPOT"

  swcopy -x enforce_dependencies=FALSE \
             -x mount_all_filesystems=FALSE \
             -x reinstall=TRUE \
             -x write_remote_files=TRUE \
             -d -s $PWD/$PATCH.depot \* @ $DEPOT

  if [ $? -ne 0 ]; then
  {
    echo "ERROR: Could not swcopy $PATCH into depot."
    ERRORS=1
  }
  fi
}
done

if [ "$NOBUNDLE" != "true"  ]; then
    echo "Bundling patches in depot"

    swpackage -s $PSF \
              -x write_remote_files=TRUE \
            @ $DEPOT

    if [ $? -ne 0 ]; then
      echo "ERROR: Could not swpackage ${PSF} into depot."
      ERRORS=1
    fi
fi

echo "Verifying the depot."

swverify -d -x mount_all_filesystems=FALSE \
             -x enforce_dependencies=FALSE \
            \* @ $DEPOT

if [ $? -ne 0 ]; then
{
  echo "ERROR: swverify of depot failed."
  ERRORS=1
}
fi

if [ $ERRORS -eq 1 ]; then
  echo "ERROR: Errors were found while building depot."
fi

论坛徽章:
0
5 [报告]
发表于 2012-10-23 09:47 |只看该作者
谢谢楼主了,楼主辛苦了,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP