C++ linux在部署环境中安装可执行文件
Posted
技术标签:
【中文标题】C++ linux在部署环境中安装可执行文件【英文标题】:C++ linux install executable file on deploy environment 【发布时间】:2016-05-24 10:29:45 【问题描述】:大家好,我需要使用 make 文件或脚本部署 linux(centos) c++ 项目。通过一个 makefile 或脚本安装依赖项和项目可执行二进制文件。 我的依赖应用程序 libboost-devel、gcc-g++ 和 pcre。我的可执行二进制文件是 run_excute
【问题讨论】:
那么,你的问题是什么? @Karsten Koop 示例或要在我的项目的 linux 机器上部署的 makefile 或脚本示例。 @Karsten Koop 只需使用 make 文件或脚本安装我的项目二进制文件 run_excute。我可以这样做吗? 【参考方案1】:当然 - 将以下命令放入文件中。在文件顶部添加:
#!/bin/bash
保存文件——假设你称之为安装;在命令行类型:
chmod +x ./install
然后构建和安装你的程序类型:
sudo ./install
或者,如果您手头有一些时间: http://www.rpm.org/max-rpm/ch-rpm-build.html
例如,fedora 的基本 rpm 构建过程是:
第 1 步:设置您的机器进行包装:
dnf install @development-tools fedora-packager rpmdevtools
rpmdev-setuptree
第 2 步:源代码和 Makefile 将这些放在 ~/rpmbuild/SOURCES
第 3 步:创建规范文件 在 ~/rpmbuild/SPECS 创建名为 myname.spec 的文件。它应该包含以下内容:
Summary: My program description
Name: myname
Version: 0.0.0
Release: 0
License: GPLv2
Group: Applications/Databases
Source: https://xyz.tar.gz
URL: http://myurl
BuildRequires: libicu-devel
BuildRequires: pcre-devel
%description
A couple of lines describing the package
%prep
%setup -q
%build
cd %myname/source
make %?_smp_mflags
%install
%make_install
%files
%_bindir/*
%changelog
* Tue Nov 10 2015 Yours Truly <me@somewhere.com> - 0.0.0-0
- Some change comments
第 4 步:创建源和二进制 rpm
cd ~/rpmbuild/SPECS
rpmbuild -ba myname.spec
第 5 步:使用 rpm
cd ~/rpmbuild/RPMS/x86_64
rpm -Uvh ./myprogram-version-release.a.whole.lot.of.stuff.rpm
【讨论】:
@myk 谢谢你的回复 构建 rpm 是个好点,你能告诉我一个简单的例子来构建 rpm 到我的 c++ 项目。请用简单的例子告诉我 @myk 如果我按照此步骤操作,它会为我的 c++ 项目创建安装吗? 是的:这些步骤将允许您创建一个文件名末尾带有 .rpm 的文件,这有点像 windows install.exe 文件,但 .rpm 文件适用于 RHEL 和Fedora Linux 发行版。所以你可以只分发 .rpm 文件。要解压(安装)您的程序,您可以使用 rpm -Uvh 命令。安装时无需编译程序,因为 .rpm 文件包含已编译的程序。【参考方案2】:使用yum安装依赖,所以:
sudo yum install libboost-devel
sudo yum group install "Development Tools"
sudo yum install pcre-devel
要构建应用程序,请移至包含 makefile 的目录并执行以下操作:
make
sudo make install
终于运行应用了
./run_excute
如果你幸运的话
run_excute
会起作用的。
【讨论】:
感谢您的回复,这不是我的问题,我可以使用二进制文件 run_excute 为我的 c++ 项目制作安装程序以上是关于C++ linux在部署环境中安装可执行文件的主要内容,如果未能解决你的问题,请参考以下文章