[MonoDevelop] Deployment for desktop applications

Derek JW Cahusac de Caux derek at azuregulf.com
Mon Nov 1 15:26:01 EDT 2010

Hi Jo, Michael and Quandary

Once again, thanks for your various comments and pointers.
It seems like I'm on the way to "sorting" this, but still have a lot to 
learn and do still wonder if I'm going in the right direction...
I've tried to systematically document my "packaging" process so far, and 
have attached a PDF copy - any comments / corrections welcome.

ps - wasn't sure if I could add attachments to this mailing list, but 
noticed a few others had...

Quandary emailed  on 25/10/10 22:07:
>  Well, everything is relative.
> If you consider that last month I spent a week writing a windows service.
> And then another one-and-a-half week for writing a working installer 
> that sets the right folder permissions...
> Makes spending a day on a linux package a little less negative.
> The bad thing about Linux installers is really the segmentation, .deb, 
> .rpm, ports.
> Basically writing a Linux installer is much simpler and you can do it 
> much faster and it works far better than a Windows installer. However, 
> what kill's you is that you have to write an installer for every kind 
> of Linux, with specific requirements for specific versions, etc. 
> Basically, when you want to write a working installer for a mono 
> application on Linux, the problem is you need to write an installer 
> for mono & co. as well, which is what really kills your productivity.
> Am 25.10.2010 19:34, schrieb Derek JW Cahusac de Caux:
>> Thanks Michael & Quandry for your responses - I'll investigate 
>> further along the lines you've both suggested but this does raise a 
>> few questions, if not concerns...
>> Michael mentioned that 'there hasn't been a huge demand' for 
>> packaging which makes one wonder what developers are using MD for and 
>> how - is there any 'public' info on this? Are we looking at tens, 
>> hundreds, thousands of MD developers..?
>> From looking at the various 'packaging' options out there (almost all 
>> seem to be command line driven) it seems that this is huge task 
>> simply because of the open systems arena - packagers are trying to be 
>> all things for all systems...maybe MD could start by implementing 
>> packaging (compiled binaries+dependencies+files, installer, launcher 
>> and un-installer) for just one "system"...any thoughts?
>> Quandary emailed  on 25/10/10 11:23:
>>>  I still wanted to add 3 things:
>>> 1. As a commerical solution, you can use InstallAnywhere (.bin files 
>>> you see for example in Google Earth, Sybase, or Oracle Java). I'd 
>>> not do that however, as it doesn't check for dependencies.
>>> 2. The installed version of mono on all the different Linux 
>>> distributions and distribution versions is not quite the same. So if 
>>> you for example depend on mono 2.6 (as opposed to 2.4, current 
>>> Ubuntu Lucid Lynx version), you'll basically have to package mono 
>>> 2.6 as well. This happended to me because there's a bug in 2.4 
>>> concerning XML and XmlTextReader/writer encoding.
>>> 3. If you have a RPM file, you can use the Debian-Tool 'alien' to 
>>> convert it into a .deb file automagically (careful).
>>> Am 25.10.2010 00:02, schrieb Michael Hutchinson:
>>>> On Sat, Oct 23, 2010 at 10:26 AM, Derek JW Cahusac de Caux
>>>> <derek at azuregulf.com>  wrote:
>>>>> Hi - I'm new to MD and C# (thoroughly enjoying both) and am now at 
>>>>> the stage
>>>>> where I'd like to 'package and ship' simple C# desktop 
>>>>> applications to end
>>>>> users (on both Linux and Windows).
>>>>> These tutorials from Visual Studio look fairly good:
>>>>> http://msdn.microsoft.com/en-us/library/k3bb4tfd%28v=VS.100%29.aspx
>>>>> http://www.dreamincode.net/forums/topic/58021-deploying-a-c%23-application-visual-studio-setup-project/ 
>>>>> Any pointers to the equivalent guides in MD would be most 
>>>>> appreciated.
>>>>> I really want to avoid asking end users to extract tarballs, drop 
>>>>> down to
>>>>> Terminal and run " sudo ./configure&&  make&&  make install" if at 
>>>>> all
>>>>> possible....
>>>> Unfortunately MonoDevelop doesn't have any built-in support for
>>>> packaging. The best it can do is create a zip of binaries, or a
>>>> tarball with build/install scripts. I know, we've wanted packaging
>>>> support for a while
>>>> (http://monodevelop.com/Developers/Tasks/Packaging) but it's difficult
>>>> to implement fully and there hasn't been huge demand.
>>>> Linux packaging depends on the distro, unfortunately - the major
>>>> package formats are rpm (openSUSE, SLE*, Redhat, Centos, Fedora, etc)
>>>> and deb (Debian, Ubuntu, etc.), though a few distros use other systems
>>>> (Gentoo etc).
>>>> I've only used RPM myself. The way it works is that you write a
>>>> specfile: a description, a list of dependencies, the commands to build
>>>> and install (or simply unzip and cp) the app, and a list of files to
>>>> package up. You then feed it to a tool that builds and installs the
>>>> package into a fake root and collects the installed files and packages
>>>> them up. I think deb is fairly similar. If you're lucky, you might be
>>>> able to make packages that are usable on several distros or versions,
>>>> depending how similar they are.
>>>> If your app is open-source, I suggest you investigate the openSUSE
>>>> Build Service which, given source and spec files, can build packages
>>>> for multiple distros automatically. The packages already there will
>>>> provide good examples to base yours on.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Deploying your C# application from Monodevelop.pdf
Type: application/pdf
Size: 196288 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/monodevelop-list/attachments/20101101/d17b6b30/attachment-0001.pdf 

More information about the Monodevelop-list mailing list