Initial commit
This commit is contained in:
104
install.sh
Normal file
104
install.sh
Normal file
@@ -0,0 +1,104 @@
|
||||
#!/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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user