mirror of
https://github.com/XTLS/Xray-install.git
synced 2025-12-10 02:09:52 +00:00
Generalize the script to all OpenRC distributions
This commit is contained in:
@@ -4,7 +4,7 @@ English | [简体中文](README_zh-Hans.md) | [繁體中文](README_zh-Hant.md)
|
|||||||
|
|
||||||
Bash script for installing Xray in operating systems such as CentOS / Debian / OpenSUSE that support systemd.
|
Bash script for installing Xray in operating systems such as CentOS / Debian / OpenSUSE that support systemd.
|
||||||
|
|
||||||
**For Alpine Linux users**, please refer to **[Alpine Linux Specific Instructions](alpinelinux/README.md)** for installation scripts and guides tailored for Alpine Linux.
|
**For Alpine or Gentoo Linux users**, please refer to **[OpenRC Specific Instructions](alpinelinux/README.md)** for installation scripts and guides tailored for Alpine/Gentoo Linux featured by OpenRC init-system.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,34 @@
|
|||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
check_alpine() {
|
pkg_manager() {
|
||||||
if [ -f /etc/alpine-release ]; then
|
local OP="$1" PM=apk
|
||||||
|
shift
|
||||||
|
if [ -f /etc/gentoo-release ]; then
|
||||||
|
PM=emerge
|
||||||
|
case "$OP" in
|
||||||
|
add)
|
||||||
|
OP='-v'
|
||||||
|
;;
|
||||||
|
del)
|
||||||
|
OP='-C'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
if [ -z "$@" ]; then
|
||||||
|
echo "$PM $OP"
|
||||||
|
else
|
||||||
|
$PM $OP $@
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
check_distr() {
|
||||||
|
if [ -z "$(command -v rc-service)" ]; then
|
||||||
|
echo "No OpenRC init-system detected"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
if [ -f /etc/alpine-release -o -f /etc/gentoo-release ]; then
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
return 1
|
return 1
|
||||||
@@ -91,7 +117,7 @@ install_dependencies() {
|
|||||||
fi
|
fi
|
||||||
if [ "$(command -v apk)" ]; then
|
if [ "$(command -v apk)" ]; then
|
||||||
echo "Installing required dependencies..."
|
echo "Installing required dependencies..."
|
||||||
apk add curl unzip
|
pkg_manager add curl unzip #to generalize installation procedure
|
||||||
else
|
else
|
||||||
echo "error: The script does not support the package manager in this operating system."
|
echo "error: The script does not support the package manager in this operating system."
|
||||||
exit 1
|
exit 1
|
||||||
@@ -202,7 +228,7 @@ information() {
|
|||||||
fi
|
fi
|
||||||
rm -r "$TMP_DIRECTORY"
|
rm -r "$TMP_DIRECTORY"
|
||||||
echo "removed: $TMP_DIRECTORY"
|
echo "removed: $TMP_DIRECTORY"
|
||||||
echo "You may need to execute a command to remove dependent software: apk del curl unzip"
|
echo "You may need to execute a command to remove dependent software: $(pkg_manager del) curl unzip"
|
||||||
if [ "$XRAY_RUNNING" -eq '1' ]; then
|
if [ "$XRAY_RUNNING" -eq '1' ]; then
|
||||||
rc-service xray start
|
rc-service xray start
|
||||||
else
|
else
|
||||||
@@ -212,7 +238,7 @@ information() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
check_alpine || return 1
|
check_distr || return 1
|
||||||
check_if_running_as_root || return 1
|
check_if_running_as_root || return 1
|
||||||
identify_architecture || return 1
|
identify_architecture || return 1
|
||||||
install_dependencies
|
install_dependencies
|
||||||
|
|||||||
Reference in New Issue
Block a user