for pkg_file in $(find "$REPO_DIR" -name "*.rpm" -type f); do pkg_name=$(rpm -qp --queryformat '%{NAME}'"$pkg_file") requires=$(rpm -qpR "$pkg_file" 2>/dev/null | grep -v 'rpmlib')
for req in$requires; do # 去除版本号,只比较包名 req_name=$(echo"$req" | sed 's/[<>(=].*//') if ! rpm -qa | grep -q "^${req_name}-"; then # 检查本地仓库是否有此包 if ! find "$REPO_DIR" -name "${req_name}-*.rpm" | grep -q .; then echo"[缺失] $pkg_name 需要 $req_name (无可用包)" >> "$TMP_WARN" fi fi done done
if [ -s "$TMP_WARN" ]; then echo"检测到依赖冲突,请查看 /tmp/deps_warn.txt" sort -u "$TMP_WARN" else echo"未检测到明显依赖冲突" fi