Installing on a new platform

From LinuxMCE
Revision as of 13:06, 15 March 2007 by Juliet (Talk | contribs)

Jump to: navigation, search
This page was written by Pluto and imported with their permission when LinuxMCE branched off in February, 2007. In general any information should apply to LinuxMCE. However, this page should be edited to reflect changes to LinuxMCE and remove old references to Pluto.
In addition to LinuxMCE's own software, it uses lots of other software, like Xine, Asterisk, MythTV, etc. Each has its own set of requirements, like Apache, PHP, MySql. In the end, there are actually hundreds of packages or software programs LinuxMCE needs to run. Because it would be too cumbersome to install all of them by hand, LinuxMCE developed a database-driven, platform-independent installation system. The database back-end tracks all of the software and what other software it needs to work. For example, the database knows that if you want to run our Bluetooth Dongle on Linux, you need Bluez, which requires x and y, which requires z, etc., and on Windows it requires other libraries.

The process is fully automated under Linux (Ubuntu), which is LinuxMCE's native environment. We will also have a fully automated version for Windows soon. If you want to add support for another platform, particularly another Linux distro, this should be a fairly easy task because 90% of the work is handled by the platform-independent back-end hosted on LinuxMCE.com. In fact, the Ubuntu-specific installation script is only about 100 lines in a bash file. If you know some scripting, it will probably be easier to write a new bash file for your distro than to install all the packages by hand.

If you want to write an installation script, an easy way to start is by checking out the source code from our svn or cvs server. http://index.php?section=document&docID=101. Look in the directory ConfirmDependencies_Script. The Ubuntu script is ConfirmDependencies_Ubuntu.sh.

Then there is the issue of the package names. Most distros use package names similar to Ubuntu, but there are not always the same. You can look at this file: http://LinuxMCE.com/download/stdpackages.txt to see all the package names in Ubuntu. It's just a tab delimited file, you can use it in a spreadsheet or editor. If you add a column next to the Debian name with the names of the corresponding packages in your distro, we'll have someone here put those names in the database. If there are more packages, or less, just make a note, and we'll adjust the master database accordingly. Once we upload it, then the installation script for your distro will be available in the New Installation Wizard.

You'll see from our ConfirmDependencies_Script that the wrapper passes in the package name, the source, the repository name, the version, etc. It also passes in the type: get from package, download as a tar, get from svn, etc. Only the 'get from package' (which is ConfirmDependencies_Ubuntu.sh) will be specific to Ubuntu. Other Linux distros should be able to use the same "get from tar", "get from svn", etc. scripts that we wrote for Debian. We provided separate scripts to download from http/ftp, etc. to make this easier. If you send us your revised package list, and a "get from package" version of your script, we will put on our site.