views:

163

answers:

2

I have a hobby project that is written in C# using MonoDevelop. I've been trying for some time now to get my head around linux packaging, but I keep coming away feeling frustrated and overwhelmed.

My program consists of:

  • A library project ("Generator") that does stuff with the data created by my program.
  • An ui ("Interface") project using Gtk#. This project has two subdirectories: "glade" (xml files that gtk uses to build widgets) and "book" (data used by my program).
  • A utility project ("Utils") used by both the library and interface projects.
  • A main project ("MyProgramName") that just starts the interface.

What (I think) I want to do is really very simple (I think):

  • Compile my application
  • Copy the .exe and .dll files (to /usr/local/bin?)
  • Copy the "book" directory (to /usr/local/bin?)
  • Copy the "glade" directory (to /usr/local/bin?)

Oh, and I want to do this as a .deb package. I think if I can get the tarball working, a .deb package shouldn't be too much trouble, but that's what I want to do eventually.

I'm still not really sure how to do this. I've used MonoDevelop to create a Tarball. When I install the tarball (using ./configure, make, sudo checkinstall), it seems to install the executable code (and even create a command to run the program), but forgets about the "book" and "glade" directories.

How would I go about doing this? Sorry if this is a basic/broad question. I've been googling around about this, and I can't seem to find anything that doesn't assume I know the basics of packaging (even if it claims it doesn't assume this).

A: 

I haven't tried it yet, but this looks promising:


Edit

Reading comprehension fail; you're using MonoDevelop not Visual Studio. But maybe you can have a look how the result of this tool looks like?

dtb
Yeah I'm on MonoDevelop. Additionally, this plugin seems to be a commercial product that generates packages for SUSE. This is just a hobby project (not trying to buy expensive tools for it), and SUSE uses .rpm, not .deb. Thanks for the heads-up though.
Matthew
I'm not familiar with the Debian way of doing things, but I'd probably just put everything in /opt/myapp and put a bash script with `mono /opt/myapp/myapp.exe` in `/usr/local/bin` (or some other location in `$PATH`). Putting everything in a `bin` directory feels somewhat wrong.
dtb
Ok, but you're a step ahead of me: I don't yet know how to put anything anywhere.
Matthew
dtb
+3  A: 
Robert Wohlfarth