我们在为Ubuntu / Debian部署应用程序时面临两个挑战:
1。离线安装
我们的许多用户(比如说有50%)需要离线安装。他们将没有互联网连接。因此,我们需要在安装CD / DVD上包含所有可能的依赖项(运行时/第三方库等)。看起来APT-on-CD可能是一个解决方案,但我读到的文档并不完全清楚。
2。尚未支持的软件包版本
“官方”Ubuntu存储库尚不支持某些依赖项。例如,软件中心提供了特定库的4.2版本,但我的应用程序需要4.4版本 - 这是一个稳定版本,而不是在官方存储库软件包中。 (Debian的稳定分布甚至落后于版本3。)
/usr/lib/myapp
之类的地方安装库?处理这些安装挑战的最佳做法是什么?
答案 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这样的典型专有软件中完成的,尽管后者同时具有动态和静态构建。