CentOS7.*下rpmbuild打ruby2.3.1 rpm包

 ruby.spec文件

%define rubyver         2.3.1

Name:           ruby
Version:        %{rubyver}
Release:        1%{?dist}
License:        Ruby License/GPL - see COPYING
URL:            http://www.ruby-lang.org/
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}%{?dist}.%{_arch}
#Requires:       readline ncurses gdbm glibc openssl libyaml libffi zlib
#BuildRequires:  readline-devel ncurses-devel gdbm-devel glibc-devel gcc openssl-devel make libyaml-devel libffi-devel zlib-devel
Source0:        %{name}-%{version}.zip
Summary:        An interpreter of object-oriented scripting language
Group:          Development/Languages

%description
Ruby is the interpreted scripting language for quick and easy
object-oriented programming.  It has many features to process text
files and to do system management tasks (as in Perl).  It is simple,
straight-forward, and extensible.

%prep
%setup -q
%build
export CFLAGS="$RPM_OPT_FLAGS -Wall -fno-strict-aliasing"

%configure \
  --enable-shared \
  --disable-rpath \
  --without-X11 \
  --without-tk \
  --includedir=%{_includedir}/ruby \
  --libdir=%{_libdir}

make %{?_smp_mflags}

%install
make install DESTDIR=$RPM_BUILD_ROOT

#we don't want to keep the src directory
rm -rf $RPM_BUILD_ROOT/usr/src

%clean
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
%files
%defattr(-, root, root)
%{_bindir}/*
%{_includedir}/*
%{_datadir}/*
%{_libdir}/*

%changelog
* Tue Apr 26 2016 Takashi Masuda <masutaka@feedforce.jp> - 2.3.1
- Update ruby version to 2.3.1

build步骤 

# build ruby RPM包时,所需依赖包 
yum install readline-devel ncurses-devel gdbm-devel glibc-devel gcc openssl-devel libyaml-devel libffi-devel zlib-devel

# 生成build打包目录环境
rpmdev-setuptree 

# 将上面的ruby.spec文件写到SPECS下
vi SPECS/ruby.spec

# 将源文件拷贝到SOURCES下
cp /opt/ruby-2.3.1.zip SOURCES/

# 开始打包RPM包
rpmbuild -ba SPECS/ruby.spec 

报错:
+ /usr/lib/rpm/redhat/brp-java-repack-jars
Processing files: ruby-2.3.1-1.el7.x86_64
error: File not found by glob: /root/rpmbuild/BUILDROOT/ruby-2.3.1-1.el7.x86_64/usr/bin/*
error: File not found by glob: /root/rpmbuild/BUILDROOT/ruby-2.3.1-1.el7.x86_64/usr/share/*

RPM build errors:
    File not found by glob: /root/rpmbuild/BUILDROOT/ruby-2.3.1-1.el7.x86_64/usr/bin/*
    File not found by glob: /root/rpmbuild/BUILDROOT/ruby-2.3.1-1.el7.x86_64/usr/share/*
    
解决:
将ruby.spec中./configure 指令换成%configure

#Requires:       readline ncurses gdbm glibc openssl libyaml libffi zlib
打包好的RPM报安装的时候会做依赖检查,如果上述软件未安装,将安装失败,并提示依赖关系。可以注释掉。
#BuildRequires:  readline-devel ncurses-devel gdbm-devel glibc-devel gcc openssl-devel
打包时所需依赖包,如果上诉软件没有安装,执行rpmbuild时会报错,提示安装上述软件。如果已经安装了,可以注释掉。

rpm包获取spec文件

# 下载源码包
yumdownloader --source 包名
# 解压源码包
rpm2cpio openssh-7.4p1-21.el7.src.rpm |cpio -idmv

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值