使用 netbeans 6.91 构建 Debian 二进制包
我正在使用 netbeans 在 Ubuntu 10.0.4 上构建一组 Debian 二进制包
我使用的是 64 位操作系统,但默认架构是“x386”,当我尝试在另一个 64 位上安装该包时,会导致以下错误machine:
Error: Wrong Architecture 'i386'
我的第一个问题是:
问题 1.
我应该使用什么字符串来指示所需的架构适用于 64 位 Intel 机器?
我的第二个问题与包之间的依赖关系有关:
我有三个(C/C++)项目:
- foo
- foobar
- foofoobar
foobar 依赖于 foo (一个共享库),同样 foofoobar (一个应用程序)依赖于 foobar(另一个共享库) 。
问题 2
我在部署方面的问题是:
我是否为 foofoobar 创建一个 Debian 软件包,并将在 foo 和 foobar 中创建的共享库添加到 foofoobar 的 Debian 软件包中?
问题3
最后但并非最不重要的一点是,foo 和 foobar 都有第三方依赖项(例如 BOOST 共享库)。常识告诉我,我需要将 foo、foobar 和 foobar 所需的所有共享库文件添加到 foofoobar Debian 软件包中 - 以便创建一个独立的软件包,可以成功部署到另一台没有所需库的机器上。
我对外部库依赖项的理解是否正确?
I am using netbeans to build a set of Debian binary packages on Ubuntu 10.0.4
I am on a 64bit OS, yet the default architecture is 'x386' which results in the following error, when I try to install the package on another 64 bit machine:
Error: Wrong architecture 'i386'
My first question is:
Question 1.
What string should I use to indicate that the required architecture is for a 64bit Intel machine?
My second question relates to the dependency between the packages:
I have three (C/C++) projects:
- foo
- foobar
- foofoobar
foobar depends on foo (a shared library), and likewise foofoobar (an application), depends on foobar(another shared library).
Question 2
My question in terms of deployment is that:
Do I create a SINGLE Debian package for foofoobar and simply add the shared libraries created in foo and foobar to the Debian package for foofoobar?
Question 3
last but not the least, both foo and foobar have third party dependencies (e.g. BOOST shared libraries). Common sense tells me that I need to add ALL the shared libraries files required by foo, foobar and foobar into the foofoobar Debian package - in order to create a stand alone package that can be successfully deployed to another machine that does not have the required libraries.
Is my understanding regarding the external library dependencies correct?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
1.) 表示基于 64 位 X86 的架构的字符串是:amd64
2.) 取决于您的项目结构。您可以根据需要添加多个文件。但将不同的程序保存在不同的包中通常是有意义的。
3.) 是的,如果您想立即部署程序,则必须直接包含所有依赖项。确保不要在某些计算机上可能已经填充了要添加的文件的目录中进行规划,否则,如果没有 --force 则无法安装该软件包。更常见的是:定义一些包,您的程序需要作为包的依赖项,包管理器将一劳永逸地解决这个问题。
1.) The string that indicates a 64bit X86 based architecture is: amd64
2.) Depends on your project structure. You can add s much files as you want. But it normally makes sense, to keep different programs in different packages.
3.) Yes, you have to include all dependencies directly, if you want to deploy your program at once. Make sure to not plan in directories that may already populated with the files you want to dd on some machines, because otherwise, you cannot install the package without --force. More usual: define some packages, your program requires as dependencies of your package(s) and the package manager will take care of this problem once and for all.