committed by
							
								 Jacob Gustafson
								Jacob Gustafson
							
						
					
				
				 6 changed files with 151 additions and 10 deletions
			
			
		| @ -0,0 +1,57 @@ | |||
| #remove non-git version first: | |||
| sudo apt update | |||
| echo "This script compiles AND installs minetestserver (NOT run-in-place, but rather system-wide) with leveldb, redis, and defaults postgresql, doxygen, sqlite3" | |||
| echo | |||
| echo | |||
| echo "If you want to install the client on your server (not normal practice), change -DBUILD_CLIENT=FALSE to -DBUILD_CLIENT=TRUE before continuing this script." | |||
| echo "Removing the non-git (packaged) version first (Press Ctrl C  to cancel)..." | |||
| sleep 1 | |||
| echo "3..." | |||
| sleep 1 | |||
| echo "2..." | |||
| sleep 1 | |||
| echo "1..." | |||
| sleep 1 | |||
| echo | |||
| sudo apt remove minetest-server | |||
| sudo apt remove minetest | |||
| 
 | |||
| sudo apt install libncurses5-dev libgettextpo-dev doxygen libspatialindex-dev libpq-dev postgresql-server-dev-all | |||
| # added libpq-dev postgresql-server-dev-all (or specific version) are BOTH needed for PostgreSQL development as per https://stackoverflow.com/questions/13920383/findpostgresql-cmake-wont-work-on-ubuntu | |||
| # if you skip the above, the below says missing: GetText, Curses, ncurses, Redis, SpatialIndex, Doxygen | |||
| sudo apt install -y git build-essential libirrlicht-dev libgettextpo0 libfreetype6-dev cmake libbz2-dev libpng12-dev libjpeg8-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-openssl-dev libluajit-5.1-dev liblua5.1-0-dev libleveldb-dev | |||
| cd | |||
| if [ ! -d "Downloads" ]; then | |||
|    mkdir Downloads | |||
| fi | |||
| if [ -d minetest ]; then | |||
|   echo "ERROR: Nothing done since 'minetest' already exists in `pwd`--delete it before cloning, or run the included update script to update." | |||
| fi | |||
| git clone https://github.com/minetest/minetest.git | |||
| git pull --all  # see https://forum.minetest.net/viewtopic.php?f=42&t=3837&start=125#p306449 | |||
| cd minetest/games | |||
| git clone https://github.com/minetest/minetest_game.git | |||
| git pull --all | |||
| cd .. | |||
| # heavily modified from forum url above due to hints from AUR files obtained via git clone https://aur.archlinux.org/minetest-git-leveldb.git | |||
| echo "ENABLE_CURSES enables server-side terminal via --terminal option" | |||
| cmake . -DENABLE_GETTEXT=on -DENABLE_CURSES=on -DENABLE_FREETYPE=on -DENABLE_LEVELDB=on -DENABLE_CURL=on -DENABLE_GETTEXT=on -DENABLE_REDIS=on -DENABLE_POSTGRESQL=on -DBUILD_SERVER=on -DBUILD_CLIENT=off -DRUN_IN_PLACE=off -DCMAKE_BUILD_TYPE=Release | |||
| # NOTE: as long as -DRUN_IN_PLACE=off, above installs correctly without -DCMAKE_INSTALL_PREFIX=/usr which for some reason is used by https://aur.archlinux.org/minetest-git.git | |||
| #  -DCMAKE_BUILD_TYPE=Release as per https://aur.archlinux.org/minetest-git.git | |||
| make -j$(nproc) | |||
| sudo make install | |||
| if [ -f "`command -v update-desktop-database`" ]; then | |||
|   echo "updating desktop database as per https://aur.archlinux.org/minetest-git.git" | |||
|   update-desktop-database &>/dev/null && update-desktop-database -q | |||
| fi | |||
| if [ -f "`command -v gtk-update-icon-cache`" ]; then | |||
|   echo "updating gtk icon cache as per https://aur.archlinux.org/minetest-git.git" | |||
|   gtk-update-icon-cache   &>/dev/null && gtk-update-icon-cache -q -t -f usr/share/icons/hicolor | |||
| fi | |||
| # minetest; | |||
| echo -e "\n\n\e[1;33mYou can run Minetest Server by typing \"minetestserver\" in a terminal, but using mtsenliven.py is recommended instead and keeps a config file for what world and subgame you want via minetestinfo.py.\e[0m" | |||
| echo "The only known uninstall method is:" | |||
| echo "sudo xargs rm < install_manifest.txt" | |||
| echo "# as per http://irc.minetest.net/minetest/2015-08-06" | |||
| # based on https://forum.minetest.net/viewtopic.php?f=42&t=3837 (below) | |||
| # sudo apt-get install -y git build-essential libirrlicht-dev libgettextpo0 libfreetype6-dev cmake libbz2-dev libpng12-dev libjpeg8-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-openssl-dev libluajit-5.1-dev liblua5.1-0-dev libleveldb-dev; cd; git clone https://github.com/minetest/minetest.git; cd minetest/games; git clone https://github.com/minetest/minetest_game.git; cd ..; cmake . -DENABLE_GETTEXT=1 -DENABLE_FREETYPE=1 -DENABLE_LEVELDB=1; make -j$(nproc); sudo make install; minetest; echo -e "\n\n\e[1;33mYou can run Minetest again by typing \"minetest\" in a terminal or selecting it in an applications menu.\nYou can install mods in ~/.minetest/mods, too.\e[0m" | |||
| @ -0,0 +1,33 @@ | |||
| if [ ! -f "install_manifest.txt" ]; then | |||
|   echo "missing install_manifest.txt, cannot uninstall unless you properly run cmake source and are running this script from the base repo directory" | |||
|   exit 1 | |||
| fi | |||
| sudo xargs rm < install_manifest.txt | |||
| echo "Remove botched folders from faulty make install path apparently caused by running sudo make install without -DRUN_IN_PLACE=FALSE" | |||
| echo "This should be safe since only removes directories if empty (except removes /usr/local/mods recursively)..." | |||
| rmdir /usr/local/mods | |||
| rmdir /usr/local/textures | |||
| rmdir /usr/local/games | |||
| rmdir /usr/local/fonts | |||
| rmdir /usr/local/builtin | |||
| rmdir /usr/local/doc | |||
| rmdir /usr/local/unix | |||
| rmdir /usr/local/fonts | |||
| sudo rm -Rf /usr/local/mods | |||
| sudo rmdir /usr/local/textures | |||
| sudo rmdir /usr/local/doc | |||
| sudo rmdir /usr/local/fonts | |||
| sudo rmdir /usr/local/unix/* | |||
| #rmdir: failed to remove 'icons': Directory not empty | |||
| #rmdir: failed to remove 'man': Directory not empty | |||
| sudo rmdir /usr/local/unix/man/man6 | |||
| sudo rmdir /usr/local/unix/man | |||
| sudo rmdir /usr/local/unix/icons/hicolor/128x128/* | |||
| sudo rmdir /usr/local/unix/icons/hicolor/128x128 | |||
| sudo rmdir /usr/local/unix/icons/hicolor/scalable/* | |||
| sudo rmdir /usr/local/unix/icons/hicolor/scalable | |||
| sudo rmdir /usr/local/unix/icons/hicolor | |||
| sudo rmdir /usr/local/unix/icons | |||
| sudo rmdir /usr/local/unix | |||
| sudo rmdir /usr/local/builtin/* | |||
| sudo rmdir /usr/local/builtin | |||
| @ -0,0 +1,44 @@ | |||
| 
 | |||
| LOCAL_REPO_DIR=$HOME/Downloads/minetest | |||
| if [ ! -f "$LOCAL_REPO_DIR/install_manifest.txt" ]; then | |||
|   echo "missing $LOCAL_REPO_DIR/install_manifest.txt, cannot uninstall unless you properly run cmake source and are running this script from the base repo directory (only runs from that specific location specified for safety)" | |||
|   exit 1 | |||
| fi | |||
| cd "$LOCAL_REPO_DIR" | |||
| sudo xargs rm < install_manifest.txt | |||
| echo "Remove botched folders from faulty make install path apparently caused by running sudo make install without -DRUN_IN_PLACE=FALSE" | |||
| echo "This should be safe since only removes directories if empty (except removes /usr/local/mods recursively)..." | |||
| rmdir /usr/local/mods | |||
| rmdir /usr/local/textures | |||
| rmdir /usr/local/games | |||
| rmdir /usr/local/fonts | |||
| rmdir /usr/local/builtin | |||
| rmdir /usr/local/doc | |||
| rmdir /usr/local/unix | |||
| rmdir /usr/local/fonts | |||
| sudo rm -Rf /usr/local/mods | |||
| sudo rmdir /usr/local/textures | |||
| sudo rmdir /usr/local/doc | |||
| sudo rmdir /usr/local/fonts | |||
| sudo rmdir /usr/local/unix/* | |||
| #rmdir: failed to remove 'icons': Directory not empty | |||
| #rmdir: failed to remove 'man': Directory not empty | |||
| sudo rmdir /usr/local/unix/man/man6 | |||
| sudo rmdir /usr/local/unix/man | |||
| sudo rmdir /usr/local/unix/icons/hicolor/128x128/* | |||
| sudo rmdir /usr/local/unix/icons/hicolor/128x128 | |||
| sudo rmdir /usr/local/unix/icons/hicolor/scalable/* | |||
| sudo rmdir /usr/local/unix/icons/hicolor/scalable | |||
| sudo rmdir /usr/local/unix/icons/hicolor | |||
| sudo rmdir /usr/local/unix/icons | |||
| sudo rmdir /usr/local/unix | |||
| sudo rmdir /usr/local/builtin/* | |||
| sudo rmdir /usr/local/builtin | |||
| if [ -f "`command -v update-desktop-database`" ]; then | |||
|   echo "updating desktop database as per https://aur.archlinux.org/minetest-git.git" | |||
|   update-desktop-database &>/dev/null && update-desktop-database -q | |||
| fi | |||
| if [ -f "`command -v gtk-update-icon-cache`" ]; then | |||
|   echo "updating gtk icon cache as per https://aur.archlinux.org/minetest-git.git" | |||
|   gtk-update-icon-cache &>/dev/null && gtk-update-icon-cache -q -t -f usr/share/icons/hicolor | |||
| fi | |||
| @ -0,0 +1,16 @@ | |||
| #!/bin/sh | |||
| 
 | |||
| 
 | |||
| if [ -d "$HOME/Downloads/minetest" ]; then | |||
|   cd "$HOME/Downloads" | |||
|   cd minetest; sudo git pull; sudo make -j$(nproc) | |||
|   #cd games; sudo git pull; sudo make -j$(nproc) | |||
|   #git config global user.email "" | |||
|   #git config global user.name "expertmm" | |||
|   sudo git pull https://github.com/minetest/minetest_game.git | |||
|   #sudo git fetch | |||
|   #sudo git checkout HEAD games/minetest_game | |||
|   #sudo make install | |||
| else | |||
|   echo "ERROR: no minetest in $HOME/Downloads" | |||
| fi | |||
| @ -1,10 +0,0 @@ | |||
| #!/bin/sh | |||
| cd | |||
| cd minetest; sudo git pull; sudo make -j$(nproc) | |||
| #cd games; sudo git pull; sudo make -j$(nproc) | |||
| #git config global user.email "tertiary@axlemedia.net" | |||
| #git config global user.name "Expert Multimedia" | |||
| sudo git pull https://github.com/minetest/minetest_game.git | |||
| #sudo git fetch | |||
| #sudo git checkout HEAD games/minetest_game | |||
| #sudo make install | |||
					Loading…
					
					
				
		Reference in new issue