Perfect solution to the problem of Linux source code packet failure
Resolve the Linux source code package-the host option is unknown:
Error message:
[root@data 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 axiomagrXRIEW.
+ 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-IAccord usrbank lib64xxxxxxxxxxxxxxx
+ 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-IAccord usrbank lib64xxxxxxxxxxxxxxx
+ 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-- 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)
[root@data SPECS] #
Process operation:
Rpm-qi package name # query the basic information of the package
Sample code:
[root@node0 ~] # cd / tools/
[root@node0 tools] # rpm2cpio httpd-2.2.15-45.el6.x86_64.rpm | cpio-id
6136 blocks
[root@node0 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
The directories listed will be copied to the corresponding directory when installed.
Install rpm-build:
[root@node0 ~] # yum install rpm-build
[root@node0 SPECS] # yum install pcre pcre-devel zlib-devel-y
[root@node0 ~] # cd
[root@node0 ~] # rpmbuild-ba xxx.spec
Error: failed to stat / root/ba: No such file or directory
The error message is a normal phenomenon and is used to create a directory.
[root@node0 ~] # tree
.
└── rpmbuild
├── BUILD
├── BUILDROOT # installs the software here, which is a virtual root environment and a chroot environment
RPM package generated by ├── RPMS #
├── SOURCES # copy the source package here
├── SPECS
└── SRPMS
7 directories, 0 files
Copy the source package:
[root@node0 ~] # cp / tools/lnmp_soft/nginx-1.8.0.tar.gz / root/rpmbuild/SOURCES/
[root@node0 ~] # cd / root/rpmbuild/SPECS/
[root@node0 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 is used instead of the% configure parameter, which solves the problem that the Nginx compilation parameter-host compilation option can not be found
#% configure
Make% {? _ smp_mflags}
% install
Make install DESTDIR=% {buildroot}
% files
% doc
/ app/nginx/*
% changelog
[root@node0 SPECS] # rpmbuild-ba nginx.spec
# View the installation package information:
Package. / nginx-1.8.0-1.0.x86_64.rpm is not installed
[root@old] # 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.
# install the software:
Rpm-ivh. / nginx-1.8.0-1.0.x86_64.rpm
Summary of experience gained:
When you use the spec file to instruct the rpmbuild command packet, the% configure parameter in the spec file specifies the Nginx compilation option-- host=...,-- but the Nginx compilation option does not have this parameter, so the compilation fails. It can be solved by using the. / configure command instead of% configure. Finally, you need to set the file to be included for RPM packaging, and the / app/nginx/* path is used in this case.
The parameters supported by Nginx1.8.0 in. / configure are as follows:
[root@data 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
[root@data nginx-1.8.0] #