首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找出存储库的名称,以便使用“specify install -t`”指定?

如何找出存储库的名称,以便使用“specify install -t`”指定?
EN

Unix & Linux用户
提问于 2018-07-24 15:45:46
回答 2查看 1.6K关注 0票数 0

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

代码语言:javascript
复制
apt-get install -t backports|testing|unstable|etc software

最近,我不得不使用/etc/apt/sources.list.d/mysql.list中的mysql存储库:

代码语言:javascript
复制
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选项指定它?

代码语言:javascript
复制
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上找到任何有关这方面的信息。另外,是否有某种命令会列出我的系统上的所有存储库?

EN

回答 2

Unix & Linux用户

发布于 2018-07-24 15:59:46

-t选项没有指定存储库,而是指定了一个发行版( APT::Default-Release设置是简短的;参见man apt_preferences)。

通过查看给定存储库的Release文件在你的情况下,您可以看到它发布了什么版本。指定stretch (查找Codename:),因此您将无法使用.

票数 0
EN

Unix & Linux用户

发布于 2018-07-24 16:23:59

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

代码语言:javascript
复制
sudo apt-cache policy

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

代码语言:javascript
复制
apt-show-versions | grep mysql-server

在我的Ubuntu18.04中,输出是

代码语言:javascript
复制
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

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

代码语言:javascript
复制
apt search linux-image | grep -i bionic-updates

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

代码语言:javascript
复制
sudo apt-get install mysql-server-5.7:amd64

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

如果您需要更早版本的包以避免其升级,请使用apt-mark

代码语言:javascript
复制
sudo apt-mark hold mysql-server-5.7

最后一个命令阻止包升级。使用“取消”可还原此行为:

代码语言:javascript
复制
sudo apt-mark unhold mysql-server-5.7

此外,请参阅我在Askubuntu:Ubuntu16.04和内核4.15上的类似问题的答案。

您可以选择的另一个选项是钉扎,请仔细阅读以下主题:如何只从特定的存储库安装更新?

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/458175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档