Introduction
Shortcut
If you are only interested in running EVEMon on linux (or any other *nix that mono supports), there is a much easier way to do this described in EVEMonoNightlySnapshots .
Description
This HowTo describes the complete process that is required to get EVEMon running on Ubuntu 7.10 using a patched mono version. (This HowTo works well for building EVEMon on Ubuntu 8.04 Alpha 6 as well).
I have chosen to use a parallel mono environment, which will make sure that you don't break your Ubuntu's mono and software.
About EVEMon on Linux
Basic functionality exists: you can add characters and create plans, but there are several other bugs that occur. If you are expecting a flawless EVEMon experience, I suggest you use a windows version for now. On the other hand, running EVEMon on Linux is just cool, so why not try it? :)
Instructions
Mono 1.2.6
Preparing Ubuntu
First we will need to make sure that Ubuntu´s mono is completely installed. Also we install Ubuntu's monodevelop so we have all the required dependencies for it when we compile the newer version. And we ofcourse need some dependencies for the compile process. It's possible some of it is a bit overdone, but this way it compiled without problems.
sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get install build-essential mono monodevelop libmono* mono-mcs mono-gmcs libgdiplus gawk gtk-sharp2 bison subversion
Setting up the parallel environment
The patched mono version will be installed in /opt/mono. To use a parallel enviroment we need to create a file that sets up this environment
Create a bash script named something like /opt/mono-1.2.6-patched-env. Its contents should be similar to the following:
#!/bin/bash MONO_PREFIX=/opt/mono GNOME_PREFIX=/usr export LD_LIBRARY_PATH=$MONO_PREFIX/lib:$LD_LIBRARY_PATH export C_INCLUDE_PATH=$MONO_PREFIX/include:$GNOME_PREFIX/include export ACLOCAL_PATH=$MONO_PREFIX/share/aclocal export PKG_CONFIG_PATH=$MONO_PREFIX/lib/pkgconfig:$GNOME_PREFIX/lib/pkgconfig export MONO_GAC_PREFIX=/opt/mono:/usr PATH=$MONO_PREFIX/bin:$PATH PS1="[mono] \w @ "
Entering the parallel environment
Whenever we later on want to use the parallel mono environment we should execute:
source /opt/mono-1.2.6-patched-env
Until we close that shell, it will be in the parallel environment. When the patched mono will be installed, the shell will use that mono instead of the Ubuntu version.
You can always see in what environment you are because of the prefix.
Now enter the parallel environment before continuing
Downloading and patching Mono 1.2.6
I will use ~/Downloads as my Downloads directory. Replace references to it with your own download dir.
First create the file ~/Downloads/mono-1.2.6-ScrollBar.cs.evemonpatch and let the content be:
--- mcs/class/Managed.Windows.Forms/System.Windows.Forms/ScrollBar.cs 2008-02-09 12:15:27.000000000 +0100
+++ mcs/class/Managed.Windows.Forms/System.Windows.Forms/ScrollBar.cs.patched 2008-02-09 12:18:24.000000000 +0100
@@ -394,6 +394,9 @@
return large_change;
}
set {
+ if (value < 0) {
+ value = 0;
+ }
if (value < 0)
#if NET_2_0
throw new ArgumentOutOfRangeException ("LargeChange", string.Format ("Value '{0}' must be greater than or equal to 0.", value));
Enter your download dir and download and extract mono-1.2.6
wget -c http://go-mono.com/sources/mono/mono-1.2.6.tar.bz2
tar -jxvf mono-1.2.6.tar.bz2
Enter the mono directory and patch mono with the patch file you just created :
cd mono-1.2.6
patch -p0 < ~/Downloads/mono-1.2.6-ScrollBar.cs.evemonpatch
If no errors were shown, we can now compile and install the patched mono.
Configuring and compiling mono
./configure --prefix=/opt/mono
If no errors with configuring, start compiling. (This will take some time. On a Core2Duo E6400 it took 20 minutes)
make
If no errors with compiling, install the compiled mono.
sudo make install
Testing the parallel mono
We have now installed a parallel patched mono. To test if it indeed is working, open up a new terminal and enter:
mono --version (this should be 1.2.4, since this is the Ubuntu standard mono)
Now enter the parallel environment and check again:
source /opt/mono-1.2.6-patched-env
mono --version (this should be 1.2.6)
Compiling EVEMon
The Ubuntu MonoDevelop will work with the parallel environment, but it can't be started directly with /usr/bin/monodevelop. Enter the following command to run monodevelop with the patched mono. (Ofcoure, also here: make sure you are in the parallel env --> this applies to the whole guide, so I won't mention it anymore)
mono /usr/lib/monodevelop/bin/MonoDevelop.exe
Downloading and patching EVEMon SVN
We will download a specific revision of EVEMon SVN, and apply a patch to it, so it will compile with mono. It is of course possible to download the latest revision of EVEMon and patch it yourself manually, but this way we can make sure that the patch always works.
The revision used here is the most recent one at this date (9 feb 2008).
Checkout EVEMon from svn:
svn co -r 1156 svn://evemon.battleclinic.com/EVEMon/EVEMon/trunk evemon
Download the patch (also see end of page) and extract it to your Downloads folder:
tar -zxvf evemon-r1156.mono-patch.tar.gz
Apply the patch:
cd evemon patch -p1 < ../evemon-r1156.mono-patch
Compiling EVEMon
Start monodevelop:
mono /usr/lib/monodevelop/bin/MonoDevelop.exe
Open the solution named: MONO_EVEMonCSharp.sln in the evemon folder.
Select instead of "Debug|x86", "Release|X86" in the MonoDevelop taskbar.
Right-click "Solution MONO_EVEMonCSharp" in the Solution Window, and select "Build MONOEVEMonCSharp"
It should now compile without giving errors, only with some warnings.
If you get errors about missing "designer" files, run the following in the evemon folder:
mv EVEMon.Common/BusyDialog.Designer.cs EVEMon.Common/BusyDialog.designer.cs mv EVEMon.Common/EVEMonForm.Designer.cs EVEMon.Common/EVEMonForm.designer.cs mv EVEMon.Common/SplitButton.Designer.cs EVEMon.Common/SplitButton.designer.cs mv SkillPlanner/RequiredSkillsControl.Designer.cs SkillPlanner/RequiredSkillsControl.designer.cs
Preparing EVEMon
The only thing left to do is to copy the skill xml files, since they are not copied when compiling. Probably because the windowsonly installer normally copies those.
From your evemon folder execute:
mkdir bin/x86/Release/Resources cp EVEMon.Common/Resources/*.gz bin/x86/Release/Resources/
You can now copy the bin/x86/Release folder to some other location, rename it to EVEMon_Mono, or whatever you like.
There is a bug in the code using this path, which drops the '/' between the path and the "Resources" folder. If you have copied the release folder into ~/evemon, you will need to:
cd ln -s evemon/Resources evemonResources
I'm sure the devs will fix this soon.
Running EVEMon
You will need to be in your parallel mono environment to succesfully execute EVEMon. Therefore a simple bash script or command is required. Execute it within your folder with the compiled EVEMon.
source /opt/mono-1.2.6-patched-env && mono ./EVEMon.exe
This requires an open terminal. I haven't figured out how to start withouth a terminal, but maybe somebody else can enlighten us.
Running EVEMon from a launcher
Copy the mono-1.2.6-patched-env file to your home directory, rename it to evemon.sh or similar. Then add on the last line something like the following, replacing the path with your path to EVEMon.exe:
mono /home/user/evemon/EVEMon.exe
Change mod on the file to make it executable:
chmod 0755 evemon.sh
Now, simply rightclick on your panel or desktop, and choose to "Add to Panel -> Custom Launcher" or "Create Launcher". Then insert some info, and browse to select your evemon.sh file. Should be pretty straight forward. If you get a access denied message, make shure you've changed mod on the file as mentioned above.
Conclusion
Well, that's it, you're running EVEMon on Ubuntu. Hope you will be able to enjoy it without much crashing. Feel free to add to this howto.
Attachments
- evemon-r1156.mono-patch.tar.gz (14.2 KB) - added by rebeccamae 2 years ago.
