diff --git a/install.sh b/install.sh index a83cc04..1e8db6c 100644 --- a/install.sh +++ b/install.sh @@ -1315,13 +1315,9 @@ deploy_acme_letsencrypt() { # 检测是否在中国大陆,使用镜像加速 if curl -s --connect-timeout 3 https://www.google.com > /dev/null 2>&1; then # 海外网络 - 使用官方源 - if curl -fsSL https://get.acme.sh | sh; then - source ~/.bashrc 2>/dev/null || source ~/.profile 2>/dev/null || true - print_success "acme.sh 安装成功" - else - print_error "acme.sh 安装失败" - return 1 - fi + print_info "使用官方源安装..." + curl -fsSL https://get.acme.sh | sh + install_result=$? else # 中国大陆 - 使用Gitee镜像(官方方法) print_info "检测到国内网络,使用Gitee镜像加速..." @@ -1329,19 +1325,36 @@ deploy_acme_letsencrypt() { # 设置环境变量,让acme.sh使用Gitee源 export ACME_USE_GITEE=1 - if curl -fsSL https://gitee.com/neilpang/acme.sh/raw/master/acme.sh | sh; then - source ~/.bashrc 2>/dev/null || source ~/.profile 2>/dev/null || true - print_success "acme.sh 安装成功" - else - print_error "acme.sh 安装失败" - echo "" - print_warning "解决方案:" - echo " 1. 检查网络连接" - echo " 2. 尝试手动安装: export ACME_USE_GITEE=1 && curl https://gitee.com/neilpang/acme.sh/raw/master/acme.sh | sh" - echo " 3. 或访问: https://github.com/acmesh-official/acme.sh/wiki/Install-in-China" - echo "" - return 1 - fi + curl -fsSL https://gitee.com/neilpang/acme.sh/raw/master/acme.sh | sh + install_result=$? + fi + + # 重新加载环境变量 + source ~/.bashrc 2>/dev/null || source ~/.profile 2>/dev/null || true + + # 等待文件系统同步 + sleep 2 + + # 验证安装是否真正成功(检查目录是否创建) + if [[ $install_result -eq 0 ]] && [[ -d ~/.acme.sh ]] && [[ -f ~/.acme.sh/acme.sh ]]; then + print_success "acme.sh 安装成功" + else + print_error "acme.sh 安装失败" + echo "" + print_warning "诊断信息:" + echo " - 安装命令退出码: $install_result" + echo " - 目录 ~/.acme.sh 存在: $([ -d ~/.acme.sh ] && echo '是' || echo '否')" + echo " - 文件 ~/.acme.sh/acme.sh 存在: $([ -f ~/.acme.sh/acme.sh ] && echo '是' || echo '否')" + echo " - HOME变量: $HOME" + echo " - 当前用户: $(whoami)" + echo "" + print_warning "解决方案:" + echo " 1. 检查网络连接" + echo " 2. 查看安装日志: ls -la ~ | grep acme" + echo " 3. 手动安装: export ACME_USE_GITEE=1 && curl https://gitee.com/neilpang/acme.sh/raw/master/acme.sh | sh" + echo " 4. 或访问: https://github.com/acmesh-official/acme.sh/wiki/Install-in-China" + echo "" + return 1 fi fi @@ -1423,24 +1436,37 @@ deploy_acme_zerossl() { # 检测网络环境 if curl -s --connect-timeout 3 https://www.google.com > /dev/null 2>&1; then # 海外网络 - if curl -fsSL https://get.acme.sh | sh; then - source ~/.bashrc 2>/dev/null || source ~/.profile 2>/dev/null || true - print_success "acme.sh 安装成功" - else - print_error "acme.sh 安装失败" - return 1 - fi + print_info "使用官方源安装..." + curl -fsSL https://get.acme.sh | sh + install_result=$? else # 中国大陆 - 使用Gitee镜像 print_info "检测到国内网络,使用Gitee镜像加速..." export ACME_USE_GITEE=1 - if curl -fsSL https://gitee.com/neilpang/acme.sh/raw/master/acme.sh | sh; then - source ~/.bashrc 2>/dev/null || source ~/.profile 2>/dev/null || true - print_success "acme.sh 安装成功" - else - print_error "acme.sh 安装失败" - return 1 - fi + curl -fsSL https://gitee.com/neilpang/acme.sh/raw/master/acme.sh | sh + install_result=$? + fi + + # 重新加载环境变量 + source ~/.bashrc 2>/dev/null || source ~/.profile 2>/dev/null || true + + # 等待文件系统同步 + sleep 2 + + # 验证安装是否真正成功(检查目录是否创建) + if [[ $install_result -eq 0 ]] && [[ -d ~/.acme.sh ]] && [[ -f ~/.acme.sh/acme.sh ]]; then + print_success "acme.sh 安装成功" + else + print_error "acme.sh 安装失败" + echo "" + print_warning "诊断信息:" + echo " - 安装命令退出码: $install_result" + echo " - 目录 ~/.acme.sh 存在: $([ -d ~/.acme.sh ] && echo '是' || echo '否')" + echo " - 文件 ~/.acme.sh/acme.sh 存在: $([ -f ~/.acme.sh/acme.sh ] && echo '是' || echo '否')" + echo " - HOME变量: $HOME" + echo " - 当前用户: $(whoami)" + echo "" + return 1 fi fi @@ -1516,24 +1542,37 @@ deploy_acme_buypass() { # 检测网络环境 if curl -s --connect-timeout 3 https://www.google.com > /dev/null 2>&1; then # 海外网络 - if curl -fsSL https://get.acme.sh | sh; then - source ~/.bashrc 2>/dev/null || source ~/.profile 2>/dev/null || true - print_success "acme.sh 安装成功" - else - print_error "acme.sh 安装失败" - return 1 - fi + print_info "使用官方源安装..." + curl -fsSL https://get.acme.sh | sh + install_result=$? else # 中国大陆 - 使用Gitee镜像 print_info "检测到国内网络,使用Gitee镜像加速..." export ACME_USE_GITEE=1 - if curl -fsSL https://gitee.com/neilpang/acme.sh/raw/master/acme.sh | sh; then - source ~/.bashrc 2>/dev/null || source ~/.profile 2>/dev/null || true - print_success "acme.sh 安装成功" - else - print_error "acme.sh 安装失败" - return 1 - fi + curl -fsSL https://gitee.com/neilpang/acme.sh/raw/master/acme.sh | sh + install_result=$? + fi + + # 重新加载环境变量 + source ~/.bashrc 2>/dev/null || source ~/.profile 2>/dev/null || true + + # 等待文件系统同步 + sleep 2 + + # 验证安装是否真正成功(检查目录是否创建) + if [[ $install_result -eq 0 ]] && [[ -d ~/.acme.sh ]] && [[ -f ~/.acme.sh/acme.sh ]]; then + print_success "acme.sh 安装成功" + else + print_error "acme.sh 安装失败" + echo "" + print_warning "诊断信息:" + echo " - 安装命令退出码: $install_result" + echo " - 目录 ~/.acme.sh 存在: $([ -d ~/.acme.sh ] && echo '是' || echo '否')" + echo " - 文件 ~/.acme.sh/acme.sh 存在: $([ -f ~/.acme.sh/acme.sh ] && echo '是' || echo '否')" + echo " - HOME变量: $HOME" + echo " - 当前用户: $(whoami)" + echo "" + return 1 fi fi