GameServerManagers / LinuxGSM

The command-line tool for quick, simple deployment and management of Linux dedicated game servers.
https://linuxgsm.com
MIT License
4.3k stars 819 forks source link

[ts3server] can only update servers installed a while ago #677

Closed UltimateByte closed 8 years ago

UltimateByte commented 8 years ago

Yep... you read it right.

Freshly installed server :

serverdev@lrob:~/ts3server4$ ./ts3server update
[ FAIL ] Update ts3-server: Checking for update: teamspeak.com: Not returning version infoserverdev@lrob:~/ts3server4$

Old installation, already updated too :

serverdev@lrob:~/ts3server$ ./ts3server update
[  OK  ] Update ts3-server: Checking for update: teamspeak.com

No update available:
        Current version: 3.0.12
        Available version: 3.0.12

I'm a bit mindfucked right now.

oalaro commented 8 years ago

Downloadable name from linux-amd64 to linux_amd64. They also changed the name of the binary

Can one of these changes be the cause?

UltimateByte commented 8 years ago

That's exactly what we all fixed already. All "linux-" has been replaced by "linux_".

serverdev@lrob:~/ts3server4$ cd functions/
serverdev@lrob:~/ts3server4/functions$ ls
check_deps.sh  check.sh            core_functions.sh  fix_glibc.sh    install_complete.sh  install_header.sh     install_ts3db.sh
check_logs.sh  check_systemdir.sh  core_getopt.sh     fix.sh          install_config.sh    install_logs.sh       install_ts3.sh
check_root.sh  command_install.sh  core_messages.sh   info_distro.sh  install_gsquery.sh   install_serverdir.sh  update_check.sh
serverdev@lrob:~/ts3server4/functions$ grep -rH "linux-" *
serverdev@lrob:~/ts3server4/functions$ grep -rH "linux_" *
install_ts3.sh: wget --spider -q "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2"
install_ts3.sh:echo -e "downloading teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2...\c"
install_ts3.sh:wget -N /dev/null http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2 2>&1 | grep -F HTTP | cut -c45-| uniq
install_ts3.sh:echo -e "extracting teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2...\c"
install_ts3.sh:tar -xf "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" 2> ".${servicename}-tar-error.tmp"
install_ts3.sh:cp -R "${rootdir}/teamspeak3-server_linux_${ts3arch}/"* "${filesdir}" 2> ".${servicename}-cp-error.tmp"
install_ts3.sh:rm -f "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2"
install_ts3.sh:rm -rf "${rootdir}/teamspeak3-server_linux_${ts3arch}"
update_check.sh:        wget --spider -q "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2"
serverdev@lrob:~/ts3server4/functions$

I also inspected the update function that seems to run exactly like the install function to get the latest version number, that's why i don't get it. The issue must be somewhere else, but where ?

oalaro commented 8 years ago
+++ '[' 8 -eq 0 ']'
+++ read ts3_version_number
+++ wget --spider -q http://dl.4players.de/ts/releases/3.0.12/teamspeak3-server_linux_-3.0.12.tar.bz2

Maybe this helps

It should be http://dl.4players.de/ts/releases/3.0.12/teamspeak3-server_linux_amd64-3.0.12.tar.bz2

EDIT: I guess changing the name of main binary file is the cause. Since on my old server I have ts3server_linux_amd64 just siting there. Cause it didn't get deleted/overwritten.

oalaro commented 8 years ago

After adding file named ts3server_linux_amd64 into serverfiles folder, on a fresh install ,the problem was fixed

ts3server@9752:~$ ./ts3server update [ OK ] Update ts3-server: Checking for update: teamspeak.com

No update available: Current version: 3.0.12 Available version: 3.0.12

[ OK ] Update ts3-server: No update available

UltimateByte commented 8 years ago

First message doesn't help. The second one is amazing ! I can confirm that. Now let's figure out why ! ps : even an empty ts3server_linx_amd64 text file did the trick.

oalaro commented 8 years ago

Before adding the file ts3server_linx_amd64

++++ egrep -o '(amd64|x86)'
+++++ tail -1
+++++ sort
+++++ grep -v ts3server_minimal_runscript.sh
+++++ find /home/ts3server/serverfiles/ -name 'ts3server_*_*'
++++ ls /home/ts3server/serverfiles/logs/ts3server_2016-02-05__14_54_26.126935_1.log
+++ ts3arch=
+++ uniq
+++ egrep -o '<a href=\".*\/\">.*\/<\/a>'
+++ egrep -o '[0-9\.?]+'
+++ grep -i dir
+++ wget 'http://dl.4players.de/ts/releases/?C=M;O=D' -q -O -
+++ tr . ' '

After adding the file ts3server_linx_amd64

++++ tail -1
++++ egrep -o '(amd64|x86)'
+++++ find /home/ts3server/serverfiles/ -name 'ts3server_*_*'
+++++ tail -1
+++++ sort
+++++ grep -v ts3server_minimal_runscript.sh
++++ ls /home/ts3server/serverfiles/ts3server_linux_amd64
+++ ts3arch=amd64
+++ egrep -o '<a href=\".*\/\">.*\/<\/a>'
+++ egrep -o '[0-9\.?]+'
+++ grep -i dir
+++ uniq
+++ wget 'http://dl.4players.de/ts/releases/?C=M;O=D' -q -O -
+++ tr . ' '

I leaves ts3arch= variable empty. That's why it tries to find download teamspeak3-serverlinux(arch should be here)-3.0.12.tar.bz2 And it fails. Hope this helps

UltimateByte commented 8 years ago

Solved, merging soon

The issue happened because "update" was using ts3server_linx_amd64 file in serverfiles to get the arch, but that file doesn't exist anymore ! I made the update process to use the same way than install does to detect arch, and to set ts3arch properly.

Thanks a lot @oalaro , you helped me a lot understanding this.

lock[bot] commented 6 years ago

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.