diff --git a/scripts/deploy_upyun.sh b/scripts/deploy_upyun.sh index c3c6d35d..ae56652f 100644 --- a/scripts/deploy_upyun.sh +++ b/scripts/deploy_upyun.sh @@ -42,14 +42,27 @@ echo "☁️ 远程目录: $REMOTE_DIR" echo "🔢 线程数: $THREADS" echo "==========================================" -# 下载 upx +# 使用独立的 upx 路径,避免和系统的 upx (Ultimate Packer) 冲突 UPX_VERSION="0.4.9" UPX_URL="https://collection.b0.upaiyun.com/softwares/upx/upx_${UPX_VERSION}_linux_amd64.tar.gz" -UPX_BIN="/tmp/upx" +UPX_BIN="/tmp/upyun-upx" -if ! command -v upx &> /dev/null; then +# 检查系统中的 upx 是否是又拍云的 +if command -v upx &> /dev/null; then + UPX_VERSION_OUTPUT=$(upx --version 2>/dev/null || true) + if echo "$UPX_VERSION_OUTPUT" | grep -q "upyun"; then + echo "✅ 系统已安装又拍云 upx: $UPX_VERSION_OUTPUT" + UPX_BIN="upx" + else + echo "⚠️ 系统中的 upx 不是又拍云工具(是压缩工具),将下载又拍云版" + UPX_BIN="/tmp/upyun-upx" + fi +fi + +# 如果还没有又拍云 upx,下载它 +if [ ! -x "$UPX_BIN" ]; then echo "" - echo "📥 下载 upx v${UPX_VERSION}..." + echo "📥 下载又拍云 upx v${UPX_VERSION}..." curl -sL "$UPX_URL" -o /tmp/upx.tar.gz if [ ! -f /tmp/upx.tar.gz ]; then @@ -58,13 +71,11 @@ if ! command -v upx &> /dev/null; then fi tar -xzf /tmp/upx.tar.gz -C /tmp - chmod +x /tmp/upx - UPX_BIN="/tmp/upx" + mv /tmp/upx "$UPX_BIN" + chmod +x "$UPX_BIN" + rm -f /tmp/upx.tar.gz - echo "✅ upx 安装完成" -else - UPX_BIN="upx" - echo "✅ upx 已安装: $(upx --version 2>/dev/null | head -1)" + echo "✅ 又拍云 upx 安装完成" fi echo "" @@ -77,7 +88,7 @@ echo "" # --overwrite: 覆盖已存在的文件 # --skip: 跳过相同的文件(基于 MD5) -$UPX_BIN sync "$LOCAL_DIR" "$REMOTE_DIR" \ +"$UPX_BIN" sync "$LOCAL_DIR" "$REMOTE_DIR" \ --delete \ --thread "$THREADS" \ --overwrite \