![如何将已安装的应用程序复制到另一台缺少构建工具的计算机?](https://linux22.com/image/22683/%E5%A6%82%E4%BD%95%E5%B0%86%E5%B7%B2%E5%AE%89%E8%A3%85%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%A4%8D%E5%88%B6%E5%88%B0%E5%8F%A6%E4%B8%80%E5%8F%B0%E7%BC%BA%E5%B0%91%E6%9E%84%E5%BB%BA%E5%B7%A5%E5%85%B7%E7%9A%84%E8%AE%A1%E7%AE%97%E6%9C%BA%EF%BC%9F.png)
在一台计算机上,我使用configure
make
和从源安装了一个应用程序make install
。现在我想在另一台缺少 gcc、make 和所有其他构建工具的计算机上安装相同的应用程序。两台计算机都运行 Kubuntu 12.04。如何找到要复制到第二台计算机的所有文件?还需要什么其他安装步骤?这是一个命令行应用程序。
我不想在第二台计算机上安装构建必需品。 (这是一台小型笔记本电脑。)
答案1
如果你的源代码已经有 debian 配置文件,你只需要运行(在源目录中):
dpkg-buildpackage
否则你可以创建一个 deb 包checkinstall
首先启动配置脚本,例如./configure --prefix=/usr
,然后执行
checkinstall --install=no
它会问几个问题,只需填写字段,以便您稍后识别。
如果成功,您将在源目录中看到一个 *.deb 包。
复制并安装到另一台计算机上。
答案2
一种选择是制作一个 deb 包。
另一种选择是将应用程序编译到其自己的目录中。每当您在不使用包管理器的情况下编译某些内容时,这都是一个好主意。大多数开源应用程序使用汽车制造商和自动配置使用典型配置并默认安装在/usr/local
.您通常可以通过传递--prefix=…
给脚本来将应用程序配置为安装到不同的目录configure
。
./configure --prefix=/usr/local/stow/myapp-4.2
make
make install
斯托是一个管理安装在其自己目录中的包的符号链接的程序,因此如果 myapp 有一个安装为 的二进制文件/usr/local/stow/myapp-4.2/bin/myapp
,则stow myapp-4.2
在该/usr/local/stow
目录中运行将在/usr/local/bin
.看跟踪程序有关存储的更多信息。
将程序安装到其自己的目录中后,您可以轻松地构建它的 zip 或 tar 存档并将其解压到另一台计算机上。在另一台机器上也运行 stow。
请注意,在一个系统上编译程序可能会生成无法在其他系统上运行的可执行文件。在同一发行版的同一版本的两次安装之间,不会有任何问题。但如果系统有不同版本共享库,由于缺少所需的库,二进制文件有时无法在另一台计算机上运行。您可以通过静态链接一些库或在构建机器上安装正确的开发包来解决这个问题。