3

我希望能够在 Linux 中分发一个程序,而不用分发它的源代码。当前的解决方案是分发带有预编译二进制文件的 tar.gz。将此二进制文件放置在应用程序菜单中的最简单方法是什么?有没有一种在大多数 Linux 发行版中都很常见的方法,但 Ubuntu、Fedora 和 OpenSUSE 将是优先考虑的。

4

8 回答 8

8

您需要创建一个 .deb 和一个 .rpm。前者涵盖 Ubuntu(Debian 变体),后者涵盖 Red Hat 变体。您还可以为其他可以自己处理菜单之类的事情的用户提供独立的可执行文件。

您将不得不处理 Gnome 和 KDE 菜单管理,而且不同的发行版也会以不同的方式布置它们的菜单。还有上网本变体的问题,例如 Moblin,其上网本界面可能有自己的“添加应用程序”机制。我不知道单个 .deb 是否可以同时处理 Gnome 和 KDE 菜单系统(分别适用于 Ubuntu 和 Kubuntu),但我想有能力减少 Ubuntu 的重复工作。

于 2009-07-01T11:21:26.047 回答
4

应该已经安装了所有最近的发行版xdg-utils,它提供了脚本,例如

  • xdg-桌面图标
  • xdg-桌面菜单

这似乎是你要找的。

于 2009-07-01T11:40:22.573 回答
2

最近没有研究它……但是在我使用 Linux 的那天(实际上并不是很久以前),RPM 是分发预编译二进制文件的最简单方法(大多数发行版都有,并且仍然有,某种对 RPM 包的支持)。

这是构建 RPM 包的旧方法:

Linux 在线 - RPM 方法

于 2009-07-01T11:12:43.770 回答
2

你可以看看BitRock intaller

于 2009-07-01T11:24:31.140 回答
1

尝试Autopackage或另一个问题中发布的其他解决方案。

于 2009-07-01T11:21:32.800 回答
1

执行 tar.gz,然后授予社区重新分发修改包的权利。他们将为他们心爱的发行版制作 RPM、DEB 和任何其他软件包……这可能比您制作的更适合他们的发行版。

发行版之间确实存在太多差异,无法制作一刀切的包装,通常是微妙的包装。例如,某些发行版具有“应用程序”部分,其他“应用程序” ...这使得菜单项在某些发行版上消失了。库可以不同,默认设置可以不同,等等......

RPM 和 DEB 并不像人们认为的那样可移植。使用一个软件包,即使使用单个发行版的不同版本也可能会出现问题,没有什么比正确安装准备不足的软件包更糟糕的了。

于 2009-07-01T11:26:55.597 回答
0

JeeBee 是正确的,您希望使用 .deb 或 .rpm。

对于 Ubuntu/Debian(.deb),我要补充的是,您不会将其发送给人们,而是创建一个“存储库”并让用户将该 url 添加到他们的 /etc/apt/sources.list,然后您会很容易更新软件的方法也是如此。

这样您就可以同时解决分发和更新问题。

这是一个例子,它看起来像这样:

以及存储库的外观:

但是不要重复 Atmels 的错误,只做 i386,因为现在有很多其他常见的架构,比如 amd64。

/约翰

于 2009-07-01T11:56:12.123 回答
0

对于 RPM,IBM 的这个由三部分组成的教程是我所知道的最好的打包初学者指南:

http://www.ibm.com/developerworks/library/l-rpm1/
http://www.ibm.com/developerworks/library/l-rpm2/
http://www.ibm.com/developerworks/library/ l-rpm3.html

于 2009-08-12T22:02:03.050 回答