将应用程序从本地Linux机器移动到Linux服务器

问题描述:

我需要运行C++应用程序,该应用程序在我的本地开发人员Linux机器上(Ubuntu 14.04)在Linux服务器(Ubuntu 12)上的VirtualBox下构建,应用程序具有大量依赖性的问题以及我在该服务器上没有sudo,所以我不能做类似sudo apt-get install <libname-dev>的事情。将应用程序从本地Linux机器移动到Linux服务器

我使用ldd来找出服务器上缺少的库。

例如:

libopenblas.so.0 => not found 
liblapack.so.3 => not found 

比我从我的本地机器/usr/lib/复制此库到服务器应用附近,比手工创建符号链接。

要复制的文件:

liblapack.so.3.0 
libopenblas.so.0 

链接创建:

liblapack.so.3 
libopenblas.so 
  1. 是不是坏主意做这种把戏,将它总是工作?
  2. 我想知道Linux的.so命名约定,.so.3.0.so.0等等是什么意思?
+0

这些都是版本,如果你建立你的程序对X版本,并运行对版本Ÿ

+0

你的诀窍实际上是一个糟糕的主意,暗示你已经明确了两种不同的操作系统,可能有不同的库可能或可能不起作用。所以,你可能会很幸运,但不,它不一定会奏效。即使它运行,可能会有潜在的崩溃等待您执行特定的库调用。至于编号系统,我刚刚看到提及semver.org,一个权威和清晰的写作。 Docker可能是合适的。 –

在另一台Ubuntu 12上重新编译并且静态链接缺少的库。 e.g:

gcc -lsome_dynamic_lib code.c some_static_lib.a 
+0

如果我不能“sudo apt-get install”,为Server Linux获取这些静态库的正确方法是什么? – mrgloom