mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 06:21:28 +00:00
Upload Linux installer for Debian/Ubuntu/CentOS/Fedora utils/scripts/linux_installer/install.sh [skip ci]
This commit is contained in:
parent
5f1141dfb1
commit
bf28354301
236
utils/scripts/linux_installer/install.sh
Normal file
236
utils/scripts/linux_installer/install.sh
Normal file
@ -0,0 +1,236 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "This script must be run as root" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#::: Determine releases
|
||||
if [[ -f /etc/debian_version ]]; then
|
||||
export OS=Debian
|
||||
elif [[ -f /etc/fedora-release ]]; then
|
||||
export OS=fedora_core
|
||||
elif [[ -f /etc/redhat-release ]]; then
|
||||
export OS=red_hat
|
||||
else
|
||||
echo "This script must be run on a Debian or RedHat derivative"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "######################################################### "
|
||||
echo "#::: EverQuest Emulator Modular Installer "
|
||||
echo "#::: Installer Author: Akkadius "
|
||||
echo "#::: Installer Co-Author(s): N0ctrnl "
|
||||
echo "#::: "
|
||||
echo "#::: EQEmulator Server Software is developed and maintained "
|
||||
echo "#::: by the EQEmulator Developement team "
|
||||
echo "#::: "
|
||||
echo "#::: Everquest is a registered trademark "
|
||||
echo "#::: Daybreak Game Company LLC. "
|
||||
echo "#::: "
|
||||
echo "#::: EQEmulator is not associated or "
|
||||
echo "#::: affiliated in any way with Daybreak Game Company LLC. "
|
||||
echo "######################################################### "
|
||||
echo "#: "
|
||||
echo "######################################################### "
|
||||
echo "#::: To be installed: "
|
||||
echo "######################################################### "
|
||||
echo "- Server running folder - Will be installed to the folder you ran this script "
|
||||
echo "- MariaDB (MySQL) - Database engine "
|
||||
echo "- Perl 5.X :: Scripting language for quest engines "
|
||||
echo "- LUA Configured :: Scripting language for quest engines "
|
||||
echo "- Latest PEQ Database "
|
||||
echo "- Latest PEQ Quests "
|
||||
echo "- Latest Plugins repository "
|
||||
echo "- Maps (Latest V2) formats are loaded "
|
||||
echo "- New Path files are loaded "
|
||||
echo "- Optimized server binaries "
|
||||
echo "######################################################### "
|
||||
|
||||
# Installation variables (Don't need to change, only for advanced users)
|
||||
|
||||
export eqemu_server_directory=/home/eqemu
|
||||
export apt_options="-y -qq" # Set autoconfirm and silent install
|
||||
|
||||
################################################################
|
||||
|
||||
read -n1 -r -p "Press any key to continue..." key
|
||||
|
||||
#::: Setting up user environment (eqemu)
|
||||
echo "First, we need to set your passwords..."
|
||||
echo "Make sure that you remember these and keep them somewhere"
|
||||
echo ""
|
||||
echo ""
|
||||
groupadd eqemu
|
||||
useradd -g eqemu -d $eqemu_server_directory eqemu
|
||||
passwd eqemu
|
||||
|
||||
#::: Make server directory and go to it
|
||||
mkdir $eqemu_server_directory
|
||||
cd $eqemu_server_directory
|
||||
|
||||
#::: Setup MySQL root user PW
|
||||
read -p "Enter MySQL root (Database) password: " eqemu_db_root_password
|
||||
|
||||
#::: Write install variables (later use)
|
||||
echo "mysql_root:$eqemu_db_root_password" > install_variables.txt
|
||||
|
||||
#::: Setup MySQL server
|
||||
read -p "Enter Database Name (single word, no special characters, lower case):" eqemu_db_name
|
||||
read -p "Enter (Database) MySQL EQEmu Server username: " eqemu_db_username
|
||||
read -p "Enter (Database) MySQL EQEmu Server password: " eqemu_db_password
|
||||
|
||||
#::: Write install variables (later use)
|
||||
echo "mysql_eqemu_db_name:$eqemu_db_name" >> install_variables.txt
|
||||
echo "mysql_eqemu_user:$eqemu_db_username" >> install_variables.txt
|
||||
echo "mysql_eqemu_password:$eqemu_db_password" >> install_variables.txt
|
||||
|
||||
if [[ "$OS" == "Debian" ]]; then
|
||||
# Install pre-req packages
|
||||
apt-get $apt_options install bash
|
||||
apt-get $apt_options install build-essential
|
||||
apt-get $apt_options install cmake
|
||||
apt-get $apt_options install cpp
|
||||
apt-get $apt_options install curl
|
||||
apt-get $apt_options install debconf-utils
|
||||
apt-get $apt_options install g++
|
||||
apt-get $apt_options install gcc
|
||||
apt-get $apt_options install git
|
||||
apt-get $apt_options install git-core
|
||||
apt-get $apt_options install libio-stringy-perl
|
||||
apt-get $apt_options install liblua5.1
|
||||
apt-get $apt_options install liblua5.1-dev
|
||||
apt-get $apt_options install libluabind-dev
|
||||
apt-get $apt_options install libmysql++
|
||||
apt-get $apt_options install libperl-dev
|
||||
apt-get $apt_options install libperl5i-perl
|
||||
apt-get $apt_options install libwtdbomysql-dev
|
||||
apt-get $apt_options install lua5.1
|
||||
apt-get $apt_options install make
|
||||
apt-get $apt_options install mariadb-client
|
||||
apt-get $apt_options install open-vm-tools
|
||||
apt-get $apt_options install unzip
|
||||
apt-get $apt_options install uuid-dev
|
||||
apt-get $apt_options install zlib-bin
|
||||
apt-get $apt_options install zlibc
|
||||
|
||||
#::: Install FTP for remote FTP access
|
||||
echo "proftpd-basic shared/proftpd/inetd_or_standalone select standalone" | debconf-set-selections
|
||||
apt-get -y -q install proftpd
|
||||
|
||||
#::: Install MariaDB Server
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
debconf-set-selections <<< 'mariadb-server-10.0 mysql-server/root_password password PASS'
|
||||
debconf-set-selections <<< 'mariadb-server-10.0 mysql-server/root_password_again password PASS'
|
||||
apt-get install -y mariadb-server
|
||||
mysql -uroot -pPASS -e "SET PASSWORD = PASSWORD('$eqemu_db_root_password');"
|
||||
|
||||
elif [[ "$OS" == "red_hat" ]]; then
|
||||
# Do RedHat / CentOS stuff
|
||||
# Add the MariaDB repository to yum
|
||||
cat <<EOF > /etc/yum.repos.d/mariadb.repo
|
||||
# MariaDB 10.1 CentOS repository list - created 2016-08-20 05:42 UTC
|
||||
# http://downloads.mariadb.org/mariadb/repositories/
|
||||
[mariadb]
|
||||
name = MariaDB
|
||||
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
|
||||
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
EOF
|
||||
# Install prereqs
|
||||
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
|
||||
yum -y install deltarpm
|
||||
yum -y install open-vm-tools vim cmake boost-* zlib-devel mariadb-server mariadb-client mariadb-devel mariadb-libs mariadb-compat perl-* lua* dos2unix php-mysql proftpd
|
||||
yum -y groupinstall "Development Tools" "Basic Web Server" "Compatibility Libraries"
|
||||
|
||||
elif [[ "$OS" == "fedora_core" ]]; then
|
||||
# Do Fedora stuff
|
||||
dnf -y install open-vm-tools vim cmake boost-devel zlib-devel mariadb-server mariadb-devel mariadb-libs perl perl-DBD-MySQL perl-IO-stringy perl-devel lua-devel lua-sql-mysql dos2unix php-mysql proftpd wget compat-lua-libs compat-lua-devel compat-lua perl-Time-HiRes
|
||||
dnf -y groupinstall "Development Tools" "Basic Web Server" "C Development Tools and Libraries"
|
||||
fi
|
||||
|
||||
if [[ "$OS" == "fedora_core" ]] || [[ "$OS" == "red_hat" ]]; then
|
||||
# Start MariaDB server and set root password
|
||||
echo "Starting MariaDB server..."
|
||||
systemctl enable mariadb.service
|
||||
systemctl start mariadb.service
|
||||
sleep 5
|
||||
/usr/bin/mysqladmin -u root password $eqemu_db_root_password
|
||||
fi
|
||||
|
||||
#::: Configure game server database user
|
||||
mysql -uroot -p$eqemu_db_root_password -e "CREATE USER '$eqemu_db_username'@'localhost' IDENTIFIED BY '$eqemu_db_password';"
|
||||
mysql -uroot -p$eqemu_db_root_password -e "GRANT GRANT OPTION ON *.* TO '$eqemu_db_username'@'localhost';"
|
||||
mysql -uroot -p$eqemu_db_root_password -e "GRANT ALL ON *.* TO '$eqemu_db_username'@'localhost';"
|
||||
|
||||
#::: Create source and server directories
|
||||
mkdir $eqemu_server_directory/source
|
||||
mkdir $eqemu_server_directory/server
|
||||
mkdir $eqemu_server_directory/server/export
|
||||
mkdir $eqemu_server_directory/server/logs
|
||||
mkdir $eqemu_server_directory/server/shared
|
||||
mkdir $eqemu_server_directory/server/maps
|
||||
|
||||
#::: Pull down needed files for the installer from the Install repo
|
||||
|
||||
cd $eqemu_server_directory/source
|
||||
git clone https://github.com/EQEmu/Server.git
|
||||
mkdir $eqemu_server_directory/source/Server/build
|
||||
cd $eqemu_server_directory/source/Server/build
|
||||
|
||||
echo "Generating CMake build files..."
|
||||
if [[ "$OS" == "fedora_core" ]]; then
|
||||
cmake -DEQEMU_BUILD_LOGIN=ON -DEQEMU_BUILD_LUA=ON -DLUA_INCLUDE_DIR=/usr/include/lua-5.1/ -G "Unix Makefiles" ..
|
||||
else
|
||||
cmake -DEQEMU_BUILD_LOGIN=ON -DEQEMU_BUILD_LUA=ON -G "Unix Makefiles" ..
|
||||
fi
|
||||
echo "Building EQEmu Server code. This will take a while."
|
||||
|
||||
#::: Grab loginserver dependencies
|
||||
cd $eqemu_server_directory/source/Server/dependencies
|
||||
if [[ "$OS" == "Debian" ]]; then
|
||||
wget http://eqemu.github.io/downloads/ubuntu_LoginServerCrypto_x64.zip
|
||||
unzip ubuntu_LoginServerCrypto_x64.zip
|
||||
rm ubuntu_LoginServerCrypto_x64.zip
|
||||
elif [[ "$OS" == "fedora_core" ]] || [[ "$OS" == "red_hat" ]]; then
|
||||
wget http://eqemu.github.io/downloads/fedora12_LoginServerCrypto_x64.zip
|
||||
unzip fedora12_LoginServerCrypto_x64.zip
|
||||
rm fedora12_LoginServerCrypto_x64.zip
|
||||
fi
|
||||
cd $eqemu_server_directory/source/Server/build
|
||||
|
||||
#::: Build
|
||||
make
|
||||
|
||||
#::: Back to server directory
|
||||
cd $eqemu_server_directory/server
|
||||
wget https://dl.dropboxusercontent.com/u/50023467/dl/eqemu/eqemu_server.pl
|
||||
|
||||
#::: Link build files
|
||||
|
||||
cd $eqemu_server_directory/server
|
||||
|
||||
#::: Map lowercase to uppercase to avoid issues
|
||||
ln -s maps Maps
|
||||
|
||||
ln -s $eqemu_server_directory/source/Server/build/bin/loginserver
|
||||
ln -s $eqemu_server_directory/source/Server/build/bin/eqlaunch
|
||||
ln -s $eqemu_server_directory/source/Server/build/bin/export_client_files
|
||||
ln -s $eqemu_server_directory/source/Server/build/bin/import_client_files
|
||||
ln -s $eqemu_server_directory/source/Server/build/bin/libcommon.a
|
||||
ln -s $eqemu_server_directory/source/Server/build/bin/libluabind.a
|
||||
ln -s $eqemu_server_directory/source/Server/build/bin/queryserv
|
||||
ln -s $eqemu_server_directory/source/Server/build/bin/shared_memory
|
||||
ln -s $eqemu_server_directory/source/Server/build/bin/ucs
|
||||
ln -s $eqemu_server_directory/source/Server/build/bin/world
|
||||
ln -s $eqemu_server_directory/source/Server/build/bin/zone
|
||||
|
||||
#::: Notes
|
||||
|
||||
perl $eqemu_server_directory/server/eqemu_server.pl new_server
|
||||
|
||||
#::: Chown files
|
||||
chown eqemu:eqemu $eqemu_server_directory/ -R
|
||||
chmod 755 $eqemu_server_directory/server/*.pl
|
||||
chmod 755 $eqemu_server_directory/server/*.sh
|
||||
Loading…
x
Reference in New Issue
Block a user