====== Compile on Debian/Mint/Ubuntu/Dyson/Raspbian ====== This guide was tested on clean installation of [[http://www.debian.org|Debian]] 11.6, [[http://www.linuxmint.com|Linux Mint]] Debian Edition 2 Betsy, [[http://www.ubuntu.com|Ubuntu]] 16.04/17.04, [[http://www.osdyson.org|Dyson]] (2015-07-07-1720) [[http://www.raspbian.org|Raspbian]].\\ Everything is done from command line, that means everything can be done over ssh on remote server.\\ \\ In my case was only base system installed, that means after startup and login i was already in command line and working directory was my home directory.\\ If you are not in command line then you need to go here some way (ie if gnome is installed then open terminal). ==== 1. Prerequisites. ==== For PtokaX compile you need **make** (tool controlling executable generation from sources), **g++** (c++ compiler), **zlib** (compression library used to save hub badwith), **tinyxml** (library used to read and write xml files) and **Lua** (programming language used for scripting).\\ For database support you need database development files for database that will be used.\\ They can be installed using package manager **(Note: to install packages using package manager you need root permissions)**. * **a. Make, g++, zlib, tinyxml**\\ Install them with command: **apt-get install make g++ zlib1g-dev libtinyxml-dev** * **b. Lua**\\ When you want Lua 5.4 then install it with command: **apt-get install liblua5.4-dev**\\ When you want Lua 5.3 then install it with command: **apt-get install liblua5.3-dev**\\ When you want Lua 5.2 then install it with command: **apt-get install liblua5.2-dev**\\ When you want Lua 5.1 then install it with command: **apt-get install liblua5.1-dev** * **c. Database support (optional)**\\ When you want **PostgreSQL** then install development files with command: **apt-get install libpq-dev**\\ When you want **MySQL** then install development files with command: **apt-get install libmysqlclient-dev**\\ When you want **MariaDB** then install development files with command: **apt-get install libmariadb-client-lgpl-dev-compat**\\ When you want **SQLite** then install development files with command: **apt-get install libsqlite3-dev**\\ **Important note: SQLite on Debian is compiled without [[http://www.icu-project.org|ICU]] support. Because of that case-insensitive string comparing is working only for simple a-z and A-Z characters. When you want correct behavior, then recompile SQLite library with ICU support.** ==== 2. Downloading source and compile. ==== * **a. PtokaX source**\\ * Download it with command: **wget** http://www.PtokaX.org/files/0.5.3.0-nix-src.tgz\\ Unpack downloaded archive with command: **tar -xf 0.5.3.0-nix-src.tgz** * Now we have in actual directory new directory PtokaX. Go to that directory with command: **cd PtokaX** * **b. PtokaX compile**\\ * **PtokaX without database support**\\ When you have Lua 5.4 then compile PtokaX with command: **make**\\ When you have Lua 5.3 then compile PtokaX with command: **make lua53**\\ When you have Lua 5.2 then compile PtokaX with command: **make lua52**\\ When you have Lua 5.1 then compile PtokaX with command: **make lua51** * **PtokaX with PostgreSQL database support**\\ When you have Lua 5.4 then compile PtokaX with command: **make -f makefile-postgres**\\ When you have Lua 5.3 then compile PtokaX with command: **make -f makefile-postgres lua53**\\ When you have Lua 5.2 then compile PtokaX with command: **make -f makefile-postgres lua52**\\ When you have Lua 5.1 then compile PtokaX with command: **make -f makefile-postgres lua51** * **PtokaX with MySQL or MariaDB database support**\\ When you have Lua 5.4 then compile PtokaX with command: **make -f makefile-mysql**\\ When you have Lua 5.3 then compile PtokaX with command: **make -f makefile-mysql lua53**\\ When you have Lua 5.2 then compile PtokaX with command: **make -f makefile-mysql lua52**\\ When you have Lua 5.1 then compile PtokaX with command: **make -f makefile-mysql lua51** * **PtokaX with SQLite database support**\\ When you have Lua 5.4 then compile PtokaX with command: **make -f makefile-sqlite**\\ When you have Lua 5.3 then compile PtokaX with command: **make -f makefile-sqlite lua53**\\ When you have Lua 5.2 then compile PtokaX with command: **make -f makefile-sqlite lua52**\\ When you have Lua 5.1 then compile PtokaX with command: **make -f makefile-sqlite lua51** ==== 3. Setup and run. ==== * **a. **[[guides:unix_basic_setup|Basic setup.]] * **b. **[[guides:unix_advanced_setup|Advanced setup.]] * **c. **[[guides:unix_run|How to run as console application or daemon.]]