<h1>Installing on Android<aclass="headerlink"href="#installing-on-android"title="Permalink to this headline">¶</a></h1>
<p>This page describes how to install and run the Evennia server on an Android phone. This will involve installing a slew of third-party programs from the Google Play store, so make sure you are okay with this before starting.</p>
<divclass="admonition warning">
<pclass="admonition-title">Warning</p>
<p>Android installation is experimental and not tested with later versions of Android.
Report your findings.</p>
</div>
<sectionid="install-termux">
<h2>Install Termux<aclass="headerlink"href="#install-termux"title="Permalink to this headline">¶</a></h2>
<p>The first thing to do is install a terminal emulator that allows a “full” version of linux to be run. Note that Android is essentially running on top of linux so if you have a rooted phone, you may be able to skip this step. You <em>don’t</em> require a rooted phone to install Evennia though.</p>
<p>Assuming we do not have root, we will install <aclass="reference external"href="https://play.google.com/store/apps/details?id=com.termux&hl=en">Termux</a>. Termux provides a base installation of Linux essentials, including apt and Python, and makes them available under a writeable directory. It also gives us a terminal where we can enter commands. By default, Android doesn’t give you permissions to the root folder, so Termux pretends that its own installation directory is the root directory.</p>
<p>Termux will set up a base system for us on first launch, but we will need to install some prerequisites for Evennia. Commands you should run in Termux will look like this:</p>
<p>Termux ships with Python 3, perfect. Python 3 has venv (virtualenv) and pip (Python’s module
installer) built-in.</p>
<p>So, let’s set up our virtualenv. This keeps the Python packages we install separate from the system
versions.</p>
<divclass="highlight-default notranslate"><divclass="highlight"><pre><span></span>$ cd
$ python3 -m venv evenv
</pre></div>
</div>
<p>This will create a new folder, called <codeclass="docutils literal notranslate"><spanclass="pre">evenv</span></code>, containing the new python executable.
Next, let’s activate our new virtualenv. Every time you want to work on Evennia, you need to run the
<p>This step will possibly take quite a while - we are downloading Evennia and are then installing it,
building all of the requirements for Evennia to run. If you run into trouble on this step, please
see <aclass="reference internal"href="#troubleshooting"><spanclass="std std-doc">Troubleshooting</span></a>.</p>
<p>You can go to the dir where Evennia is installed with <codeclass="docutils literal notranslate"><spanclass="pre">cd</span><spanclass="pre">$VIRTUAL_ENV/src/evennia</span></code>. <codeclass="docutils literal notranslate"><spanclass="pre">git</span><spanclass="pre">grep</span><spanclass="pre">(something)</span></code> can be handy, as can <codeclass="docutils literal notranslate"><spanclass="pre">git</span><spanclass="pre">diff</span></code></p>
</section>
<sectionid="final-steps">
<h3>Final steps<aclass="headerlink"href="#final-steps"title="Permalink to this headline">¶</a></h3>
<p>At this point, Evennia is installed on your phone! You can now continue with the original
<aclass="reference internal"href="Installation.html"><spanclass="doc std std-doc">Setup Quickstart</span></a> instruction, we repeat them here for clarity.</p>
<divclass="highlight-default notranslate"><divclass="highlight"><pre><span></span>(evenv) $ cd mygame
(evenv) $ evennia migrate
(evenv) $ evennia start
</pre></div>
</div>
<p>Your game should now be running! Open a web browser at <aclass="reference external"href="http://localhost:4001">http://localhost:4001</a> or point a telnet
client to localhost:4000 and log in with the user you created.</p>
</section>
</section>
<sectionid="running-evennia">
<h2>Running Evennia<aclass="headerlink"href="#running-evennia"title="Permalink to this headline">¶</a></h2>
<p>When you wish to run Evennia, get into your Termux console and make sure you have activated your
virtualenv as well as are in your game’s directory. You can then run evennia start as normal.</p>
<divclass="highlight-default notranslate"><divclass="highlight"><pre><span></span>$ cd ~ && source evenv/bin/activate
(evenv) $ cd mygame
(evenv) $ evennia start
</pre></div>
</div>
<p>You may wish to look at the <aclass="reference internal"href="Installation-Git.html#linux-install"><spanclass="std std-doc">Linux Instructions</span></a> for more.</p>
</section>
<sectionid="caveats">
<h2>Caveats<aclass="headerlink"href="#caveats"title="Permalink to this headline">¶</a></h2>
<ulclass="simple">
<li><p>Android’s os module doesn’t support certain functions - in particular getloadavg. Thusly, running
the command @server in-game will throw an exception. So far, there is no fix for this problem.</p></li>
<li><p>As you might expect, performance is not amazing.</p></li>
<li><p>Android is fairly aggressive about memory handling, and you may find that your server process is
killed if your phone is heavily taxed. Termux seems to keep a notification up to discourage this.</p></li>
</ul>
</section>
<sectionid="troubleshooting">
<h2>Troubleshooting<aclass="headerlink"href="#troubleshooting"title="Permalink to this headline">¶</a></h2>
<p>As time goes by and errors are reported, this section will be added to.</p>
<p>Some steps to try anyway:</p>
<ulclass="simple">
<li><p>Make sure your packages are up-to-date, try running <codeclass="docutils literal notranslate"><spanclass="pre">pkg</span><spanclass="pre">update</span><spanclass="pre">&&</span><spanclass="pre">pkg</span><spanclass="pre">upgrade</span><spanclass="pre">-y</span></code></p></li>
<li><p>Make sure you’ve installed the clang package. If not, try <codeclass="docutils literal notranslate"><spanclass="pre">pkg</span><spanclass="pre">install</span><spanclass="pre">clang</span><spanclass="pre">-y</span></code></p></li>
<li><p>Make sure you’re in the right directory. `cd ~/mygame</p></li>
<li><p>Make sure you’ve sourced your virtualenv. type <codeclass="docutils literal notranslate"><spanclass="pre">cd</span><spanclass="pre">&&</span><spanclass="pre">source</span><spanclass="pre">evenv/bin/activate</span></code></p></li>
<li><p>See if a shell will start: <codeclass="docutils literal notranslate"><spanclass="pre">cd</span><spanclass="pre">~/mygame</span><spanclass="pre">;</span><spanclass="pre">evennia</span><spanclass="pre">shell</span></code></p></li>
<li><p>Look at the log files in ~/mygame/server/logs/</p></li>