1. 程式人生 > >Linux雲計算-完美解決Linux源代碼封包失敗問題

Linux雲計算-完美解決Linux源代碼封包失敗問題

linux rpm 選項未知

解決Linux源代碼封包--host選項未知問題:
錯誤信息:
[[email protected] SPECS]# rpmbuild -ba ./nginx.spec

Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.FPu6Vb

+ umask 022

+ cd /root/rpmbuild/BUILD

+ cd /root/rpmbuild/BUILD

+ rm -rf nginx-1.8.0

+ /usr/bin/gzip -dc /root/rpmbuild/SOURCES/nginx-1.8.0.tar.gz

+ /usr/bin/tar -xf -

+ STATUS=0

+ ‘[‘ 0 -ne 0 ‘]‘

+ cd nginx-1.8.0

+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .

+ exit 0

Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.pDELh9

+ umask 022

+ cd /root/rpmbuild/BUILD

+ cd nginx-1.8.0

+ CFLAGS=‘-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic‘

+ export CFLAGS

+ CXXFLAGS=‘-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic‘

+ export CXXFLAGS

+ FFLAGS=‘-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -I/usr/lib64/gfortran/modules‘

+ export FFLAGS

+ FCFLAGS=‘-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -I/usr/lib64/gfortran/modules‘

+ export FCFLAGS

+ LDFLAGS=‘-Wl,-z,relro ‘

+ export LDFLAGS

+ ‘[‘ 1 == 1 ‘]‘

+ ‘[‘ x86_64 == ppc64le ‘]‘

++ find . -name config.guess -o -name config.sub

+ ./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info

./configure: error: invalid option "--host=x86_64-redhat-linux-gnu"

error: Bad exit status from /var/tmp/rpm-tmp.pDELh9 (%build)

RPM build errors:

Bad exit status from /var/tmp/rpm-tmp.pDELh9 (%build)

[[email protected] SPECS]#

流程操作:

rpm -qi 包名 #查詢軟件包的基本信息

示例代碼:

[[email protected] ~]# cd /tools/

[[email protected] tools]# rpm2cpio httpd-2.2.15-45.el6.x86_64.rpm | cpio -id

6136 blocks

[[email protected] tools]# ll

total 844K

drwxr-xr-x 6 root root 4.0K Oct 10 17:20 etc

drwxr-xr-x 5 root root 4.0K Oct 10 17:20 usr

drwxr-xr-x 7 root root 4.0K Oct 10 17:20 var

列出的目錄當安裝的時候會復制到對應的目錄。

安裝rpm-build:

[[email protected] ~]# yum install rpm-build

[[email protected] SPECS]# yum install pcre pcre-devel zlib-devel -y

[[email protected] ~]# cd

[[email protected] ~]# rpmbuild -ba xxx.spec

error: failed to stat /root/ba: No such file or directory

報錯提示為正常現象,用來創建目錄。

[[email protected] ~]# tree

.

└── rpmbuild

├── BUILD

├── BUILDROOT #會把軟件安裝到此處,是一個虛擬的根環境,是一個chroot環境

├── RPMS #生成的RPM包

├── SOURCES #把源碼包復制到此處

├── SPECS

└── SRPMS

7 directories, 0 files

拷貝源碼包:

[[email protected] ~]# cp /tools/lnmp_soft/nginx-1.8.0.tar.gz /root/rpmbuild/SOURCES/

[[email protected] ~]# cd /root/rpmbuild/SPECS/

[[email protected] SPECS]# vim ./nginx.spec

Name:nginx

Version:1.8.0

Release:1.0

Summary:This is Web Server

#Group:

License:GPL

URL:xvgetech.com

Source0:nginx-1.8.0.tar.gz

#BuildRequires:

#Requires:

%description

This is a web server too.

Welcome to nginx.

%prep

%setup -q

%build

./configure --prefix=/app/nginx/

#使用./configure代替了%configure參數,解決了Nginx編譯參數--host編譯選項找不到的問題

#%configure

make %{?_smp_mflags}

%install

make install DESTDIR=%{buildroot}

%files

%doc

/app/nginx/*

%changelog

[[email protected] SPECS]# rpmbuild -ba nginx.spec

#查看安裝包信息:

package ./nginx-1.8.0-1.0.x86_64.rpm is not installed

[[email protected] ~]# rpm -qpi ./nginx-1.8.0-1.0.x86_64.rpm

Name : nginx

Version : 1.8.0

Release : 1.0

Architecture: x86_64

Install Date: (not installed)

Group : Unspecified

Size : 660839

License : GPL

Signature : (none)

Source RPM : nginx-1.8.0-1.0.src.rpm

Build Date : Wed 11 Oct 2017 06:36:32 PM CST

Build Host : data

Relocations : (not relocatable)

URL : www.xvgetech.com

Summary : Test_Nginx

Description :

This is a web server too.

#安裝軟件:

rpm -ivh ./nginx-1.8.0-1.0.x86_64.rpm

獲取的經驗總結:
在使用spec文件指示rpmbuild命令封包的時候,spec文件中的%configure參數會在編譯的時候指定Nginx編譯選項--host=...,但是Nginx編譯選項沒有這個參數,所以編譯不通過。使用./configure命令取代%configure,即可解決,最後需要設定RPM打包是需要包含的文件,本案例中使用了/app/nginx/*路徑。

Nginx1.8.0在./configure支持的參數如下所示:

[[email protected] nginx-1.8.0]# ./configure --help


--help print this message


--prefix=PATH set installation prefix

--sbin-path=PATH set nginx binary pathname

--conf-path=PATH set nginx.conf pathname

--error-log-path=PATH set error log pathname

--pid-path=PATH set nginx.pid pathname

--lock-path=PATH set nginx.lock pathname


--user=USER set non-privileged user for

worker processes

--group=GROUP set non-privileged group for

worker processes


--build=NAME set build name

--builddir=DIR set build directory


--with-rtsig_module enable rtsig module

--with-select_module enable select module

--without-select_module disable select module

--with-poll_module enable poll module

--without-poll_module disable poll module


--with-threads enable thread pool support


--with-file-aio enable file AIO support

--with-ipv6 enable IPv6 support


--with-http_ssl_module enable ngx_http_ssl_module

--with-http_spdy_module enable ngx_http_spdy_module

--with-http_realip_module enable ngx_http_realip_module

--with-http_addition_module enable ngx_http_addition_module

--with-http_xslt_module enable ngx_http_xslt_module

--with-http_image_filter_module enable ngx_http_image_filter_module

--with-http_geoip_module enable ngx_http_geoip_module

--with-http_sub_module enable ngx_http_sub_module

--with-http_dav_module enable ngx_http_dav_module

--with-http_flv_module enable ngx_http_flv_module

--with-http_mp4_module enable ngx_http_mp4_module

--with-http_gunzip_module enable ngx_http_gunzip_module

--with-http_gzip_static_module enable ngx_http_gzip_static_module

--with-http_auth_request_module enable ngx_http_auth_request_module

--with-http_random_index_module enable ngx_http_random_index_module

--with-http_secure_link_module enable ngx_http_secure_link_module

--with-http_degradation_module enable ngx_http_degradation_module

--with-http_stub_status_module enable ngx_http_stub_status_module


--without-http_charset_module disable ngx_http_charset_module

--without-http_gzip_module disable ngx_http_gzip_module

--without-http_ssi_module disable ngx_http_ssi_module

--without-http_userid_module disable ngx_http_userid_module

--without-http_access_module disable ngx_http_access_module

--without-http_auth_basic_module disable ngx_http_auth_basic_module

--without-http_autoindex_module disable ngx_http_autoindex_module

--without-http_geo_module disable ngx_http_geo_module

--without-http_map_module disable ngx_http_map_module

--without-http_split_clients_module disable ngx_http_split_clients_module

--without-http_referer_module disable ngx_http_referer_module

--without-http_rewrite_module disable ngx_http_rewrite_module

--without-http_proxy_module disable ngx_http_proxy_module

--without-http_fastcgi_module disable ngx_http_fastcgi_module

--without-http_uwsgi_module disable ngx_http_uwsgi_module

--without-http_scgi_module disable ngx_http_scgi_module

--without-http_memcached_module disable ngx_http_memcached_module

--without-http_limit_conn_module disable ngx_http_limit_conn_module

--without-http_limit_req_module disable ngx_http_limit_req_module

--without-http_empty_gif_module disable ngx_http_empty_gif_module

--without-http_browser_module disable ngx_http_browser_module

--without-http_upstream_hash_module

disable ngx_http_upstream_hash_module

--without-http_upstream_ip_hash_module

disable ngx_http_upstream_ip_hash_module

--without-http_upstream_least_conn_module

disable ngx_http_upstream_least_conn_module

--without-http_upstream_keepalive_module

disable ngx_http_upstream_keepalive_module


--with-http_perl_module enable ngx_http_perl_module

--with-perl_modules_path=PATH set Perl modules path

--with-perl=PATH set perl binary pathname


--http-log-path=PATH set http access log pathname

--http-client-body-temp-path=PATH set path to store

http client request body temporary files

--http-proxy-temp-path=PATH set path to store

http proxy temporary files

--http-fastcgi-temp-path=PATH set path to store

http fastcgi temporary files

--http-uwsgi-temp-path=PATH set path to store

http uwsgi temporary files

--http-scgi-temp-path=PATH set path to store

http scgi temporary files


--without-http disable HTTP server

--without-http-cache disable HTTP cache


--with-mail enable POP3/IMAP4/SMTP proxy module

--with-mail_ssl_module enable ngx_mail_ssl_module

--without-mail_pop3_module disable ngx_mail_pop3_module

--without-mail_imap_module disable ngx_mail_imap_module

--without-mail_smtp_module disable ngx_mail_smtp_module


--with-google_perftools_module enable ngx_google_perftools_module

--with-cpp_test_module enable ngx_cpp_test_module


--add-module=PATH enable an external module


--with-cc=PATH set C compiler pathname

--with-cpp=PATH set C preprocessor pathname

--with-cc-opt=OPTIONS set additional C compiler options

--with-ld-opt=OPTIONS set additional linker options

--with-cpu-opt=CPU build for the specified CPU, valid values:

pentium, pentiumpro, pentium3, pentium4,

athlon, opteron, sparc32, sparc64, ppc64


--without-pcre disable PCRE library usage

--with-pcre force PCRE library usage

--with-pcre=DIR set path to PCRE library sources

--with-pcre-opt=OPTIONS set additional build options for PCRE

--with-pcre-jit build PCRE with JIT compilation support


--with-md5=DIR set path to md5 library sources

--with-md5-opt=OPTIONS set additional build options for md5

--with-md5-asm use md5 assembler sources


--with-sha1=DIR set path to sha1 library sources

--with-sha1-opt=OPTIONS set additional build options for sha1

--with-sha1-asm use sha1 assembler sources


--with-zlib=DIR set path to zlib library sources

--with-zlib-opt=OPTIONS set additional build options for zlib

--with-zlib-asm=CPU use zlib assembler sources optimized

for the specified CPU, valid values:

pentium, pentiumpro


--with-libatomic force libatomic_ops library usage

--with-libatomic=DIR set path to libatomic_ops library sources


--with-openssl=DIR set path to OpenSSL library sources

--with-openssl-opt=OPTIONS set additional build options for OpenSSL


--with-debug enable debug logging


[[email protected] nginx-1.8.0]#


本文出自 “泡面、車庫、程序員” 博客,請務必保留此出處http://xvjunjie.blog.51cto.com/12360960/1971516

Linux雲計算-完美解決Linux源代碼封包失敗問題