如何在基于 Debian 的系统中暂时禁用和永久禁用存储库?

如何在基于 Debian 的系统中暂时禁用和永久禁用存储库?

我知道如何在基于 Red Hat 的系统上执行此操作。

 yum –disablerepo=*  --enablerepo=epel update

上述命令将暂时禁用所有存储库并启用 epel 并仅更新 epel 软件包。

 yum update–disablerepo=remi-safe,updates

这还将禁用两个存储库,同时更新所有其他启用存储库。

例如,在 ubuntu 上与上述等效的是什么?

我知道我们可以在/etc/apt/sources.list.d

但这会永久禁用该存储库,对吧?

apt-get update例如,有没有一种方法可以在暂时禁用一个存储库的情况下运行?

答案1

我发现管理存储库的最简单方法是将它们放在/etc/apt/sources.list.d/.这样,禁用存储库就像将文件从 移动/etc/apt/sources.list.d/repo.list到一样简单/etc/apt/sources.list.d/repo.list.bak,而重新启用存储库就像走另一条路一样简单。您甚至可以创建一个脚本,通过移动文件、运行更新/安装/其他内容,然后再次将文件移回来临时禁用存储库。

答案2

最初的问题是如何在禁用存储库的情况下运行 apt 以便仅执行一次。确实没有一个简单的方法可以做到这一点。从技术上讲,您可以使用 -o 和/或 -c 选项为 apt 命令提供不同的配置,但这可能比其价值更多的努力。

使用 add-apt-repository 命令您可以轻松添加和删除存储库。这是我能看到的解决原始问题的最实用的方法。

如果您正在谈论限制、宇宙、多重宇宙等分布组件之一,那么您可以只使用该关键字:

sudo add-apt-repository --remove multiverse
sudo apt update
sudo apt install whatever
sudo add-apt-repository multiverse

否则你需要使用完整的 deb 行:

repo="deb http://some.repo.com/foo bionic main"
sudo add-apt-repository --remove "$repo"
sudo apt update
sudo apt install whatever
sudo add-apt-repository "$repo"

将从--removesources.list 中删除存储库以及sources.list.d 中的任何.list 文件。但是,应该注意的是(除非您的存储库采用的形式ppa:user/somerepo)再次添加它会将其放入sources.list中——而不是放在sources.list.d中的文件中。

相关内容