纪勇军 發表於 2019-6-23 16:50:00

CentOS系统制作RPM包

<p>打包编译好的命令,即可直接安装使用</p>
<pre><code>#使用yum可解决依赖问题
# yum -y localinstall *.rpm   
</code></pre>
<p>一、使用fpm工具直接打包。</p>
<p>Fpm安装</p>
<p>fpm是ruby写的,系统环境需要ruby,且ruby版本大于1.8.5</p>
<pre><code># yum -y install ruby rubygems ruby-devel
</code></pre>
<p>查看当前rubygem仓库</p>
<pre><code># gem sources list
</code></pre>
<p>安装fpm,gem从rubygem仓库安装软件类似于yum安装。</p>
<pre><code>#CentOS 6 安装方式
# gem install json -v 1.8.3
# gem install fpm -v 1.3.3

#CentOS 7 安装方式
# gem install fpm
</code></pre>
<p>fpm常见参数,详情查看man帮助。</p>
<p>-s 指定源类型</p>
<p>-t 指定目标类型,就是你想要制作什么包</p>
<p>-n 指定包的名字</p>
<p>-v 指定包的版本号</p>
<p>-C 指定打包的相对路径</p>
<p>-d 指定依赖于哪些包</p>
<p>打包实例</p>
<pre><code>#把编译好的文件按绝对路径创建相应的目录,并移动到位,如htop命令的目录结构如下
./htop/
└── usr
    ├── local
    │   └── bin
    │       └── htop
    └── share
      ├── applications
      │   └── htop.desktop
      ├── man
      │   └── man1
      │       └── htop.1
      └── pixmaps
            └── htop.png
</code></pre>
<pre><code>#切换目录
# cd htop
#执行fpm打包命令
# fpm -s dir -t rpm -n htop -v 2.2.0 ./usr/
Created package {:path=&gt;"htop-2.2.0-1.x86_64.rpm"}
</code></pre>
<p>此时会在当前目录下生成rpm包</p>
<pre><code># ls
htop-2.2.0-1.x86_64.rpmusr
</code></pre>
<p>使用rpm命令在另一台服务器上安装该软件包</p>
<pre><code># rpm -vhi htop-2.2.0-1.x86_64.rpm
Preparing...                        #################################
Updating / installing...
   1:htop-2.2.0-1                     #################################
</code></pre>
<p>二、使用rpmbuild工具制作</p>
<p>安装工具</p>
<pre><code># yum install rpmdevtools
</code></pre>
<p>执行如下rpmdev-setuptree生成rpmbuild的工作目录</p>
<pre><code># rpmdev-setuptree
</code></pre>
<p>查看工作目录</p>
<pre><code># tree rpmbuild/
rpmbuild/
├── BUILD       #打包过程中的工作目录
├── RPMS      #存放生成的二进制包
├── SOURCES   #放置打包资源,包括源码打包文件和补丁文件等
├── SPECS       #放置SPEC文档
└── SRPMS       #存放生成的源码包
</code></pre>
<p>切换目录</p>
<pre><code># cd ~/rpmbuild/SPECS/
</code></pre>
<p>会自动生成模板,修改即可</p>
<pre><code># vim myrpm.spec
</code></pre>
<pre><code>Name:       nginx
Version:    1.15.2
Release:    1%{?dist}
Summary:    Asdas

License:    GPL
URL:      http://www.localhost
Source0:    http://ftp.gnu.org/gnu/hello/%{name}-%{version}.tar.gz

BuildRequires:gettext

%description
Garena self-build Nginx.

%prep
%setup -q


%build
./configure --prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--pid-path=/usr/local/nginx/run/nginx.pid \
--with-http_ssl_module \
--with-http_stub_status_module


make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}

%files
%defattr(-,root,root,-)
/usr/local


%changelog

</code></pre>
<p>执行打包命令</p>
<pre><code># rpmbuild -bb htop2.2.0.spec
</code></pre>


</div>
<div id="MySignature" role="contentinfo">
    <div>
    <p style="border: #596172 1px solid; padding: 10px 10px; font-family: 微软雅黑; font-size: 11px; text-indent: 0em;">
      <span style="margin-left: 10px; font-weight: bold;">作者:Outsrkem</span>
      <br>
      <span style="margin-left: 10px; font-weight: bold;">原文链接:https://www.cnblogs.com/outsrkem/p/11073313.html</span>
      <br>
      <span style="margin-left: 10px; font-weight: bold; color: red;">本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。</span>
    </p>
</div><br><br>
来源:https://www.cnblogs.com/outsrkem/p/11073313.html
頁: [1]
查看完整版本: CentOS系统制作RPM包