當前位置: 首頁>>技術教程>>正文


PPA和存儲庫之間有什麽區別?

, ,

問題描述

我最近發布了一個答案,我寫了添加PPA。但我現在意識到,我不知道PPA和存儲庫之間的區別是什麽。有人可以向我解釋一下嗎?

最佳解決思路

Repositories

On systems like Ubuntu, most software is packaged in nice .deb (or .rpm, like in Red Hat) files which contain the programs and libraries you need. These files can be downloaded or come in CDs (Ubuntu’s CD is full of them). Repositories are servers which contain sets of packages.

PPA

Personal Package Archives (PPA) allow you to upload Ubuntu source packages to be built and published as an apt repository by Launchpad.

另見什麽是PPA,我如何使用它們?

把它們加起來:

  • 存儲庫包含包。

  • PPA是包(/軟件集合)。

  • Launchpad有一個存儲庫,可以容納PPA(/軟件集合)。

次佳解決思路

我不同意這個問題的accepted answer。我會寫下以下內容作為對該答案的評論,但它太長了。

  • 存儲庫是托管在任意服務器上的軟件包的集合。

  • PPA也是一組托管在Launchpad服務器上的軟件包。特別是,PPA不是一個單獨的包,因為非常模糊的點“PPA是包(/軟件集合)”。在接受的答案中可能會導致相信。另外,包不是(必然)軟件的集合,這使得這一點更加令人困惑。

  • 因此,PPA是一種特殊的存儲庫。就像一個正方形是一種特殊的矩形。

主要的區別是主持人。基本上,如果您是程序員並希望開發和分發自己的軟件包,並且在Internet中擁有自己的根服務器,則可以在其上設置自己的存儲庫。大!但是,如果你沒有root服務器,並且你不想支付一台服務器,但仍想開發和分發自己的軟件包呢?那麽,那就是Launchpad。它提供PPA作為服務用於該用例。您基本上可以在Launchpad上創建自己的存儲庫,並在那裏管理您自己的包。

我們來看一個說明性的例子。

  1. 首先,假設您要在Ubuntu Saucy Salamander上安裝MATE Desktop Environment(Gnome 2前叉)。它不包含在官方回購中,開發者也沒有維持PPA。相反,他們有自己的回購。您可以像這樣添加它:

    $ sudo add-apt-repository http://packages.mate-desktop.org/repo/ubuntu
    

    這將導致以下條目添加到/etc/apt/sources.list

    deb http://packages.mate-desktop.org/repo/ubuntu saucy main
    
  2. 其次,假設您還想查看Cinnamon(另一個Gnome 2 fork)。這包含在自13.04以來的官方回購中,但仍然有開發人員維護的PPA,例如,如果您有興趣更快地獲得新版本,則非常有用。您可以像這樣添加它:

    $ sudo add-apt-repository ppa:gwendal-lebihan-dev/cinnamon-stable
    

    這將導致以下條目添加到/etc/apt/sources.list.d/gwendal-lebihan-dev-cinnamon-stable-saucy.list

    deb http://ppa.launchpad.net/gwendal-lebihan-dev/cinnamon-stable/ubuntu saucy main
    

    如您所見,後一個條目與第(1)點中的條目非常相似。實際上,兩者都隻是Ubuntu視角下的存儲庫URL。

  3. 事實上,您甚至可以使用與第(1)點相同的語法添加Cinnamon PPA,盡管這不是添加PPA的典型方法:

    $ sudo add-apt-repository http://ppa.launchpad.net/gwendal-lebihan-dev/cinnamon-stable/ubuntu
    

    這將導致以下條目添加到/etc/apt/sources.list

    deb http://ppa.launchpad.net/gwendal-lebihan-dev/cinnamon-stable/ubuntu saucy main
    

    這與第(2)點中的條目完全相同。隻寫入這些條目的文件的處理方式略有不同,但最終並沒有什麽區別。在這兩種情況下,您最終都會在您的係統上獲得Cinnamon PPA的包裝,當然也可以在規範的sudo apt-get update之後使用。

第三種解決思路

就APT而言,存儲庫和PPA之間沒有技術差異。兩者都是提供軟件包的軟件存儲庫,從APT的角度來看是安裝軟件包的相同機製。

PPA是使用Launchpad作為後端的軟件包的存儲庫。隻是同一個東西的另一個名稱,即(至少在原則上)通常出於個人原因使用,它可以自動執行大多數操作,否則您必須手動執行或設置自己的服務。

存儲庫是軟件的任何地方,在這種情況下,包列表和包將安裝在基於Debian的發行版中。

您可以擁有自己的個人存儲庫,而無需使用Launchpad,因此可以稱為PPA,因為它是個人的。

使用的唯一區別僅在於add-apt-repository的語法,它使用magic關鍵字ppa:而不是強製用戶編寫非Launchpad存儲庫所需的完整URL。

第四種思路

存儲庫是各種軟件的集合,其使得諸如apt-get,aptitude等軟件能夠下載和安裝所述軟件。他們的內容可供所有人查看。閱讀存儲庫中的Ubuntu Help Page以獲取啟示。

PPA是軟件的特殊存儲庫,發行機構尚未對整個社區采用。 PPA軟件可能存在缺陷,甚至可能用於惡意軟件,因為它們沒有像普通存儲庫那樣得到廣泛的審查。有關更多信息,請參閱Launchpad’s explanation of PPAsthis discussion of PPAs

第五種思路

Repository是存儲或維護包以供下載或更新的地方。這些是包含多組包的服務器。

Personal Package Archive (PPA)是一個特殊的軟件存儲庫,用於通過Launchpad或類似應用程序上載要構建和發布為APT存儲庫的源包。主要是由非Ubuntu官方開發人員維護

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/2042.html,未經允許,請勿轉載。