Обновить install.sh
This commit is contained in:
+67
-2
@@ -64,6 +64,59 @@ pkg_install() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Установка podkop без подтягивания sing-box из репозитория OpenWrt
|
||||||
|
# (podkop зависит от sing-box, поэтому обычная установка скачает стоковый).
|
||||||
|
# Остальные зависимости ставятся отдельно через pkg_install_feed.
|
||||||
|
pkg_install_nodeps() {
|
||||||
|
local pkg_file="$1"
|
||||||
|
|
||||||
|
if [ "$PKG_IS_APK" -eq 1 ]; then
|
||||||
|
# apk не умеет пропускать зависимости: создаём пустой пакет-заглушку
|
||||||
|
# sing-box, чтобы зависимость podkop считалась выполненной
|
||||||
|
apk_stub_singbox
|
||||||
|
apk add --allow-untrusted "$pkg_file"
|
||||||
|
else
|
||||||
|
opkg install --nodeps "$pkg_file"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# apk: пустой пакет "sing-box" (без файлов), чтобы apk не скачивал стоковый
|
||||||
|
# sing-box из репозитория. Сам бинарник ставится отдельным скриптом.
|
||||||
|
# Если создать заглушку не удалось, будет установлен стоковый sing-box.
|
||||||
|
apk_stub_singbox() {
|
||||||
|
if apk list --installed 2>/dev/null | grep -q "^sing-box-[0-9]"; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
local stub_dir="/tmp/sing-box-stub"
|
||||||
|
rm -rf "$stub_dir"
|
||||||
|
mkdir -p "$stub_dir/root"
|
||||||
|
|
||||||
|
if apk mkpkg \
|
||||||
|
-I name:sing-box \
|
||||||
|
-I version:1.14.0-r0 \
|
||||||
|
-I arch:noarch \
|
||||||
|
-I "description:Stub package, sing-box is installed manually" \
|
||||||
|
-F "$stub_dir/root" \
|
||||||
|
-o "$stub_dir/sing-box-stub.apk" >/dev/null 2>&1 \
|
||||||
|
&& apk add --allow-untrusted "$stub_dir/sing-box-stub.apk"; then
|
||||||
|
msg "Created sing-box stub package (stock sing-box will not be installed)"
|
||||||
|
else
|
||||||
|
msg "Could not create sing-box stub: stock sing-box will be installed as a dependency"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf "$stub_dir"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Установка пакетов из репозитория OpenWrt по имени
|
||||||
|
pkg_install_feed() {
|
||||||
|
if [ "$PKG_IS_APK" -eq 1 ]; then
|
||||||
|
apk add "$@"
|
||||||
|
else
|
||||||
|
opkg install "$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
update_config() {
|
update_config() {
|
||||||
printf "\033[48;5;196m\033[1m╔══════════════════════════════════════════════════════════════════════╗\033[0m\n"
|
printf "\033[48;5;196m\033[1m╔══════════════════════════════════════════════════════════════════════╗\033[0m\n"
|
||||||
printf "\033[48;5;196m\033[1m║ ! Обнаружена старая версия podkop. ║\033[0m\n"
|
printf "\033[48;5;196m\033[1m║ ! Обнаружена старая версия podkop. ║\033[0m\n"
|
||||||
@@ -199,6 +252,14 @@ main() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Если sing-box ставить не нужно (opkg): ставим зависимости podkop из
|
||||||
|
# репозитория OpenWrt вручную, а сам podkop - с --nodeps, чтобы opkg
|
||||||
|
# не скачивал стоковый sing-box как зависимость
|
||||||
|
if [ "$INSTALL_SINGBOX" -eq 0 ] && [ "$PKG_IS_APK" -eq 0 ]; then
|
||||||
|
msg "Installing podkop dependencies (without sing-box)..."
|
||||||
|
pkg_install_feed curl jq kmod-nft-tproxy coreutils-base64 bind-dig
|
||||||
|
fi
|
||||||
|
|
||||||
# Install podkop and luci-app-podkop
|
# Install podkop and luci-app-podkop
|
||||||
for pkg in podkop luci-app-podkop; do
|
for pkg in podkop luci-app-podkop; do
|
||||||
file=""
|
file=""
|
||||||
@@ -210,7 +271,11 @@ main() {
|
|||||||
done
|
done
|
||||||
if [ -n "$file" ]; then
|
if [ -n "$file" ]; then
|
||||||
msg "Installing $file..."
|
msg "Installing $file..."
|
||||||
pkg_install "$DOWNLOAD_DIR/$file"
|
if [ "$INSTALL_SINGBOX" -eq 0 ]; then
|
||||||
|
pkg_install_nodeps "$DOWNLOAD_DIR/$file"
|
||||||
|
else
|
||||||
|
pkg_install "$DOWNLOAD_DIR/$file"
|
||||||
|
fi
|
||||||
sleep 3
|
sleep 3
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@@ -361,4 +426,4 @@ sing_box() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
main
|
main
|
||||||
Reference in New Issue
Block a user