poikilos
7 years ago
committed by
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