请推荐一种在LAN环境中部署到Linux机器的方法

时间:2010-02-03 03:38:05

标签: linux oracle deployment dependencies

你以前在Linux部署方面遇到过困难吗?

我需要将应用程序部署到专用的Linux机器中,无需外部网络访问。 配置应该尽可能简单,对于不同的配置(缺少库和构建工具)是健壮的,并且最好是自动的。我需要考虑的另一个困难是我需要连接到Oracle数据库。

您认为什么是最佳部署方式?我有一些想法,但不确定哪个是最好的。

  • 我可以使用Java
    • 我需要安装JDK,这几乎解决了所有问题
    • 另一个大问题是我们目前在Java中编写的代码写得很差而且速度很慢。
    • 我不确定是否需要安装Instantclient才能连接到Linux下的Oracle
  • 我可以使用C(我有一个写得非常好的LGPL程序的源代码)
    1. 并使用dpkg进行部署
      • Linux盒子很可能是Ubuntu服务器,但我不确定安装了哪个版本
      • 我无法使用apt-get,但我可以复制我需要的所有软件包
      • 我知道我可以使用dpkg -s来检查它们是哪些软件包,但我真的不确定我是否会错过依赖项。
      • 我想我需要build-essentials和pcap等
    2. 并使用静态链接
      • 我使用./configure LDFLAGS=-static配置了它,没有任何错误,现在可以在我的计算机上运行
      • 我有chroot进入此目录并运行它没有问题,这是否意味着这没关系?
      • 我真的需要在新的Linux机箱上测试一下以确保
    3. 并使用Statifier
      • 我浏览了stackoverflow并发现了这个应用程序,还没有尝试过。
      • 似乎人们已经成功地使用了它。
    4. 创建一个构建环境并制作
      • 我不相信这会起作用
  • 使用C会留下一些问题
    • 但程序不完整,我必须处理这些数据,最好不要在C中。
    • 我必须安装很难部署的Instantclient
  • 我可以使用Perl
    • 我无法使用CPAN
    • 我已经下载了这些库,所以也许我可以将它们复制到已部署的计算机中,我不知道这是如何工作的
    • Perl很慢
    • 我必须安装Instantclient

请分享您的类似经历。

1 个答案:

答案 0 :(得分:1)

带有静态链接的C解决了许多可移植性问题,代价是更大的可执行文件。为了确保一切都真正得到静态链接而不是秘密取决于任何外部库,在可执行文件上运行ldd并确保它不会动态加载所有内容。请注意,这不是100%便携式的各种Linux机器,因为Oracle即时客户端对内核版本有一些依赖性,但它应该适用于任何合理的新内核。

编辑:如果该框具有LAN访问权限且无法访问Internet,为什么不在本地网络上运行您自己的apt存储库。您甚至可以为您的应用程序创建一个.deb并将其放在同一台服务器上,而不是只需要执行apt-get myApplication的那台机器,它也会下载您的应用程序和任何未安装的依赖项。设置一个apt镜子实际上非常简单,这将是非常光滑的。如果完全没有网络访问,你仍然可以创建一个包含所有debs的安装DVD,包括你的应用程序,并设置apt-get从那里开始。