Files
dify_market_manager_gui/install.sh
2025-06-26 11:28:55 +08:00

105 lines
2.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# 定义错误处理函数
handle_error() {
echo "错误:$1"
exit 1
}
# 检查是否提供了参数
if [ $# -eq 0 ]; then
handle_error "请提供包名作为参数\n用法: $0 <包名>"
fi
# 获取传入的包名参数
PACKAGE_NAME="$1"
# 检查文件是否存在
if [ ! -f "$PACKAGE_NAME" ]; then
handle_error "文件 '$PACKAGE_NAME' 不存在"
fi
# 检查文件权限
if [ ! -r "$PACKAGE_NAME" ]; then
handle_error "没有读取文件 '$PACKAGE_NAME' 的权限"
fi
# 检查是否具有sudo权限
if ! sudo -v &>/dev/null; then
handle_error "没有sudo权限请确保您有足够的权限执行此脚本"
fi
## 关闭旧应用进程
#echo "正在关闭旧应用进程..."
#PIDS=$(pgrep -f market-manager-gui)
#if [ -z "$PIDS" ]; then
# echo "没有找到正在运行的应用进程"
#else
# echo "找到正在运行的应用进程: $PIDS"
# for PID in $PIDS; do
# echo "尝试终止进程 ID: $PID"
# if ! sudo kill -TERM "$PID"; then
# echo "警告:尝试终止进程 ID $PID 时出错"
# else
# echo "已发送终止信号给进程 ID: $PID"
# fi
# done
#fi
#
## 等待进程完全关闭
#echo "等待进程关闭..."
#sleep 2
# 检查是否还有残留进程
#PIDS=$(pgrep -f market-manager-gui)
#if [ -z "$PIDS" ]; then
# echo "所有进程已关闭"
#else
# echo "警告:仍有进程在运行,尝试强制关闭..."
# for PID in $PIDS; do
# echo "尝试强制终止进程 ID: $PID"
# if ! sudo kill -KILL "$PID"; then
# echo "警告:强制终止进程 ID $PID 时出错"
# else
# echo "已强制终止进程 ID: $PID"
# fi
# done
# sleep 1
#fi
# 先卸载旧版本
echo "正在卸载旧版本..."
if ! sudo dpkg -r market-manager-gui; then
echo "警告:卸载旧版本失败,可能未安装"
fi
# 清理APT缓存以防止冲突
echo "清理APT缓存..."
sudo apt-get clean
# 安装新版本
echo "正在安装 $PACKAGE_NAME..."
if ! sudo dpkg -i "$PACKAGE_NAME"; then
echo "安装失败,尝试修复依赖..."
if ! sudo apt-get install -f -y; then
handle_error "安装失败且无法修复依赖"
fi
# 再次清理APT缓存
sudo apt-get clean
echo "修复完成,重新尝试安装..."
if ! sudo dpkg -i "$PACKAGE_NAME"; then
handle_error "安装最终失败"
fi
fi
# 添加调试信息
echo "检查安装状态..."
dpkg -l | grep market-manager-gui
# 确保脚本执行完成
echo "安装过程完成"
exit 0