ohpm unpublish ${name} -f命令执行失败
===============================

#### 问题现象

执行命令“ohpm unpublish ${name} -f”下架三方库失败，异常信息：

ERROR: HttpCode 400 The OHPM package has been depended on by other components
ERROR: Unpublish failed, detail: The "Unpublish" request to url "https://ohom.openharmony.cn/ohpm/XXX" has failed

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/78/v3/tRwq0h5kSzi_NeQAeNXNbQ/zh-cn_image_0000002658928949.png?HW-CC-KV=V1&HW-CC-Date=20260709T134424Z&HW-CC-Expire=86400&HW-CC-Sign=BC08AFE7A2A7F38985664BE386D1853FE230ECC6D5C130411750E543FD2D2B0D "点击放大")

#### 背景知识

*   [ohpm unpublish](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-ohpm-unpublish)：下架已发布的三方库。
*   [命令格式](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-ohpm-unpublish#zh-cn_topic_0000001745217274_命令格式)：ohpm unpublish \[options\] \[<@group>\]<pkg>\[@<version>\]。
*   [功能描述](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-ohpm-unpublish#zh-cn_topic_0000001745217274_功能描述)：
    *   从OpenHarmony三方库中心仓下架已经发布并审核通过上架的三方库。
    *   若不指定版本，则默认下架三方库的所有版本，并且需要加上-f配置参数；全部版本均下架后，在24h内则不允许重新发布相同名称的三方库。
    *   若下架了某个版本，该版本号不允许再次使用，后续发布必须使用新的版本号。
    *   若此三方库被其它三方库依赖，则不删除，而是打上deprecated的标签；若没有被依赖，则直接删除。

#### 问题定位

*   由异常描述可知，下架失败的原因为被其他三方库依赖。
*   进入想要被下架的三方库的OpenHarmony三方库中心仓主页，在“被依赖”页签，可以看到有其他三方库依赖该三方库。
*   经确认，依赖该三方库的为历史版本，在最新的版本中已经解除对被依赖三方库的依赖关系。
*   删除有依赖关系的历史版本后，unpublish命令执行成功。

#### 分析结论

unpublish命令执行失败原因在于还有依赖关系未删除。

#### 修改建议

下架三方库，先根据“被依赖”页签递归删除被依赖项中的依赖关系，再执行对目标三方库的下架操作。

#### 总结

unpublish命令不会直接下架目标三方库，避免因为依赖关系导致其他的库也不可用，若有依赖关系则无法被删除，会打上deprecated的标签。