使用尚未支持的软件包为Ubuntu / Debian分发应用程序以进行脱机安装

时间:2010-06-25 13:38:16

标签: ubuntu installer debian packages

我们在为Ubuntu / Debian部署应用程序时面临两个挑战:

1。离线安装

我们的许多用户(比如说有50%)需要离线安装。他们将没有互联网连接。因此,我们需要在安装CD / DVD上包含所有可能的依赖项(运行时/第三方库等)。看起来APT-on-CD可能是一个解决方案,但我读到的文档并不完全清楚。

2。尚未支持的软件包版本

“官方”Ubuntu存储库尚不支持某些依赖项。例如,软件中心提供了特定库的4.2版本,但我的应用程序需要4.4版本 - 这是一个稳定版本,而不是在官方存储库软件包中。 (Debian的稳定分布甚至落后于版本3。)

  • 我应该最初为这些创建自己的.deb包,还是只在/usr/lib/myapp之类的地方安装库?
  • 如果我创建自己的.deb,我应该给它与官方包相同(可能)的名称吗?也就是说,我预计将来会有一些(如果不是全部)这些包正式提供。因此,理想情况下,安装过程(在线情况下)首先首先到库的官方存储库,但如果需要,可以回退到CD / DVD。这是可能的吗,还是我只是通过一些完全不同的包装命名并让它永久地并存?

处理这些安装挑战的最佳做法是什么?

4 个答案:

答案 0 :(得分:1)

离线安装:您是否尝试过apt-offine

Debian测试和不稳定是某个软件包的新版本的重要来源。 Debian stable没有得到很多更新 - 软件包要么打补丁。只有在上游发布bug修复版本的情况下,才能使stable获得新的更改。

如果您想为某个应用程序获取更新的软件包,理想情况下,您应该下载源代码包并自行构建(这不需要您进行任何打包)。

dget http://something.debian.org/path/to/source-pkg.dsc

你可以使用debuild或pbuilder(pbuilder更好,因为它本身下载构建依赖项并使用一个干净的房间环境来构建)。

最后,在不稳定(sid)或测试(目前也称为挤压)中获取debian软件包的源包的好地方,包跟踪系统将是一个找到它们的好地方(看左侧边栏,你会在unstable和testing中找到指向该软件包版本的链接。这会链接到.dsc文件。使用dget包中提供的devscripts下载整个软件包。

http://packages.qa.debian.org/name-of-source-package

答案 1 :(得分:1)

使用自建的新版本覆盖库是不明智的,因为这可能会破坏系统上的其他应用程序。较新的版本可能包含回归或可能是二进制不兼容的。如果可能,请考虑花费额外的精力使其与分发随附的版本一起使用。否则,请使用其他应用程序不会使用的私有版本。小心可能存在安全漏洞的库 - 您还需要升级私有版本。

答案 2 :(得分:1)

1)如果你在某种媒体上有软件包,就不需要使用apt,只需要简单的dpkg -i /where/your/media/is/mounted/*.deb应该足以安装东西?

2)您的发行版尚未支持的运输包的替代方案,但保持客户端发行版与他们拥有的软件兼容,就是重新打包这些依赖项。通过向其添加前缀来更改包的名称,并将安装目录更改为/ opt / prefix /而不是/ usr

使用-rpath标志编译应用程序,指向提供所需库的位置(afaik debian规则禁止使用rpath)或使应用程序仅从设置正确LD_LIBRARY_PATH的shellscript启动,然后再启动实际应用程序

答案 3 :(得分:0)

进行应用程序的静态构建,然后就完成了。

这通常是在Skype这样的典型专有软件中完成的,尽管后者同时具有动态和静态构建。