"ppa-purge"和"add-apt-repository -r"之间的区别是什么?

主要区别是什么?ppa-purge和add-apt-repository -r之间的主要区别是什么?哪一个更好地清除残留项,为什么要使用其中一个而不是另一个? add-apt-repository -r是否应该做ppa-purge所做的事情?
另外,两者都会从apt的密钥环中删除密钥吗?
2个回答

据我所了解,区别在于他们在移除 PPA 之后的操作。 ppa-purge - 禁用 PPA 并回滚到官方软件包(如果适用)。例如,如果我添加了 xorg-edgers PPA 并安装了 Nvidia 驱动程序,如果我在该 PPA 上执行 ppa-purge,则不仅会禁用 xorg-edgers PPA,还会将 Nvidia 驱动程序从 PPA 中的版本恢复为官方 Ubuntu 软件仓库中的版本。
add-apt-repository -r - 只会移除指定的 PPA,不会回滚任何软件包。
情况可能是这样的:
当你想保留来自PPA的软件包但又想删除实际的PPA时,可以使用add-apt-repository命令。例如,如果你想从一个PPA中添加Ubuntu Tweak软件包,然后又想删除该PPA,你可以使用add-apt-repository命令,这样就能保留Ubuntu Tweak软件包。
当你想回到官方软件包并停止使用更新/实验性软件包的PPA(如内核版本软件包、专有软件包等)时,你可能想使用ppa-purge命令,假设你的意图是回到官方版本。这与删除每个已安装的PPA软件包然后执行以下操作相同:
sudo apt-get update sudo apt-get upgrade sudo apt-get install PACKAGES
对于大多数情况来说,add-apt-repository 应该足以添加和删除 PPA。只有在你真正想要删除一个软件包并安装官方版本的少数情况下,ppa-purge 才能帮助。但这种情况并不常见,因为大多数用户添加 PPA 是为了获得比 Ubuntu 默认版本更好的软件包,比如 Kazam(来自 Kazam PPA)、专有视频驱动程序(来自 swat-x 或 xorg-edgers PPA),甚至是 Google Chrome 和 VirtualBox 等软件。即使他们删除了 PPA,也只需要 2 或 3 条命令就可以从已删除的 PPA 删除当前软件包并安装官方版本。
综上所述,一切都取决于用户对与 PPA 相关的软件包要采取何种操作。

这是否意味着,如果我使用一个存储库来安装官方存储库中没有的软件包,比如像“Ubuntu Tweak”这样的软件包,那么就不需要使用ppa-purge来还原软件包? - Alinwndrld
@Alinwndrld 将会更新回答。 - Luis Alvarado
1@LuisAlvarado 拼写错误很小:“sudo apt-get ugprade” :) - Paddy Landau
@Alinwndrld 至少开发版的 ppa-purge 在那种情况下会删除软件包。你也可以测试一下我的版本ppa-purge,它包括许多改进。它还可以删除除PPA之外的其他存储库,因此也许最好将其称为 remove-apt-repository - jarno
以上评论的更新链接在此处:这里 - Carolus

“apt-add-repository”命令的man页对该命令进行了如下解释:
   REPOSITORY can  be  either  a  line  that  can  be  added  directly  to
   sources.list(5),  in the form ppa:<user>/<ppa-name> for adding Personal
   Package Archives, or a distribution component to enable.

   In  the   first   form,   REPOSITORY   will   just   be   appended   to
   /etc/apt/sources.list.

   In  the second form, ppa:<user>/<ppa-name> will be expanded to the full
   deb  line  of  the  PPA  and   added   into   a   new   file   in   the
   /etc/apt/sources.list.d/  directory.   The  GPG public key of the newly
   added PPA will also be downloaded and added to apt's keyring.

   In the third form, the given distribution component will be enabled for
   all sources.  

和:

-r, --remove Remove the specified repository  

所以add-apt-repository只是在/etc/apt/sources.list/etc/apt/sources.list.d/中添加和删除行。 ppa-purge的手册上说:
NAME
       ppa-purge - disables a PPA and reverts to official packages

DESCRIPTION
       This script provides a  bash  shell  script  capable  of  automatically
       downgrading all packages in a given PPA back to the ubuntu versions.

       You  have  to  run  it  using  root  privileges  because of the package
       manager.  

所以ppa-purge不仅会删除PPA,还会将任何软件包降级到它们的默认版本。这在测试软件的beta版或更新版本时非常有用。

是否同时从apt的密钥环中删除ppa密钥? - Alinwndrld
@Alinwndrld 应该可以。 - Seth
@Alinwndrld 点击这里查看。至于ppa-purge,目前还没有。那些密钥有害吗? - jarno