我有一个使用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
),它似乎安装可执行代码(甚至创建一个命令来运行程序),但忘记了关于"书"和"林间空地"目录.
我该怎么做呢?对不起,如果这是一个基本/广泛的问题.我一直在谷歌搜索,我似乎找不到任何不认为我知道包装的基本知识的东西(即使它声称它不承担这一点).
Debian软件包就像tar文件 - 它们包含文件系统的副本.创建Debian包......
将tarball安装在构建目录中.
添加带有控制文件的DEBIAN目录.我发现这篇文章很有帮助.
使用创建包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