Estou usando o servidor Ubuntu 22.04.3. Eu instalei nala
usando o repositório Volian Scar . Recentemente, este repositório incluiu vários pacotes Python 3 atualizados, incluindo python3-anyio
.
No entanto, este pacote específico não será atualizado:
$ sudo apt full-upgrade
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
python3-mdurl
The following packages have been kept back:
python3-anyio
The following packages will be upgraded:
python3-click python3-httpcore python3-markdown-it python3-pygments python3-rich python3-typer python3-typing-extensions
7 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
...
E se eu tentar forçar install python3-anyio
, recebo o motivo exato:
$ sudo apt install --reinstall --dry-run python3-anyio
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
python3-anyio : Depends: python3-exceptiongroup but it is not installable or
python3 (> 3.11) but 3.10.6-1~22.04 is to be installed
E: Unable to correct problems, you have held broken packages.
Agora é evidente que este pacote atualizado requer "Grupos de Exceção" do Python 3, que estão incluídos no Python 3.11 (o Ubuntu 22.04 usa Python 3.10) ou no pacote backportado python3-exceptiongroup
.
A pesquisa por este pacote no arquivo de pacotes do Ubuntu revela que este pacote faz parte do repositório Universe, mas apenas para Ubuntu 23.04 (Lunar) ou 23.10 (Mantic).
Quais opções eu tenho para evitar problemas de dependência nesta situação quando ainda quero atualizar meus pacotes?
Para sua informação, isso já foi relatado como um problema com Volian . Presumo que o pacote python3-exceptiongroup
deva ser adicionado ao repositório Volian no futuro.
ALAS, python3-exceptiongroup
já foi adicionado ao repositório Volian Scar, então agora esse erro de dependência não aparece mais. Ainda assim, o método nestas perguntas e respostas poderia ser usado em outras situações semelhantes.
Geralmente, você terá duas opções aqui:
python3-anyio
(para que este pacote específico não seja atualizado) oupython3-exceptiongroup
manualmente.1. Segure o pacote
python3-anyio
Execute este comando para reter o pacote
python3-anyio
:Veja pacotes retidos com:
Agora, quando você executa um comando de atualização,
python3-anyio
sempre permanecerá na versão atual.Se você desejar atualizar o pacote posteriormente, solte-o com:
2. Instale
python3-exceptiongroup
manualmenteEste método requer que você baixe manualmente uma cópia do
python3-exceptiongroup
pacote e instale-o. Nesse caso, eu optaria por baixar a versão mais recente diretamente do repositório Debian Sid. (Como este é um pacote complementar para Python 3, imagino que o risco de outro problema de dependência aqui seja insignificante.)Em seguida, instale-o:
Agora
python3-anyio
terá atendido suas dependências, o que fica evidente ao executar:Agora você pode finalmente executar seu comando de atualização completo sem que nenhum pacote seja retido: