2010-08-28 30 views
1

GCC 4.4.4安裝C89的Fedora 13更好的是從庫下載庫或與* .tar.gz

我想知道什麼是更好的。給你一個例子的編譯:apache運行時便攜式log4c

我的fedora版本庫中的apr版本是1.3.9。 apr網站上的最新穩定版本是1.4.2。

問題

  1. 它會更好,從網站上下載並安裝,或者安裝使用蔭?
  2. 當你從yum安裝時,它有時會把東西放在很多目錄中。當從tarball安裝時,你可以將包含和庫放在你想要的地方。
  3. log4c的版本是相同的,因爲這是一箇舊的項目。
  4. 我用yum下載了log4c。我將所有包含和庫複製到我的開發項目目錄中。

project_name/tools/log4c/inc 
project_name/tools/log4c/libs 

然而,我注意到,我不得不尋找在/usr/include目錄中的一些標題。

非常感謝您的任何建議,

+1

這個問題真的屬於超級用戶 – 2010-08-28 12:23:01

回答

1

如果它們的版本足夠新,我通常會使用我的發行版提供的軟件包。有兩個原因:

1)如果發現舊的安全漏洞,有人會確保我獲得新的軟件包。

2)它節省了我的時間。

當我建立一個開發項目時,我從來沒有創建自己的include/lib目錄,除非項目本身是我放在那裏的相關文件的授權源。

我使用pkg-config來提供必要庫的位置並將文件包含到我的編譯器中。 pkg-config使用一些.pc文件作爲關於事情應該在哪裏的信息來源,並且這些信息由爲您的發行版創建軟件包的相同人員維護。有些庫不提供這個文件,而是另一個'-config'腳本。我將提供兩個示例:

我沒有運行Fedora 13,但Ubuntu 10.04上的一個示例是;

*)安裝liblog4c-dev的

*)命令 「log4c-配置--libs」 收益 「-L/usr/lib目錄-llog4c」 ......

*)命令「log4c -config --cflags」返回 「-I/usr/include目錄」

而且使用pkg配置(我將使用SDL的例子)爲例:

*)安裝libsdl1.2-dev的

*)命令「p KG-配置SDL --libs」返回 「-lSDL」

*)命令 「pkg配置SDL --cflags」 返回 「-D_GNU_SOURCE = 1 -D_REENTRANT -I/USR /包含/ SDL」

......所以,即使另一個發行版決定將事情放在不同的路徑中,也有腳本可以給你一個可靠的答案,以便事物在哪裏 - 因此可以在大多數發行版上構建。 Autotools(automake,autoconf等)和cmake對於確保您不必處理這些問題相當有幫助。

4

如果你的發行版的包庫的版本足夠新,只是使用它。

優點是通過您的發行版進行自動更新,安裝方便快捷(包括自動獲取和安裝依賴項!)和輕鬆移除軟件包。

如果你自己安裝.tar.gz的東西,你必須發揮你自己的發行版 - 跟蹤安全問題和錯誤。使用發行版軟件包時,您也會關注安全問題,但經銷商爲您提供許多工作(例如開發補丁程序,重新打包,測試和捕獲嚴重的內容)。當然,每個分銷商都有一個政策如何針對不同的包裝倉庫處理不同類別的問題。但用你自己的.tar.gz安裝你沒有這個。

1

如果你想構建一些必須與Fedora附帶的Apache一起工作的東西,那麼最好在Fedora中使用apr版本。這樣你就可以獲得自動安全更新等。如果你想自己開發一些新的東西,那麼跟蹤上游可能會很有用。

此外,您的發行版通常提供的標題應該可以通過gcc & co。找到。沒有你需要複製它們,所以它們在yum/rpm存儲的位置並不重要。

2

這是一個古老的問題,我認爲。所有Linux發行版都一樣。

該軟件包是由某人創建的 - 該用戶對應該發佈的內容有意見。你可能不同意 - 但通過使用一個包,你可以避免編譯和安裝軟件所需的所有依賴。

所以對於完全控制:滾動你自己的 - 但爲可能的工作做好準備 否則使用包。

我的看法: 使用包直到不可能(衝突,需要編譯參數,..)。我寧願花時間讓軟件爲我工作,而不是花時間編譯。