Installing 3rd party addins

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
Line 68: Line 68:
 
For example:
 
For example:
 
   $ mautil.exe -p . -reg C:/addins-registry uninstall Diva.MISearchModules
 
   $ mautil.exe -p . -reg C:/addins-registry uninstall Diva.MISearchModules
 +
 +
== Versioning ==
 +
 +
One important aspect of installing and managing 3rd-party binary components is the issue of versioning. .NET, in particular, is quite strict about interface compatibility between libraries, and it will complain (by raising exceptions or by crashing) if an executable tries to link an incompatible library. In the case of 3rd-party addins, incompatibilities may happen when those addins have been compiled against a version of OpenSim that is different from the one you have. Some of those incompatibilities will be caught at the time of addin installation, but some will not -- these latter ones will only show up when you run OpenSim.
 +
 +
For example, suppose that the latest MISearchModules addin was compiled against OpenSim 0.8.1.0 and you have OpenSim 0.7.6.2. When you try to install that addin, the addin installation will fail, because MISearchModules,0.8.1.0.1 has an explicit dependency on OpenSim 0.8.1.0. Since your OpenSim version is older than the addin, the incompatibility will be detected, and the installation will fail. In this case, you would need to find MISearchModules for OpenSim 0.7.6.2.
 +
 +
The most problematic situation is the one in the reverse. Suppose that you have installed MISearchModules,0.7.6.2.1 (which had been compiled against OpenSim 0.7.6.2), and that you update your OpenSim installation to OpenSim 0.8.1.0. The mono addins framework will deem this addin compatible with the new version of OpenSim (because the new OpenSim version is higher than the addin's). But in reality, the new OpenSim dlls may have different .NET interfaces than those against which the MISearchModules addin was compiled. If that is the case, a failure may happen when you run OpenSim -- it may be just an exception in the log or a complete crash of the simulator. In this case, you would need to find the newer version of the MISearchModules addin for 0.8.1.0 (see check for updates above). If it doesn't exist yet, you need to unistall the MISearchModules addin until the newer version becomes available by the provider of that addin.

Revision as of 09:54, 31 December 2014

This page explains how to install, update and uninstall 3rd-party addins for the simulator server in a systematic way. 3rd-party addins are packages created around region modules, possibly with additional external libraries and resources, that extend the simulator with additional functionality.

Contents

Registry Location

Before you start using managed addins, it is important that you think carefully about where you want to keep these addins. Internally, OpenSim uses its own addins, and it installs the addin database under its bin folder. If you don't change anything, 3rd-party addins will be placed there too. Depending on what process you have in place for updating OpenSim, this may cause you trouble: if your process includes deleting the entire bin folder and replacing with a new one, that process will also delete your 3rd-party addins, and you will have to reinstall them again every time you update OpenSim core.

The location of the addin registry is given by a configuration variable in OpenSim.ini:

 [Startup]
     ...
     ;RegistryLocation = "."
     RegistryLocation = "/path/to/my/registry"

You can change it to point to another path in your file system. This location will be important for addin installation.

From here on, all the steps described next use the Mono Addins command line tool mautil. mautil allows us to package, distribute, install and uninstall mono addins for .NET applications in general.

Initial Registry Update

Also before installing any 3rd party addins, you need to populate the registry with OpenSim's own addins, which are required for the installation of 3rd-party's. Do that by running this command in OpenSim's bin folder: (note: if you are in Linux, precede the command with mono)

 $ mautil.exe -p . -reg /path/to/my/registry reg-update

For example:

 $ mautil.exe -p . -reg C:/addins-registry reg-update

The argument to the -p parameter, in this case '.', needs to be the directory where OpenSim.exe resides. So if you run mautil.exe from somewhere else, make sure to adjust that argument's value. For example, if you run it from the OpenSim root folder, the command above should be:

 $ bin/mautil.exe -p bin -reg C:/addins-registry reg-update

You can also use absolute paths, if that makes it easier.

3rd Party Repositories

The next step is to add remote repositories of addins to your OpenSim installation. There is no central repository of addins for OpenSim. Remote repositories are provided and maintained by 3rd parties, and you will have to find out about them by some means. You can add as many repositories as needed. To add a repository, run these commands in OpenSim's bin folder: (note: if you are in Linux, precede the command with mono)

 $ mautil.exe -p . -reg /path/to/my/registry rep-add repo_url
 $ mautil.exe -p . -reg /path/to/my/registry rep-update

For example:

 $ mautil.exe -p . -reg C:/addins-registry rep-add http://metaverseink.com/repo
 $ mautil.exe -p . -reg C:/addins-registry rep-update

Or if you decided to use the default OpenSim's bin folder as the registry location:

 $ mautil.exe -p . -reg . rep-add http://metaverseink.com/repo
 $ mautil.exe -p . -reg . rep-update

Again, the argument to the -p parameter, in this case '.', needs to be the directory where OpenSim.exe resides. So if you run mautil.exe from somewhere else, make sure to adjust that argument's value.

From here on you can check what addins are available by typing

 $ mautil.exe -p . -reg /path/to/my/registry list-av

Installing Addins

Finally, you can install an available addin with the following command:

 $ mautil.exe -p . -reg /path/to/my/registry install addin

For example, to install the most recent version of Diva.MISearchModules:

 $ mautil.exe -p . -reg C:/addins-registry install Diva.MISearchModules

To install a specific version:

 $ mautil.exe -p . -reg C:/addins-registry install Diva.MISearchModules,0.8.1.0.1

The installed addins are placed under /path/to/my/registry/addins/addin. Often, these addins will bring a configuration (.ini) file that you may need to edit. If that's the case, find that file, and edit it there in /path/to/my/registry/addins/addin; do not copy or move these configuration files anywhere. They will be read from their locations.

Checking for, and Installing, Updates

To check:

 $ mautil.exe -p . -reg /path/to/my/registry list-update

To update:

 $ mautil.exe -p . -reg /path/to/my/registry update addin

Uninstalling Addins

 $ mautil.exe -p . -reg /path/to/my/registry uninstall addin

For example:

 $ mautil.exe -p . -reg C:/addins-registry uninstall Diva.MISearchModules

Versioning

One important aspect of installing and managing 3rd-party binary components is the issue of versioning. .NET, in particular, is quite strict about interface compatibility between libraries, and it will complain (by raising exceptions or by crashing) if an executable tries to link an incompatible library. In the case of 3rd-party addins, incompatibilities may happen when those addins have been compiled against a version of OpenSim that is different from the one you have. Some of those incompatibilities will be caught at the time of addin installation, but some will not -- these latter ones will only show up when you run OpenSim.

For example, suppose that the latest MISearchModules addin was compiled against OpenSim 0.8.1.0 and you have OpenSim 0.7.6.2. When you try to install that addin, the addin installation will fail, because MISearchModules,0.8.1.0.1 has an explicit dependency on OpenSim 0.8.1.0. Since your OpenSim version is older than the addin, the incompatibility will be detected, and the installation will fail. In this case, you would need to find MISearchModules for OpenSim 0.7.6.2.

The most problematic situation is the one in the reverse. Suppose that you have installed MISearchModules,0.7.6.2.1 (which had been compiled against OpenSim 0.7.6.2), and that you update your OpenSim installation to OpenSim 0.8.1.0. The mono addins framework will deem this addin compatible with the new version of OpenSim (because the new OpenSim version is higher than the addin's). But in reality, the new OpenSim dlls may have different .NET interfaces than those against which the MISearchModules addin was compiled. If that is the case, a failure may happen when you run OpenSim -- it may be just an exception in the log or a complete crash of the simulator. In this case, you would need to find the newer version of the MISearchModules addin for 0.8.1.0 (see check for updates above). If it doesn't exist yet, you need to unistall the MISearchModules addin until the newer version becomes available by the provider of that addin.

Personal tools
General
About This Wiki