在服务器上部署本地编译的二进制文件
我在运行双核心AMD Opteron 64位机器的基于Xen的VPS服务器上运行Ubuntu 8.04。在服务器上部署本地编译的二进制文件
我有一些本地开发的基于C++的守护进程,我想在该机器上部署。我的本地计算机是运行在英特尔酷睿2双核笔记本电脑上的32位Ubuntu 9.04。
我可以直接在上述服务器上执行从我的机器上的源代码编译的二进制文件吗?
我是这方面的新手。如果有人能够揭示这种情况下的标准做法,那将是非常棒的。
在此先感谢
Xen是在其之上的操作系统,预计运行管理程序。它不是一个操作系统本身,按照正常的意义来说,你不能创建任何东西来运行它。当然,除非“东西”是操作系统。
编辑:由于Ubuntu运行在管理程序内部,Xen本身有点不相关。几乎任何你可以在一个普通的Ubuntu安装内做的事情,你也可以在一个Xen托管的Ubuntu内部完成。
WRT将9.04构建的代码部署到8.04系统上,它通常只会工作,尽管您可能遇到库依赖关系的问题。有一个技巧可以帮助你缓解这个问题,那就是使用debootstrap(apt-get it)。它允许您将您选择的最小Ubuntu或Debian版本部署到chroot环境中。我从来没有用过它,所以注意事项。更重量级但更干净的选项是在自己的系统上运行虚拟机(例如,Sun VirtualBox)并在其上运行8.04以进行发布构建。
最好使用与部署相同的操作系统进行开发,以最大程度地减少由于配置和库引起的差异。它可能会工作,但在未来安装更新的库时也可能会中断。我建议你使用相同的操作系统,或者直接在目标服务器上重新编译源代码。
感谢您的回答。您关于使用相同操作系统的观点很有道理。 体系结构差异呢?像服务器是AMD 64位Opteron和本地机器是Intel core2duo。 – nano 2010-05-01 14:16:18
AMD与英特尔应该无关紧要,除非您使用特定的编译器标志来优化其中一个。去32位到64位可能会工作,但它又取决于。我非常相信让开发环境尽可能接近生产 - 这通常是可能的,并且总是可以节省时间,因为我不必处理随机弹出的差异 – 2010-05-01 14:25:37
Zen或Xen? – Javier 2010-05-01 13:44:04
更正,谢谢! – nano 2010-05-01 14:00:59