如何使用MonoDevelop打包我的linux应用程序?

Mat*_*hew 6 c# linux packaging monodevelop

我有一个使用MonoDevelop用C#编写的业余爱好项目.我已经尝试了一段时间来了解Linux包装,但我总是感到沮丧和不知所措.

我的计划包括:

  • 一个库项目("Generator"),用我的程序创建的数据.
  • 使用Gtk#的ui("接口")项目.这个项目有两个子目录:"glade"(gtk用于构建小部件的xml文件)和"book"(我的程序使用的数据).
  • 库和接口项目使用的实用程序项目("Utils").
  • 一个刚刚启动界面的主项目("MyProgramName").

(我想)我想做的事情非常简单(我认为):

  • 编译我的应用程序
  • 复制.exe和.dll文件(到/ usr/local/bin?)
  • 复制"book"目录(到/ usr/local/bin?)
  • 复制"glade"目录(到/ usr/local/bin?)

哦,我想这样做.deb包.我想如果我能让tarball工作,那么.deb包应该不会太麻烦,但这就是我最终要做的事情.

我仍然不确定如何做到这一点.我用MonoDevelop创建了一个Tarball.当我安装压缩包(用./configure,make,sudo checkinstall),它似乎安装可执行代码(甚至创建一个命令来运行程序),但忘记了关于"书"和"林间空地"目录.

我该怎么做呢?对不起,如果这是一个基本/广泛的问题.我一直在谷歌搜索,我似乎找不到任何不认为我知道包装的基本知识的东西(即使它声称它不承担这一点).

小智 5

Debian软件包就像tar文件 - 它们包含文件系统的副本.创建Debian包......

  1. 将tarball安装在构建目录中.
  2. 添加带有控制文件的DEBIAN目录.我发现这篇文章很有帮助.
  3. 使用创建包dpkg --build.

我将从学习GNU的autotools开始:autoconf和automake.它们使得在构建目录中安装程序变得非常容易.你提到过./configure.所以我假设这个项目已经有了一些结构.从描述中,听起来像项目可能需要......

  • configure.in中的条目用于"book"和"glade"中的文件.
  • "book"和"glade"中的Makefile.am文件.

将所有内容放在一起,以下命令将生成名为project.deb的包文件.

# ./configure --prefix build/usr
# make && make install
# dpkg --build build project.deb