溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

完美解決Linux源代碼封包失敗問題

發(fā)布時(shí)間:2020-07-09 12:00:02 來源:網(wǎng)絡(luò) 閱讀:1640 作者:BlueMiaomiao 欄目:建站服務(wù)器

解決Linux源代碼封包--host選項(xiàng)未知問題:
錯(cuò)誤信息:
[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 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)

[root@data SPECS]# 

流程操作:

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

示例代碼:

[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

列出的目錄當(dāng)安裝的時(shí)候會(huì)復(fù)制到對(duì)應(yīng)的目錄。

安裝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

報(bào)錯(cuò)提示為正?,F(xiàn)象,用來創(chuàng)建目錄。

[root@node0 ~]# tree

.

└── rpmbuild

    ├── BUILD

    ├── BUILDROOT     #會(huì)把軟件安裝到此處,是一個(gè)虛擬的根環(huán)境,是一個(gè)chroot環(huán)境

    ├── RPMS               #生成的RPM包

    ├── SOURCES         #把源碼包復(fù)制到此處

    ├── SPECS

    └── SRPMS

7 directories, 0 files

拷貝源碼包:

[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代替了%configure參數(shù),解決了Nginx編譯參數(shù)--host編譯選項(xiàng)找不到的問題

#%configure

make %{?_smp_mflags}

%install

make install DESTDIR=%{buildroot}

%files

%doc

/app/nginx/*

%changelog

[root@node0 SPECS]# rpmbuild -ba nginx.spec 

#查看安裝包信息:

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.

#安裝軟件:

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

獲取的經(jīng)驗(yàn)總結(jié): 
在使用spec文件指示rpmbuild命令封包的時(shí)候,spec文件中的%configure參數(shù)會(huì)在編譯的時(shí)候指定Nginx編譯選項(xiàng)--host=...,但是Nginx編譯選項(xiàng)沒有這個(gè)參數(shù),所以編譯不通過。使用./configure命令取代%configure,即可解決,最后需要設(shè)定RPM打包是需要包含的文件,本案例中使用了/app/nginx/*路徑。

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

[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]# 


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI