From 5153b0c035f781fdc8c402d280a9b8d0ccc024ef Mon Sep 17 00:00:00 2001 From: spiritlhl <103393591+spiritLHLS@users.noreply.github.com> Date: Fri, 23 Jun 2023 13:31:25 +0000 Subject: [PATCH] Update --- README.md | 2 +- scripts/install_pve.sh | 34 +++++++++++++++++++++++----------- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index b49d660..8adcb48 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,6 @@ 待开发内容: -- 部分机器ifudown2安装有问题,原因在于PVE的MAC地址自动绑定错误,待修复 - 创建带IPV6独立地址的VM虚拟机或CT容器 - KVM模板加载部分自定义的限制,避免机器用于滥用发包 - 增加arm64架构的一键安装功能 @@ -16,6 +15,7 @@ - 网关配置修改使用新结构,以便于适配大多数机器 - 调整安装的流程,升级软件包后需要重启一次系统,详见脚本的运行提示 +- 解决了ifudown2的安装问题,支持在更多商家的服务器上安装 [更新日志](CHANGELOG.md) diff --git a/scripts/install_pve.sh b/scripts/install_pve.sh index d220243..aa1318f 100644 --- a/scripts/install_pve.sh +++ b/scripts/install_pve.sh @@ -25,9 +25,9 @@ temp_file_apt_fix="/tmp/apt_fix.txt" remove_duplicate_lines() { chattr -i "$1" - # 去除重复行并跳过空行 - if [ -f "$1" ];then - awk '!NF || !x[$0]++' "$1" > "$1.tmp" && mv -f "$1.tmp" "$1" + # 去除重复行并跳过空行和注释行 + if [ -f "$1" ]; then + awk '!/^ *#/ && NF && !x[$0]++' "$1" > "$1.tmp" && mv -f "$1.tmp" "$1" fi rm -rf "$1.tmp" chattr +i "$1" @@ -86,14 +86,18 @@ fi rebuild_interfaces(){ # 修复部分网络运行部分未空 if [ ! -e /run/network/interfaces.d/* ]; then - if [ -f "/etc/network/interfaces" ];then + if [ -f "/etc/network/interfaces" ]; then chattr -i /etc/network/interfaces - sed -i '/source-directory \/run\/network\/interfaces.d/s/^/#/' /etc/network/interfaces + if ! grep -q "^#.*source-directory \/run\/network\/interfaces\.d" /etc/network/interfaces; then + sed -i '/source-directory \/run\/network\/interfaces.d/s/^/#/' /etc/network/interfaces + fi chattr +i /etc/network/interfaces fi - if [ -f "/etc/network/interfaces.new" ];then + if [ -f "/etc/network/interfaces.new" ]; then chattr -i /etc/network/interfaces.new - sed -i '/source-directory \/run\/network\/interfaces.d/s/^/#/' /etc/network/interfaces.new + if ! grep -q "^#.*source-directory \/run\/network\/interfaces\.d" /etc/network/interfaces.new; then + sed -i '/source-directory \/run\/network\/interfaces.d/s/^/#/' /etc/network/interfaces.new + fi chattr +i /etc/network/interfaces.new fi fi @@ -116,14 +120,22 @@ fi # 去除引用 if [ -f "/etc/network/interfaces" ]; then chattr -i /etc/network/interfaces - sed -i '/^source \/etc\/network\/interfaces\.d\// { /^#/! s/^/#/ }' "/etc/network/interfaces" - sed -i 's/^source-directory \/etc\/network\/interfaces\.d/#source-directory \/etc\/network\/interfaces.d/' "/etc/network/interfaces" + if ! grep -q '^#source \/etc\/network\/interfaces\.d\/' "/etc/network/interfaces"; then + sed -i '/^source \/etc\/network\/interfaces\.d\// { /^#/! s/^/#/ }' "/etc/network/interfaces" + fi + if ! grep -q '^#source-directory \/etc\/network\/interfaces\.d' "/etc/network/interfaces"; then + sed -i 's/^source-directory \/etc\/network\/interfaces\.d/#source-directory \/etc\/network\/interfaces.d/' "/etc/network/interfaces" + fi chattr +i /etc/network/interfaces fi if [ -f "/etc/network/interfaces.new" ]; then chattr -i /etc/network/interfaces.new - sed -i '/^source \/etc\/network\/interfaces\.d\// { /^#/! s/^/#/ }' "/etc/network/interfaces.new" - sed -i 's/^source-directory \/etc\/network\/interfaces\.d/#source-directory \/etc\/network\/interfaces.d/' "/etc/network/interfaces.new" + if ! grep -q '^#source \/etc\/network\/interfaces\.d\/' "/etc/network/interfaces.new"; then + sed -i '/^source \/etc\/network\/interfaces\.d\// { /^#/! s/^/#/ }' "/etc/network/interfaces.new" + fi + if ! grep -q '^#source-directory \/etc\/network\/interfaces\.d' "/etc/network/interfaces.new"; then + sed -i 's/^source-directory \/etc\/network\/interfaces\.d/#source-directory \/etc\/network\/interfaces.d/' "/etc/network/interfaces.new" + fi chattr +i /etc/network/interfaces.new fi # 反加载