我有一个爱好项目,它是使用 MonoDevelop 用 C# 编写的。一段时间以来,我一直在尝试了解 linux 打包,但我总是感到沮丧和不知所措。
我的程序包括:
- 一个库项目(“Generator”),它使用我的程序创建的数据。
- 一个使用 Gtk# 的 ui(“界面”)项目。该项目有两个子目录:“glade”(gtk 用于构建小部件的 xml 文件)和“book”(我的程序使用的数据)。
- 库和接口(interface)项目都使用的实用程序项目(“Utils”)。
- 刚刚启动界面的主项目(“MyProgramName”)。
(我认为)我想做的事情真的很简单(我认为):
- 编译我的应用程序
- 复制 .exe 和 .dll 文件(到/usr/local/bin?)
- 复制“book”目录(到/usr/local/bin?)
- 复制“林间空地”目录(到/usr/local/bin?)
哦,我想把它作为一个 .deb 包来做。我想如果我能让 tarball 工作,一个 .deb 包应该不会太麻烦,但这就是我最终想要做的。
我仍然不确定该怎么做。我使用 MonoDevelop 创建了一个 Tarball。当我安装 tarball(使用 ./configure
、make
、sudo checkinstall
)时,它似乎安装了可执行代码(甚至创建了一个命令运行程序),但忘记了“book”和“glade”目录。
我该怎么做呢?对不起,如果这是一个基本/广泛的问题。我一直在谷歌搜索这个问题,但我似乎找不到任何不假设我知道包装基础知识的东西(即使它声称它不假设这一点)。
最佳答案
Debian 软件包就像 tar 文件 - 它们包含文件系统的副本。要创建 Debian 软件包...
- 将压缩包安装到构建目录中。
- 添加一个包含控制文件的 DEBIAN 目录。我找到了 this article有帮助。
- 使用
dpkg --build
创建包。
我将从学习 GNU 的自动工具开始: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
关于c# - 如何使用 MonoDevelop 打包我的 linux 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1738957/