如何找出存储库的名称以便使用`apt-get install -t`指定?

如何找出存储库的名称以便使用`apt-get install -t`指定?

我知道我可以使用以下命令来选择存储库:

apt-get install -t backports|testing|unstable|etc software

我最近不得不使用 mysql-repository /etc/apt/sources.list.d/mysql.list

deb http://repo.mysql.com/apt/debian/ stretch mysql-apt-config
deb http://repo.mysql.com/apt/debian/ stretch mysql-5.7
deb http://repo.mysql.com/apt/debian/ stretch mysql-tools
deb-src http://repo.mysql.com/apt/debian/ stretch mysql-5.7

我如何找到该存储库的名称以使用选项指定它-t

apt-get install -t mysql-community mysql-server
E: The value 'mysql-community' is invalid for APT::Default-Release as such a release is not available in the sources
apt-get install -t mysql-5.7 mysql-server
E: The value 'mysql-5.7' is invalid for APT::Default-Release as such a release is not available in the sources
apt-get install -t mysql mysql-server
E: The value 'mysql' is invalid for APT::Default-Release as such a release is not available in the sources

我也没有找到任何相关信息apt-cache showpkg mysql-server。另外,是否有某种命令可以列出我系统上的所有存储库?

答案1

-t选项不指定存储库,而是指定版本(它是设置的简写APT::Default-Release;请参阅man apt_preferences)。

您可以通过查看其Release文件来了解给定存储库的目标版本,在你的情况下。它指定了stretch(查找Codename:),所以你将无法使用它......

答案2

如果您需要获取有关存储库的信息,请执行:

sudo apt-cache policy

但这并不能帮助你实现你的目标。如果您想从某个特定存储库安装软件包,则您选择的不是存储库,而是特定的软件包版本。要获得该包的所有版本的列表mysql-server,请执行以下操作:

apt-show-versions | grep mysql-server

在我的 Ubuntu 18.04 中,输出是

mysql-server:all/bionic-security 5.7.22-0ubuntu18.04.1 uptodate
mysql-server-5.7:amd64/bionic-security 5.7.22-0ubuntu18.04.1 uptodate
mysql-server-5.7:i386 not installed
mysql-server-core-5.7:amd64/bionic-security 5.7.22-0ubuntu18.04.1 uptodate
mysql-server-core-5.7:i386 not installed

如果您希望指定存储库,只需从 中 grep 即可apt search,例如,对于bionic-updates存储库执行:

apt search linux-image | grep -i bionic-updates

然后选择您需要的版本并安装它,例如:

sudo apt-get install mysql-server-5.7:amd64

因此,适合您的规则是:选择包的版本而不是存储库。

如果您需要旧版本的软件包以避免升级使用apt-mark

sudo apt-mark hold mysql-server-5.7

最后一个命令阻止包升级。使用 unhold 恢复此行为:

sudo apt-mark unhold mysql-server-5.7

另外请参阅我在 Askubuntu 上对类似问题的回答:Ubuntu 16.04 和内核 4.15

您的另一个选择可以是固定,仔细阅读本主题:如何仅安装来自特定存储库的更新?

相关内容