源码包制作rpm包

rpmbuild命令作用

rpmbuild 用于创建软件的二进制包和源代码包。一个"包"包括文件的归档以及用来安装和卸载归档中文件的元数据。元数据包括辅助脚本、文件属性、以及相关的描述性信息。
软件包有两种:
       二进制包,用来封装已经编译好的二进制文件;
       源代码包,用来封装源代码和要构建二进制包需要的信息。

rpmbuild命令使用

-ba    既生成src.rpm又生成二进制rpm 

-bs    只生成src的rpm 

-bb    只生成二进制的rpm 

-bp    执行到pre,只作准备(解压与打补丁)

-bc    执行到build段 

-bi     执行到install段 

-bl     检测有文件没包含 

rpmbuild工作目录

~/rpmbuild

~/rpmbuild/SOURCES           #放置打包资源,包括源码打包文件和补丁文件等

~/rpmbuild/SPECS                #放置SPEC文档,核心

~/rpmbuild/BUILD                #打包过程中的工作目录

~/rpmbuild/RPMS                 #存放生成的二进制包

~/rpmbuild/RPMS/i386            #存放生成的i386结构包

~/rpmbuild/SRPMS                #存放生成的源码包

 

编写.spec文件(重点)

有个rpmdev-newspec工具可以自动生成一个.spec 模板,然后我们再根据规则对模板进行简单修改即可。

Name:           
Version:        
Release:        1%{?dist}
Summary:        

License:        
URL:            
Source0:        

BuildRequires:  
Requires:       

%description


%prep
%setup -q


%build
%configure
make %{?_smp_mflags}


%install
rm -rf $RPM_BUILD_ROOT
%make_install


%files
%doc



%changelog

简单的实验

直接下载x710网卡驱动的源码包,解压后获取.spec文件,直接进行rpm包的制作

1、准备工作

yum install rpm-build

yum install rpmdevtools

2、制作rpm包

[root@10-2-67-190 ~]# tar zxf i40e-2.7.11.tar.gz 
[root@10-2-67-190 ~]# cd i40e-2.7.11
[root@10-2-67-190 i40e-2.7.11]# ls
COPYING  i40e.7  i40e.spec  pci.updates  README  scripts  src  SUMS
[root@10-2-67-190 i40e-2.7.11]# cd ..
[root@10-2-67-190 ~]# rpmbuild  i40e.spec
error: failed to stat /root/i40e.spec: No such file or directory

[root@10-2-67-190 ~]# ls
byte-unixbench                  i40e-2.7.11.tar.gz                      netperf-2.7.0-1.el7.lux.x86_64.rpm  tarball.tgz-hp
CentOS-6.9-x86_64-bin-DVD1.iso  kernel-devel-3.10.0-514.el7.x86_64.rpm  rpmbuild
i40e-2.7.11                     MegaSAS.log                             storcli-1.16.06-1.noarch.rpm
[root@10-2-67-190 ~]# cp  i40e-2.7.11.tar.gz  rpmbuild/SOURCES/
[root@10-2-67-190 ~]# cp i40e-2.7.11/i40e.spec rpmbuild/SPECS/
[root@10-2-67-190 ~]# cd rpmbuild/SOURCES/
[root@10-2-67-190 SOURCES]# ls
i40e-2.7.11.tar.gz
[root@10-2-67-190 SOURCES]# cd ..
[root@10-2-67-190 rpmbuild]# cd SPECS
[root@10-2-67-190 SPECS]# ls
i40e.spec
[root@10-2-67-190 SPECS]# rpmbuild i40e.spec 
Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/i40e-2.7.11-1.x86_64
Wrote: /root/rpmbuild/SRPMS/i40e-2.7.11-1.src.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/i40e-2.7.11-1.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.fIjClK
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd i40e-2.7.11
+ rm -rf /root/rpmbuild/BUILDROOT/i40e-2.7.11-1.x86_64
+ exit 0   #表示成功

3、查看最终结果:

tree rpmbuild

rpmbuild/
├── BUILD
│   └── i40e-2.7.11
│       ├── COPYING
│       ├── file.list├── BUILDROOT
├── RPMS
│   └── x86_64
│       └── i40e-2.7.11-1.x86_64.rpm
├── SOURCES
│   └── i40e-2.7.11.tar.gz
├── SPECS
│   └── i40e.spec
└── SRPMS
    └── i40e-2.7.11-1.src.rpm

验证测试

1、配置yum源

2、mkdir /data/Test

cd /data/Test

 cp /root/rpmbuild/RPMS/x86_64/i40e-2.7.11-1.x86_64.rpm .

createrepo ./

[root@10-2-67-190 Test]# ls
i40e-2.7.11-1.x86_64.rpm  repodata
[root@10-2-67-190 Test]# cd repodata/
[root@10-2-67-190 repodata]# 
[root@10-2-67-190 repodata]# ls
253b3edd8daa293da0429512d35bf48ecf957b1ed92398c88eef482e70aebd8d-other.sqlite.bz2
3e72c7de3d586a48cdeeec6750d0d48091dd0a44bbff2324dc180a1c8d3f51b6-filelists.xml.gz
65a72c9e44bda1583565f25e2df8735bea890a5a6a910bed3daf08d162275499-primary.sqlite.bz2
b79e2a7de96204e63e9f671a5ea7b35da3fef9de1164b3aa714289e1401d709c-primary.xml.gz
d5d42c045e940b1344828913f20bcc54932665419dfc9613687b40495421416d-filelists.sqlite.bz2
dc4ba442890d6997100cde3a896e44a94f032909b4bfc48879d707428e059ba5-other.xml.gz
repomd.xml
[root@10-2-67-190 repodata]# cd ..
[root@10-2-67-190 Test]# ls
i40e-2.7.11-1.x86_64.rpm  repodata
[root@10-2-67-190 Test]# 
[root@10-2-67-190 Test]# 
[root@10-2-67-190 Test]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: c7-Test c7-media
Cleaning up everything
Cleaning up list of fastest mirrors
[root@10-2-67-190 Test]# 
[root@10-2-67-190 Test]# 
[root@10-2-67-190 Test]# 
[root@10-2-67-190 Test]# yum repolist
Loaded plugins: fastestmirror
c7-Test                                                                                                   | 2.9 kB  00:00:00     
c7-media                                                                                                  | 3.6 kB  00:00:00     
(1/3): c7-Test/primary_db                                                                                 | 1.8 kB  00:00:00     
(2/3): c7-media/group_gz                                                                                  | 155 kB  00:00:00     
(3/3): c7-media/primary_db                                                                                | 5.6 MB  00:00:00     
Determining fastest mirrors
repo id                                                  repo name                                                         status
c7-Test                                                  CentOS-7 - Test                                                       1
c7-media                                                 CentOS-7 - Media                                                  9,363
repolist: 9,364

[root@10-2-67-190 yum.repos.d]# yum install i40e
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package i40e.x86_64 0:2.7.11-1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================================================================
 Package                     Arch                          Version                          Repository                      Size
=================================================================================================================================
Installing:
 i40e                        x86_64                        2.7.11-1                         c7-Test                        1.7 M

Transaction Summary
=================================================================================================================================
Install  1 Package

Total download size: 1.7 M
Installed size: 9.8 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : i40e-2.7.11-1.x86_64                                                                                          1/1 

original pci.ids saved in /usr/local/share/i40e
Updating initramfs with dracut...
Successfully updated initramfs.
  Verifying  : i40e-2.7.11-1.x86_64                                                                                          1/1 

Installed:
  i40e.x86_64 0:2.7.11-1                                                                                                         

Complete!

3、查看原来的驱动版本为2.4.10

4、重新加载驱动

modprobe i40e 

5、查看目前的驱动版本为2.7.11,rpm包制作成功

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PHP 7.3的源码是以rpm格式进行发布的。rpm是一种软件管理系统,用于在基于Red Hat的Linux系统上安装、更新和卸载软件。PHP官方提供了针对CentOS和Red Hat Enterprise Linux (RHEL)的rpm源码,以方便用户在这些操作系统上安装和管理PHP 7.3。 使用rpm源码安装PHP 7.3时,首先需要下载源码文件。然后,可以使用rpm命令对源码进行安装。安装过程将会解压源码并将其编译成可执行的PHP二进制文件,同时也会生成相关的配置文件和模块。 安装完成后,可以通过启动PHP-FPM进程池或Web服务器来使用PHP 7.3。PHP-FPM是PHP FastCGI进程管理器,负责处理PHP的请求。Web服务器(如Apache或Nginx)与PHP-FPM通信,将PHP相关的请求转发给PHP-FPM进行处理,然后返回响应给客户端。 对于开发人员来说,PHP 7.3的源码也提供了开发所需的一些工具和示例代码。可以使用源码中的PHP二进制文件来运行PHP脚本,还可以在源码的“ext”目录下找到已编译的PHP扩展模块。 总之,PHP 7.3的源码rpm是一种便于在基于Red Hat的Linux系统上安装和管理PHP的方式。它提供了PHP二进制文件、配置文件、模块和示例代码,以及安装、更新和卸载PHP的便捷工具。 ### 回答2: PHP 7.3的源码rpm是指适用于CentOS、Red Hat Enterprise Linux (RHEL)等基于RPM管理系统的操作系统的一个安装。该源码含了PHP 7.3的源代码和一系列构建所需的文件,可以用于编译、构建和安装PHP 7.3。 获得源码rpm的方式可以通过官方PHP网站或者其他镜像站点下载。下载后,可以通过以下步骤来安装php7.3源码rpm: 1. 使用root权限登录服务器,打开终端。 2. 使用命令“cd”进入源码所在的目录。 3. 运行命令“rpm -ivh php-source-package.rpm”来安装源码。其中,“php-source-package.rpm”是源码的文件名,具体的文件名可能会有所不同。 4. 安装过程可能需要一些时间,请耐心等待。 5. 安装完成后,可以通过运行命令“php -v”来验证PHP是否成功安装,并查看安装的版本号。 安装源码rpm的好处是可以自定义编译参数,以满足特定的需求。同时,使用源码也允许在未来对PHP进行定制化的修改和升级。 需要注意的是,安装源码需要具备一定的Linux命令行和编译知识。如果不确定操作,请谨慎安装,或者寻求相关的技术支持。 ### 回答3: PHP 7.3的源码RPM是一种用于安装和管理PHP的软件,它含了PHP 7.3的源代码和一些必要的依赖项。RPM是Red Hat Package Manager的缩写,它是一种在Red Hat及其衍生发行版上安装软件的标准工具。 PHP源码RPM允许用户从源代码构建和安装PHP,并提供了一种简单的方法来管理PHP的安装和更新。用户可以使用RPM工具来安装、卸载和更新PHP,它会自动处理依赖关系和文件冲突,确保安装的PHP版本兼容并且正确地配置。 用户可以通过从PHP官方网站下载PHP 7.3的源码RPM来获取它。下载后,用户可以使用RPM工具来安装它,命令类似于"rpm -ivh php-7.3.rpm"。 安装完成后,用户可以使用命令"php -v"来验证PHP版本是否正确安装。用户还可以通过编辑PHP的配置文件来自定义PHP的设置,例如调整内存限制、启用扩展等等。 总结来说,PHP 7.3的源码RPM是一种方便的工具,允许用户从源代码构建、安装和管理PHP,提供了一种简单的方法来管理PHP的安装和更新。它使得安装和配置PHP变得简单且可靠,并为用户提供了灵活性和自定义选项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值