Como descobrir o nome do repositório para especificar com 'apt-get install -t'?

0

Eu sei que posso usar os seguintes comandos para escolher um repositório:

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

Recentemente tive que trabalhar com o repositório mysql em /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

Como eu poderia descobrir o nome desse repositório para especificá-lo com a opção -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

Também não encontrei nenhuma informação sobre isso em apt-cache showpkg mysql-server . Além disso, existe algum tipo de comando que listará todos os repositórios no meu sistema?

    
por chevallier 24.07.2018 / 17:45

2 respostas

1

A opção -t não especifica um repositório, ele especifica uma versão (é curta para a configuração APT::Default-Release ; consulte man apt_preferences ).

Você pode ver qual release um determinado repositório segmenta observando seu arquivo Release , aqui em seu caso . Isso especifica stretch (procure Codename: ), então você não poderá usar isso ...

    
por 24.07.2018 / 17:59
0

Se você precisar obter informações sobre seus repositórios, execute:

sudo apt-cache policy

Mas isso não pode ajudá-lo a alcançar seu objetivo. Se você deseja instalar um pacote de algum repositório específico, selecione não um repositório, mas uma versão específica do pacote. Para ter uma lista de todas as versões para o pacote mysql-server , faça:

apt-show-versions | grep mysql-server

No meu Ubuntu 18.04, a saída é

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

Se você deseja especificar um repositório, basta utilizá-lo em apt search , por exemplo, para bionic-updates repository execute:

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

Depois selecione a versão que você precisa e instale-a, por exemplo:

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

Assim, a regra para você é: selecionar a versão do pacote em vez do repositório.

Se você precisar de uma versão mais antiga do pacote para evitar a atualização, use apt-mark :

sudo apt-mark hold mysql-server-5.7

O último comando impede a atualização do pacote. Use unhold para reverter este comportamento:

sudo apt-mark unhold mysql-server-5.7

Além disso, veja minha resposta para uma pergunta semelhante no Askubuntu: Ubuntu 16.04 e kernel 4.15

Outra opção para você pode ser pinagem , leia atentamente este tópico: Como instalar apenas atualizações de um repositório específico?

    
por 24.07.2018 / 18:23

Tags