Linux獲取程式編譯引數

2021-09-08 02:42:04 字數 3907 閱讀 3467

作為系統管理員,經常會碰到這樣乙個場景:剛接手應用系統不久,業務擴充套件迅速,老闆要求你再搭建n個應用環境,並希望盡量與執行中的平台一致。

犯難的是,前同事留下的文件不詳細,沒有關於幾個主要service的編譯引數。這時你就必須設法取得資訊。

1.通過軟體包自己的version引數或者debug工具

例如,mysql軟體包中的mysqlbug,執行該工具,將返回debug資訊,過濾出其中的configure command**塊即可

1

2

3

4

5

6

7

8

9

10

configure command: ./configure  '--disable-shared' '--with-server-suffix=-community' '--without-plugin-ndbcluster' '--with-plugin-innobase'

'--with-plugin-partition' '--with-plugin-csv' '--with-plugin-archive' '--with-plugin-blackhole' '--with-plugin-federated'

'--without-plugin-da

emon_example' '--without-plugin-ftexample' '--without-plugin-example' '--with-embedded-server' '--without-bench' '--with-big-tables'

'--enabl

e-assembler' '--enable-local-infile' '--with-mysqld-user=mysql' '--with-unix-socket-path=/var/lib/mysql/mysql.sock' '--with-pic' '--prefix=/'

'--with-extra-charsets=complex' '--with-ssl' '--exec-prefix=/usr' '--libexecdir=/usr/sbin' '--libdir=/usr/lib' '--sysconfdir=/etc'

'--datadi

r=/usr/share' '--localstatedir=/var/lib/mysql' '--infodir=/usr/share/info' '--includedir=/usr/include' '--mandir=/usr/share/man'

'--enable-th

read-safe-client' '--with-comment=mysql community server (gpl)' '--with-readline' '--with-zlib-dir=bundled' 'cc=gcc'

'cflags=-o2 -g -pipe -wa

ll -wp,-d_fortify_source=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tab

les' 'ldflags=' 'cxx=gcc'

'cxxflags=-o2 -g -pipe -wall -wp,-d_fortify_source=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32

-march=i386 -mtune=generic -fasynchronous-unwind-tables -felide-constructors -fno-exceptions -fno-rtti '

附上其他常用service編譯引數的檢視方法

1

2

3

4

檢視nginx編譯引數:nginx -v

檢視apache編譯引數:cat /usr/local/apache/build/config.nice

檢視mysql編譯引數:mysqlbug

檢視php編譯引數:php -i | grep configure

all tested ok!

2.利用srpm包的spec檔案獲取build資訊

以上檢視apache編譯的方法,只能service是採用tar.gz安裝的環境。如果是rpm安裝,利用該方法是行不通的,rpm安裝的service,並不會留下config.nice。

解決辦法就是搜尋該軟體是否有發布srpm(.src.rpm字尾),將其解壓,檢視spec檔案中的%build**塊。

Linux程式引數

linux程式引數包括兩部分 命令列引數和環境變數 命令列引數傳遞給mian函式 int mian int argc,char argv 環境變數 extern char environ 獲得環境變數的函式 const char getenv const char name 設定環境變數的函式 1 ...

C 獲取程式編譯時間

乙個簡單的需求,就是需要程式判斷當前系統的時間是不是在程式編譯之後的,如果系統當前時間在編譯之前,那說明這台機器的時間是不正確的,需要終止程式執行。因為要在程式編譯時候獲取時間,如果每次編譯前手動修改的話,稍微顯得麻煩了一點。vc中可以使用visual c 編譯器預定義的巨集來獲取編譯時間,有 da...

輕鬆獲取LAMP,LNMP環境編譯引數配置

大家是否遇到過去了新公司,公司內的lamp,lnmp等所有的環境都是配置好的 已經在提供服務了 公司又沒有留下部署文件,甚至安裝lamp,lamp等環境的人已經和你交接完離職了,那麼線上伺服器 lamp,lnmp 的編譯環境等就成了黑盒,如果不改造還好,當伺服器需要遷移改造時,我們 新手的你 沒有老...