<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] > [參考](https://www.linuxidc.com/Linux/2016-09/134955.htm) ## 實例 目錄說明 ``` > cd ~/rpmbuild/SOURCES > wget http://nginx.org/download/nginx-1.7.7.tar.gz > ls > init.nginx nginx-1.7.7.tar.gz nginx.conf ``` 生成init 文件 <details> <summary>init.nginx</summary> ``` #!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server # processname: nginx ## config: /etc/nginx/nginx.conf # config: /usr/local/nginx/conf/nginx.conf # config: /etc/sysconfig/nginx ## pidfile: /var/run/nginx/nginx.pid # pidfile: /usr/local/nginx/logs/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/local/nginx/sbin/nginx" prog=$(basename $nginx) #NGINX_CONF_FILE="/etc/nginx/nginx.conf" NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx make_dirs() { # make required directories user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -` options=`$nginx -V 2>&1 | grep 'configure arguments:'` for opt in $options; do if [ `echo $opt | grep '.*-temp-path'` ]; then value=`echo $opt | cut -d "=" -f 2` if [ ! -d "$value" ]; then # echo "creating" $value mkdir -p $value && chown -R $user $value fi fi done } start() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 make_dirs echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { configtest || return $? stop sleep 1 start } reload() { configtest || return $? echo -n $"Reloading $prog: " killproc $nginx -HUP RETVAL=$? echo } force_reload() { restart } configtest() { $nginx -t -c $NGINX_CONF_FILE } rh_status() { status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac ``` </details> <br/> 生成 nginx.spec文件 ``` > cd ~/rpmbuild/SPECS > rpmdev-newspec nginx.spec # 可以使用rpmdev-newspec工具來生成,也可以手動vim編寫. ``` <details> <summary>nginx.spec</summary> ``` Name: nginx # 軟件包名稱 Version: 1.7.7 # 版本號,(不能使用-) Release: 1%{?dist} # release號,對應下面的changelog,如 nginx-1.7.7-3.el6.x86_64.rpm Summary: nginx-1.7.7.tar.gz to nginx-1.7.7.rpm # 簡要描述信息,最好不要超過50個字符,如要詳述,使用下面的%description Group: Applications/Archiving # 要全用這里面的一個組:less /usr/share/doc/rpm-version/GROUPS License: GPLv2 # 一定帶上(最好是對方源碼包的License)BSD,GPL,GPLv2 URL: http://nginx.org/ Packager: CentOS # 包提供者 Vendor: centos Source0: %{name}-%{version}.tar.gz # source主要是引用一下自己定義好的腳本,配置文件之類的內容。 Source1: init.nginx # nginx在主配置文件里面做了很多優化,包括cpu搶占,各種緩存策略,tcp,進程數等。 Source2: nginx.conf # 每增加一個Source ,都需要在 %install 段和 %files 段做相應配置,如果是啟動腳本的話,最好在腳本段配置一下 BuildRoot: %_topdir/BUILDROOT BuildRequires: gcc # 編譯代碼需要的軟件。這個只影響編譯命令,不影響打包后的rpm包的依賴關系。 Requires: openssl,openssl-devel,pcre-devel,pcre # 定義nginxrpm安裝時依賴的包,需要提前進行yum手動安裝 %description # 軟件包的描述,可多行編寫,段中間空行隔開 Custom a rpm by yourself!Build nginx-1.7.7.tar.gz to nginx-1.7.7.rpm %prep # 準備階段,主要就是把源碼包解壓到build目錄下,設置一下環境變量,并cd進去 %setup -q # 這個宏的作用靜默模式解壓并cd,并不需要我們手動cd,setup會自動完成初始的工作 %build # 編譯制作階段,主要用于編譯源碼 %configure #在 RMP 創建時候, 由于 nginx 不按照常規定義, 不可以定義 %{_prefix} 之類參數, 也不可以使用 %configure 這個參數進行 rpm 編譯 #一旦定義該參數, 會導致編譯自動增加下面參數, 導致報錯 # + ./configure --build=x86_64-RedHat-linux-gnu --host=x86_64-redhat-linux-gnu --target=x86_64-redhat-linux-gnu --program-prefix= #因此,這里需要 ./configure,且需把%configure刪掉 #而且這里需要安裝 pcre-devel包,如果沒有的話,會提示關于pcre的錯誤,直接安裝此包就可以了 ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-http_ssl_module \ --with-http_flv_module \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/tmp/nginx/client/ \ --http-proxy-temp-path=/var/tmp/nginx/proxy/ \ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ --http-scgi-temp-path=/var/tmp/nginx/scgi \ --with-pcre make %{?_smp_mflags} # make后面的意思是:如果就多處理器的話make時并行編譯 %install # 此區域主要用來完成實際軟件安裝必須執行的命令,其中可包含4種類型的腳本 rm -rf %{buildroot} make install DESTDIR=%{buildroot} %{__install} -p -D -m 0755 %{SOURCE1} %{buildroot}/etc/rc.d/init.d/nginx %{__install} -p -D %{SOURCE2} %{buildroot}/usr/local/nginx/conf/nginx.conf %pre # 安裝前執行的腳本動作 if [ $1 == 1 ];then # $1有3個值,代表動作,安裝類型,處理類型 /usr/sbin/useradd -r nginx -s /sbin/nologin 2> /dev/null # 1:表示安裝 fi # 2:表示升級 # 0:表示卸載 %post # rpm安裝后要執行的腳本動作 if [ $1 == 1 ];then /sbin/chkconfig --add %{name} /sbin/chkconfig %{name} on echo ' net.ipv4.tcp_max_syn_backlog = 65536 net.core.netdev_max_backlog = 32768 net.core.somaxconn = 32768 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syn_retries = 2 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_mem = 94500000 915000000927000000 net.ipv4.tcp_max_orphans = 3276800 #net.ipv4.tcp_fin_timeout = 30 #net.ipv4.tcp_keepalive_time = 120 net.ipv4.ip_local_port_range = 1024 65535' >> /etc/sysctl.conf sysctl -p 2>&1 /dev/null #此文件中主要是在安裝后做內核參數的優化,包括tcp的快速釋放和重利用等。 fi %preun # rpm卸載前執行的腳本動作,可以在下面編寫 if [ $1 == 0 ];then /usr/sbin/userdel -r nginx 2> /dev/null /etc/init.d/nginx stop > /dev/null 2>&1 fi %postun # rpm卸載后執行的腳本 %clean # 清理段,主要用于完成編譯安裝后的清理BUILDROOT和BUILD動作 rm -rf %{buildroot} %files # 文件列表段,這個階段主要是把前面已經編譯好的內容打包,啟動包括打包那些文件,其中exlude是指要排除那些包不打包進來. %defattr(-,root,root,0755) # defattr全局宏,指定下面打包所有文件的屬主,屬組,權限 /usr/local/nginx/ # 表示包含此目錄下的所有文件 %attr(0755,root,root) /etc/rc.d/init.d/nginx # 此宏是定義單個文件的權限 %config(noreplace) /usr/local/nginx/conf/nginx.conf # 指定為配置文件,noreplace表示是否替換如果之前有的此文件的話 %changelog # 日志改變段,主要用來描述每一次修改做個那寫動作 * Thu Sep 2 2016 centos <admin@centos.com> - 1.7.7-1 * Initial version ``` </details> <br/>
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看