[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:
>>>>> Any pointers to the equivalent guides in MD would be most
>>>>> I really want to avoid asking end users to extract tarballs, drop
>>>>> down to
>>>>> Terminal and run " sudo ./configure&& make&& make install" if at
>>>> 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
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