AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 707670
Accepted
Lockszmith
Lockszmith
Asked: 2022-06-27 21:13:24 +0800 CST2022-06-27 21:13:24 +0800 CST 2022-06-27 21:13:24 +0800 CST

Livrando-se de "Os seguintes pacotes serão DOWNGRADED"

  • 772

Vou começar afirmando que tenho certeza de que essa é uma bagunça única do meu próprio design, mas espero que alguém tenha encontrado isso e possa ajudar.

A configuração

Meu laptop roda Pop!_OS 22.04 (Baseado no Ubuntu Jammy). Eu realmente gosto dos pacotes xscreensaver , mas os repositórios de lançamento Debian/Ubuntu/Pop!_OS contêm uma versão desatualizada, e apenas sid (também conhecido como Unstable) contém o pacote atualizado * .

Sem problemas, é por isso que a fixação existe, e é assim que eu configurei:

/etc/apt/preferences.d/unstable-200Arquivo:

Package: *
Pin: release a=unstable
Pin-Priority: 200

/etc/apt/preferences.d/xscreensaver-2000Arquivo:

Package: xscreensaver*
Pin: release a=unstable
Pin-Priority: 2000

/etc/apt/sources.list.d/debian.sid.listArquivo:

deb [arch=amd64] http://http.us.debian.org/debian sid main contrib non-free

Isso realmente funciona, neste momento, a execução sudo apt install xscreensaverinstala as versões atualizadas. No entanto, há um efeito colateral estranho.

O problema

Quando executo sudo apt updateseguido por sudo apt upgrade, recebo a seguinte saída:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be DOWNGRADED:
  alsa-topology-conf appmenu-gtk-module-common aspell-en ca-certificates
  chrome-gnome-shell dictionaries-common dns-root-data emacsen-common folks-common
  fonts-arphic-ukai fonts-noto-cjk fonts-noto-cjk-extra fonts-noto-color-emoji
  fonts-urw-base35 friendly-recovery gir1.2-flatpak-1.0 gir1.2-gdkpixbuf-2.0
  gir1.2-graphene-1.0 gir1.2-gtksource-4 gir1.2-polkit-1.0 gir1.2-secret-1
  gir1.2-soup-2.4 gsfonts gsfonts-x11 hunspell-ar hunspell-de-at-frami
  hunspell-de-ch-frami hunspell-de-de-frami hunspell-en-au hunspell-en-ca hunspell-en-gb
  hunspell-en-us hunspell-en-za hunspell-es hunspell-fr hunspell-fr-classical hunspell-it
  hunspell-pt-br hunspell-pt-pt hunspell-ru hyphen-de hyphen-en-gb hyphen-es hyphen-fr
  hyphen-it hyphen-pt-br hyphen-pt-pt ieee-data javascript-common klibc-utils
  laptop-detect liba52-0.7.4 libappmenu-gtk2-parser0 libbytesize-common libffi8
  libflatpak-dev libgl1 libgles2 libgutenprint-common libgweather-4-0 libio-stringy-perl
  libjs-jquery libldacbt-abr2 libmpcdec6 libmysofa1 libopengl0 libpolkit-gobject-1-0
  libsndio7.0 libsoup-gnome2.4-1 libtermkey1 libvterm0 libwacom-common libxkbcommon0
  mythes-ar mythes-de mythes-de-ch mythes-en-au mythes-en-us mythes-es mythes-fr
  mythes-it mythes-pt-pt mythes-ru neovim-runtime netbase pass policykit-1 poppler-data
  powermgmt-base printer-driver-all python3-certifi python3-fido2 python3-jinja2
  python3-launchpadlib python3-lazr.uri python3-macaroonbakery python3-more-itertools
  python3-pkg-resources python3-pyatspi python3-rfc3339 python3-setuptools python3-tz
  python3-wheel python3-ykman sensible-utils sgml-base sgml-data sound-icons ssl-cert
  tpm-udev ucf update-inetd va-driver-all wamerican wbrazilian wbritish wfrench witalian
  wngerman wogerman wspanish wswiss xfonts-base xml-core yubikey-manager
0 upgraded, 0 newly installed, 125 downgraded, 0 to remove and 0 not upgraded.
Need to get 257 MB/283 MB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] 

Isso também elimina a contagem de atualizações do Pop!_OS Shop, com esses pacotes sendo exibidos como atualizações pendentes do sistema operacional.

Solução de problemas

Alguns dados que coletei ao tentar solucionar isso.

Remover /etc/apt/sources.list.d/debian.sid.liste executar sudo apt updateresolve o problema, então eu sei que é apenas um erro de cálculo/lógica falha em algum lugar.

Focando no primeiro pacote da lista alsa-topology-conf:

Embora eu saiba que o erro é completamente superficial, a princípio pensei de aptalguma forma rastrear de onde (qual repositório) o pacote veio, então removi, limpei e reinstalei o pacote. Não fez diferença.

sudo apt remove alsa-topology-conf
sudo apt clean
sudo apt update
sudo apt install alsa-topology-conf

Executando apt policy alsa-topology-conf, os resultados são:

alsa-topology-conf:
  Installed: 1.2.5.1-2
  Candidate: 1.2.5.1-2
  Version table:
 *** 1.2.5.1-2 200
        200 http://http.us.debian.org/debian sid/main amd64 Packages
        100 /var/lib/dpkg/status
     1.2.5.1-2 501
        501 http://us.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
        501 http://us.archive.ubuntu.com/ubuntu jammy/main i386 Packages

Parece que ambos side jammytêm exatamente a mesma versão e, por algum motivo, aptcombinam o pacote com a 200prioridade, em vez da 501entrada de prioridade.

Com /etc/apt/sources.list.d/debian.sid.listremovido, a saída fica assim:

alsa-topology-conf:
  Installed: 1.2.5.1-2
  Candidate: 1.2.5.1-2
  Version table:
 *** 1.2.5.1-2 501
        501 http://us.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
        501 http://us.archive.ubuntu.com/ubuntu jammy/main i386 Packages
        100 /var/lib/dpkg/status

Perguntas relacionadas

A seguir estão perguntas relacionadas com situações semelhantes, mas nenhuma das respostas me ajudou a entender ou resolver isso.

  • apt fixando prioridade restrita
  • Debian 10: Por que alguns pacotes SSL serão rebaixados?
  • Como se livrar da mensagem apt "Pacotes foram rebaixados e -y foi usado sem --allow-downgrades"

Eu tentei todas as respostas nas perguntas acima, mas nenhuma parece ser relevante ou funcionar.

Minha pergunta

Alguém tem alguma sugestão de como conciliar isso para que o sistema não pense constantemente que esses pacotes precisam ser DOWNGRADED?

debian apt
  • 2 2 respostas
  • 1978 Views

2 respostas

  • Voted
  1. Best Answer
    Stephen Kitt
    2022-06-28T01:59:11+08:002022-06-28T01:59:11+08:00

    A resposta básica é que você está fazendo algo que não deveria, ou seja, misturar repositórios entre versões (e distribuição) . Extrair pacotes Debian em uma distribuição baseada no Ubuntu é uma má ideia. xscreensaverestá disponível em versões posteriores do Ubuntu , o que seria menos perigoso de usar, mas mesmo isso é uma má ideia.

    Dada toda a investigação que você fez e os detalhes que você forneceu, vale a pena explicar o comportamento que você está vendo aqui. Todos os pacotes que são oferecidos para “downgrade” têm a propriedade compartilhada de estarem disponíveis na mesma versão no Debian e no Ubuntu; no entanto, eles não são os mesmos pacotes, pois todos os pacotes importados do Debian são reconstruídos no Ubuntu.

    A primeira característica aptque entra em jogo aqui é que as prioridades de pin só escolhem versões . Para qualquer pacote disponível em versões diferentes em seus repositórios, as prioridades dos pinos farão a distinção entre eles. Para qualquer pacote disponível na mesma versão em seus repositórios, eles não serão. O próximo recurso se aplica: quando vários repositórios fornecem a mesma versão, o primeiro listado vence . Isso combina com outro recurso do apt, que é que um pacote instalado com um determinado hash será substituído por um pacote de repositório com a mesma versão se os hashes não corresponderem (há uma pergunta e resposta sobre isso em algum lugar aqui, mas não consigo encontrar isso agora).

    O resultado de tudo isso é que para todos os pacotes fornecidos pelo Pop!_OS (Ubuntu under the hood), cujas versões no Jammy correspondem exatamente à versão atual no Debian instável, aptconsideraremos substituí-los pela versão do Debian. Não tenho certeza por que os identifica como downgrades.

    Se você fosse em frente com isso, você substituiria vários pacotes Pop!_OS por seus “equivalentes” Debian; há uma boa chance de que isso realmente funcione, mas também há a possibilidade de que diferenças sutis nas bibliotecas usadas causem problemas. Você acabaria com uma configuração totalmente não testada.

    Para desfazer isso, você deve remover sid.list, atualizar seus repositórios e reinstalar explicitamente qualquer pacote que você “rebaixou”:

    sudo apt reinstall alsa-topology-conf
    
    • 27
  2. Lockszmith
    2022-06-28T13:39:31+08:002022-06-28T13:39:31+08:00

    Obrigado Stephen Kit

    Para ser claro, a resposta de Stephen Kitt é a selecionada.
    No entanto, como OP, estou adicionando os detalhes para resolver meu problema específico (caso alguém ache interessante).

    Como Stephen tão graciosamente e pacientemente apontou o que está bem documentado, mas ainda assim eu não consegui entender/ler corretamente:

    Escolher qual pacote pegar é um processo de 2 fases:

    1. As prioridades determinam qual versão pegar.
    2. Só então aptpega o primeiro repositório que tem essa versão específica listada.
      • Primeiro ele olha no /etc/apt/sources.listarquivo
      • Em seguida, ele procura em /etc/apt/sources.list.ddir, classificando os arquivos no diretório em ordem lexical (basicamente o que lsfaz por padrão)

    Meu problema

    Não especificado na minha pergunta, foi o fato de que os arquivos de origem do Pop!_OS foram listados no /etc/apt/sources.list.ddiretório e são nomeados:

    pop-os-apps.sources
    pop-os-release.sources
    system.sources
    

    Isso significa que sid.listou debian.sid.listquando classificado com a lista acima, ainda aparecerá antes system.sources de onde o repositório Jammy do Ubuntu é especificado.

    Resolvendo o problema - uma resposta

    Para resolver o cenário específico que descrevi na minha pergunta, a solução para mim foi renomear sid.listpara zzz.sid.listque garantirá que os pacotes sidsempre sejam escolhidos por último.

    Aqui está como apt policy alsa-topology-conffica após esta correção:

    1.2.5.1-2   Candidate: 1.2.5.1-2   Version table:  *** 1.2.5.1-2 501
            501 http://us.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
            501 http://us.archive.ubuntu.com/ubuntu jammy/main i386 Packages
            100 /var/lib/dpkg/status
         1.2.5.1-2 200
            200 http://http.us.debian.org/debian sid/main amd64 Packages
            200 http://http.us.debian.org/debian sid/main i386 Packages
    

    A resposta correta

    Quando possível, isso não deve ser necessário, e especificamente com esta versão mais recente do Pop!_OS, a versão subjacente do Ubuntu finalmente atualizou os pacotes xscreensaver e eles realmente correspondem aos do sid.

    Para encurtar a história, pensei (a partir de experiências anteriores) que precisava hackear o sistema, enquanto nesta situação específica, não precisava, e a solução era não tentar.

    Mas, novamente - eu aprendo melhor quando quebro coisas, e essa foi uma lição incrível, e agradeço às pessoas que dedicaram um tempo para ler e responder.

    • 17

relate perguntas

  • Configuração do GRUB para reconhecer diferentes ambientes de desktop (instalações) da mesma distribuição Linux

  • astyle não altera a formatação do arquivo de origem

  • Recebendo e-mail em um novo Debian fresco

  • Debian Stretch: gnome-software segfault em libgs_plugin_systemd-updates.so

  • Como digitar ü no Pinyin IME?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve