如何在Ubuntu系統(tǒng)中使用PPA? 在Ubuntu Linux 中使用PPA完全指南

如果你在使用 Ubuntu 系統(tǒng),或其它衍生版本,如 Linux Mint、Linux Lite 或者 Zorin OS 等,可能會(huì)遇到添加使用 PPA 的情況。那什么是 PPA?為什么要使用 PPA?如何正確添加、使用,以及 PPA 安全嗎?下面就為大家介紹,如何在 Ubuntu 系統(tǒng)中使用 PPA。
什么是 PPA,為什么使用它
PPA 全稱 Personal Package Archive,顧名思義就是「?jìng)€(gè)人包歸檔」。在正式了解 PPA 之前,您應(yīng)該先了解 Linux 中「存儲(chǔ)庫(kù)」的概念:
存儲(chǔ)庫(kù)和包管理的概念
「存儲(chǔ)庫(kù)」repository 是一組文件,其中包含了有關(guān)各種軟件的版本信息和詳細(xì)信息,如「校驗(yàn)值」。每個(gè) Ubuntu 版本都有自己的 4 個(gè)官方「存儲(chǔ)庫(kù)」:
Main Canonical 支持的免費(fèi)和開(kāi)源軟件Universe 社區(qū)維護(hù)的免費(fèi)和開(kāi)源軟件Restricted 設(shè)備的專有驅(qū)動(dòng)Multiverse 有版權(quán)和合法性問(wèn)題限制的軟件
您可以點(diǎn)擊查看所有 Ubuntu 版本的「存儲(chǔ)庫(kù)」,也可以在頁(yè)面中查看?!复鎯?chǔ)庫(kù)」,例如 Ubuntu 16.04 Main 存儲(chǔ)庫(kù)。其實(shí)簡(jiǎn)單來(lái)說(shuō),「存儲(chǔ)庫(kù)」就是包含有關(guān)軟件信息的 Web URL。
那么,系統(tǒng)是如何得知「存儲(chǔ)庫(kù)」repository 位置的呢?其實(shí)該信息就存儲(chǔ)在 /etc/apt 目錄的 sources.list 文件中。如果你查看該文本文件,就可以看到存儲(chǔ)庫(kù)的 URL。
當(dāng)您執(zhí)行 sudo apt update 命令時(shí),Ubuntu 系統(tǒng)就會(huì)使用 APT 工具檢查在線「存儲(chǔ)庫(kù)」,并將有關(guān)軟件及其版本的信息存儲(chǔ)到緩存中。 當(dāng)您使用 sudo apt install package_name 安裝軟件時(shí),系統(tǒng)就會(huì)使用該信息從存儲(chǔ)實(shí)際軟件的 URL 獲取該軟件包。
如果存儲(chǔ)庫(kù)中沒(méi)有關(guān)于某個(gè)軟件包的信息,「終端」中將返回以下錯(cuò)誤:
E: Unable to locate package
在介紹完「存儲(chǔ)庫(kù)」的一些基本信息后,我們就可以開(kāi)始了解 PPA 了。
什么是 PPA
如您所見(jiàn),Ubuntu 的「存儲(chǔ)庫(kù)」控制著用戶可以在系統(tǒng)上獲得的軟件版本。但如果 ISV 或開(kāi)發(fā)人員發(fā)布了軟件新版本,Ubuntu 的官方「存儲(chǔ)庫(kù)」不可能立即提供。為了確保系統(tǒng)穩(wěn)定性,官方源會(huì)檢查新版本是否與系統(tǒng)兼容,所以在軟件發(fā)布新版本后,短時(shí)間內(nèi)用戶是無(wú)法通過(guò) Ubuntu 的官方「存儲(chǔ)庫(kù)」來(lái)獲得最新軟件版本的。
另一方面,官方存儲(chǔ)庫(kù)僅提供「穩(wěn)定版」軟件,如果 ISV 要發(fā)布軟件版本的 beta 測(cè)試,是無(wú)法通過(guò)官方源來(lái)發(fā)布的。
在遇到以上情況時(shí),就需要使用 PPA 了。
如何使用 PPA,以及 PPA 如何工作
PPA 意味著個(gè)人包存檔,請(qǐng)注意「?jìng)€(gè)人」這個(gè)詞,它暗示了這是開(kāi)發(fā)人員所獨(dú)有的東西,并沒(méi)有得到分發(fā)的正式認(rèn)可。
Ubuntu 提供了一個(gè)名為 Launchpad 的平臺(tái),讓軟件開(kāi)發(fā)人員能夠創(chuàng)建自己的存儲(chǔ)庫(kù),方便最終用戶將 PPA 存儲(chǔ)庫(kù)添加到 sources.list。當(dāng)用戶更新系統(tǒng)時(shí),Ubuntu 系統(tǒng)就能夠知道這個(gè)新軟件的可用性,而且可以使用標(biāo)準(zhǔn)的 sudo apt install package_name 命令來(lái)安裝它,就比如:
sudo add-apt-repository ppa:dr-akulavich/lighttable sudo apt-get update sudo apt-get install lighttable-installer
將上述命令總結(jié)一下就是:
- sudo add-apt-repository <PPA_info> 命令可以將 PPA 存儲(chǔ)庫(kù)添加到 sources.list 列表中
- sudo apt-get update 此命令更新軟件包列表
- sudo apt-get install <package_in_PPA> 命令用于安裝軟件包
現(xiàn)在讓我們?cè)敿?xì)拆解一下:
sudo add-apt-repository ppa:dr-akulavich/lighttable
上述命令中并沒(méi)有列出存儲(chǔ)庫(kù)的 URL,這是因?yàn)樵摴ぞ咧荚趯?duì)有關(guān) URL 的信息進(jìn)行抽象化。如果你添加 ppa:dr-akulavich/lighttable,將會(huì)獲取到 Light Table;如果添加的是 ppa:dr-akulavich,將能夠獲取到「上層存儲(chǔ)庫(kù)」中的所有存儲(chǔ)庫(kù)或軟件包。
基本上,當(dāng)您使用 add-apt-repository 添加 PP A時(shí),相當(dāng)于手動(dòng)執(zhí)行類似如下命令:
deb http://ppa.launchpad.net/dr-akulavich/lighttable/ubuntu YOUR_UBUNTU_VERSION_HERE main deb-src http://ppa.launchpad.net/dr-akulavich/lighttable/ubuntu YOUR_UBUNTU_VERSION_HERE main
上述 2 條命令是將存儲(chǔ)庫(kù)添加到 sources.list 的傳統(tǒng)方法,而在添加 PPA 時(shí)會(huì)自動(dòng)完成對(duì) sources.list 文件的配置,而無(wú)需用戶知道確切的存儲(chǔ)庫(kù) URL 和操作系統(tǒng)版本,相當(dāng)于是自動(dòng)化的。
而相當(dāng)重要的一點(diǎn)就是,使用 PPA 時(shí)它不會(huì)更改 Ubuntu 系統(tǒng)中的原始 sources.list 配置文件,而是根據(jù)最佳實(shí)踐在 /etc/apt/sources.list.d/ 目錄中創(chuàng)建列表文件和對(duì)應(yīng)(save 擴(kuò)展名)的備份文件。
這是一種安全措施,可確保添加 PPA 時(shí)不會(huì)污染原始 sources.list,而且還有助于 PPA 移除。
官方和非官方 PPA
你可能還聽(tīng)說(shuō)過(guò)官方 PPA和非官方 PPA的說(shuō)法,這兩者之間又有什么不同呢?
當(dāng)軟件開(kāi)發(fā)商或開(kāi)發(fā)人員為他們的軟件創(chuàng)建 PPA 時(shí),被稱為官方 PPA。但有時(shí),一些個(gè)人也會(huì)為其它開(kāi)發(fā)人員的項(xiàng)目創(chuàng)建 PPA。為什么有人這么做呢?主要是因?yàn)橛械拈_(kāi)發(fā)人員只提供軟件源碼,而對(duì)很多普通用戶來(lái)說(shuō),在 Linux 中進(jìn)行源碼編譯安裝是非常痛苦的事,而通過(guò)志愿者創(chuàng)建的非官方 PPA,就可以方便用戶對(duì)軟件進(jìn)行輕松安裝和管理了。
確保你的Linux發(fā)行版可以使用PPA
當(dāng)在 Ubuntu 或其他基于 Debian 的 Linux 發(fā)行版中使用 PPA 時(shí),應(yīng)該記住一些事:
并非每個(gè) PPA 都適用于您的特定 Linux 版本。你需要知道當(dāng)前正在使用哪個(gè) Ubuntu 版本,該版本的代號(hào)非常重要。當(dāng)您轉(zhuǎn)到某個(gè) PPA 的網(wǎng)頁(yè)時(shí),就可以看到 PPA 支持哪些 Ubuntu 版本。
如何獲取 PPA 的網(wǎng)址呢?只需在互聯(lián)網(wǎng)上搜索 PPA 名稱,如 ppa:dr-akulavich/lighttable,就可以獲得 Launchpad 這一官方 PPA 托管平臺(tái)中的結(jié)果。當(dāng)然,你也可以直接到 Launchpad 網(wǎng)站中進(jìn)行搜索。
為什么PPA不適用于所有Ubuntu發(fā)行版本
Ubuntu 每 6 個(gè)月會(huì)發(fā)布一個(gè)新版本,而必需要為特定版本編譯軟件創(chuàng)建 PPA 才能適配,為每個(gè) Ubuntu 版本更新 PPA 是一項(xiàng)繁瑣的任務(wù),而維護(hù)老版本的軟件更新也不太現(xiàn)實(shí),所以并非所有開(kāi)發(fā)人員或 PPA 維護(hù)者都會(huì)花時(shí)間這么做。
如果PPA不適用于你的Linux版本,要如何安裝應(yīng)用程序?
如果 PPA 不適用于您的 Ubuntu 版本,仍然可以下載 DEB 文件來(lái)安裝應(yīng)用程序。您可以點(diǎn)擊「View package details」:
此后可以單擊包以顯示更多詳細(xì)信息,還可以在此處找到包的源代碼和 DEB 文件:
由于 Gdebi 在處理依賴項(xiàng)方面要好得多,建議使用 Gdebi 而非「軟件中心」來(lái)安裝這些 DEB 文件。
如何刪除PPA
建議在刪除 PPA 之前事先刪除通過(guò) PPA 安裝的軟件,如果你只刪除 PPA,則已經(jīng)安裝的軟件仍然會(huì)保留在系統(tǒng)當(dāng)中,而且還無(wú)法獲得任何更新。
那么問(wèn)題來(lái)了,如何判斷哪些應(yīng)用程序是通過(guò) PPA 安裝的呢?
找出通過(guò)PPA安裝的軟件
Ubuntu「軟件中心」是不包括這個(gè)功能的,我們可以通過(guò)「新立得包管理器」來(lái)找出通過(guò) PPA 安裝的軟件:
sudo apt install synaptic
在「新立得包管理器」中選擇「源自」:
找到包后,您可以直接用「新立得包管理器」來(lái)刪除它們,或者執(zhí)行「終端」命令來(lái)刪除:
sudo apt remove package_name
刪除用 PPA 安裝的軟件包后,您可以繼續(xù)從 sources.list 中刪除 PPA。
以圖形方式刪除PPA
轉(zhuǎn)到「軟件和更新」——然后轉(zhuǎn)到「其它軟件」選項(xiàng)卡——查找要?jiǎng)h除的 PPA:
你有兩個(gè)選擇:您取消選擇 PPA 或直接用「刪除」選項(xiàng)。
其區(qū)別在于:當(dāng)您取消選擇 PPA 條目時(shí),系統(tǒng)會(huì)將 /etc/apt/sources.list.d 中的 ppa_name.list 文件注釋掉;如果選擇「刪除」選項(xiàng),就會(huì)直接刪除 /etc/apt/sources.list.d 目錄中的 ppa_name.list文 件。
使用PPA安全嗎
由于提供對(duì)軟件安裝的簡(jiǎn)單選擇,PPA 在 Debian 和 Ubuntu 用戶群體中很受歡迎。就安全性而言,官方 PPA可以不加考慮的使用,而是否使用非官方 PPA就完全取決于你的個(gè)人選擇了。
根據(jù)經(jīng)驗(yàn),如果程序需要 sudo 權(quán)限,則應(yīng)避免通過(guò)第三方 PPA 安裝程序。
相關(guān)文章
Ubuntu22.04怎么安裝Python 3.11? Ubuntu下載安裝Python的圖文教程
Ubuntu22.04系統(tǒng)需要使用Python軟件,很多朋友不知道該怎么安裝,今天我么就來(lái)分享Python軟件下載以及安裝的詳細(xì)教程2024-03-07怎么用U盤安裝Ubuntu20.04系統(tǒng)? 烏班圖桌面版安裝圖文教程附下載
之前電腦安裝的Centos7系統(tǒng),但是在啟動(dòng)過(guò)程中遇到了文件異常,就開(kāi)不了機(jī)了,現(xiàn)在想用U盤裝Ubuntu系統(tǒng),該怎么安裝呢?詳細(xì)請(qǐng)看下文圖文安裝教程,很詳細(xì)適合小白新手操作2024-02-29Ubuntu如何訪問(wèn)Windows文件 Ubuntu訪問(wèn)Windows文件夾的方法
在使用Ubuntu Linux的過(guò)程中,有時(shí)我們需要訪問(wèn)存儲(chǔ)在Windows系統(tǒng)中的文件或者文件夾,該怎么操作呢?詳細(xì)請(qǐng)看下文介紹2024-02-03如何解決Ubuntu環(huán)境下解壓中文顯示亂碼問(wèn)題? Ubuntu解壓中文亂碼的多種
在Ubuntu下解壓Windows下壓縮文件時(shí),會(huì)出現(xiàn)解壓出的帶中文文件名的文件名亂碼,這大概率是因?yàn)閎untu和Windows默認(rèn)的編碼不同,當(dāng)然也有其他原因,詳細(xì)請(qǐng)看下文介紹2024-01-09- Ubuntu怎么查看文件大小或文件夾大???Ubuntu系統(tǒng)中,我們可以使用命令來(lái)查看給定目錄或文件的大小,詳細(xì)請(qǐng)看下文介紹2025-04-01
如何在Ubuntu上設(shè)置環(huán)境變量? ubuntu環(huán)境變量的三種設(shè)置方法
如何在Ubuntu上設(shè)置環(huán)境變量?環(huán)境變量是作用在操作系統(tǒng)中用來(lái)設(shè)置操作系統(tǒng)的一些參數(shù),下面我們就來(lái)看看ubuntu環(huán)境變量的三種設(shè)置方法2023-12-22- 這篇文章主要為大家介紹了ubuntu配置靜態(tài)地址方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-15
Ubuntu怎么安裝VMware Tools? vmware tools安裝詳細(xì)圖文教程
Ubuntu怎么安裝VMware Tools?Ubuntu想要安裝VMware Tools,該怎么操作呢?下面我們就來(lái)看看vmware tools安裝詳細(xì)圖文教程2023-11-25Ubuntu22.04安裝SSH無(wú)法連接的問(wèn)題及解決方法
這篇文章主要介紹了Ubuntu22.04安裝SSH無(wú)法連接的問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-10-23Ubuntu 23.10默認(rèn)將在原生 Wayland 模式下運(yùn)行火狐瀏覽器 Firefox
Ubuntu 23.10 默認(rèn)將在原生 Wayland 模式下運(yùn)行火狐瀏覽器 Firefox,在 Ubuntu 此前版本中也可以通過(guò)手動(dòng)方式,啟用 Firefox 瀏覽器的本地 Wayland 模式2023-09-19