如何查看已安裝的APR版本?

如何查看已安裝的APR版本?

我需要找出特定伺服器上安裝了哪個版本的 Apache Portable Runtime。

那麼,在不存取日誌檔案的情況下如何做到這一點?

答案1

寫一行 C :

# cat apr.c
int main(void) {
        printf("%s\n",apr_version_string());
}

編譯(找到libapr的好路徑)

# gcc -o apr apr.c /usr/pkg/lib/libapr-1.a

執行

# ./apr
1.3.3

PS:找到libapr你可以試試

ls /usr/lib/libapr*; ls /usr/local/lib/libapr*;ls /lib/libapr*;locate libapr; ...

或者按照 david 所說運行 ldd over httpd 如果你想找到 apache 使用的版本

答案2

您沒有提供太多信息,但您可以嘗試多種方法。

  1. 詢問您的包經理。這假設您透過套件管理系統安裝了系統範圍的 libapr。 Debian 會是dpkg -l "*apr*"。 RPM 會是這樣的rpm -qa | grep -i apr
  2. 當然,您可能是從原始程式碼安裝的,在這種情況下,庫的檔案名稱中可能包含版本號。運行locate libapr,它應該顯示類似“/usr/lib/libapr-1.2.3.so”的內容
  3. 可能是沒找到吧。嘗試一下ldd /usr/sbin/httpd(或者您使用二進位檔案的 APR 是什麼),您將看到您的二進位檔案將使用哪個庫檔案。這也應該顯示版本號,或將顯示名稱中帶有版本號的檔案的符號連結的位置。
  4. 最後,您的二進位檔案可能靜態連結了 APR。您可以透過執行strings /usr/sbin/httpd並尋找看起來可能的版本號來取得版本號。如果您沒有包含版本號編碼的 .so 文件,您也可以執行此操作。

答案3

$ find / -name *apr* 2>/dev/null 1>/tmp/apr-findings
$ less /tmp/apr-findings

這對我很有幫助,因為它的記錄非常糟糕。我不知道有什麼更好的解決方案。
如果您找到一個名為 的文件libapr*.la,但無法確定其版本號,請查看它。就我而言,是這樣的:

# Version information for libapr-0.
current=9
age=9
revision=4

答案4

如果您只是想找出與 Apache 連結的版本, /usr/local/apache2/bin/httpd -V 會告訴您。

相關內容