Posso redefinir todos os pacotes para as versões do repo sem o ppa-purge?

4

Isso é apenas uma teoria para mim (é um problema real para outro usuário), mas digamos:

  • Eu atualizo uma carga de pacotes de um PPA para 12.04
  • atualizo para 14.04
  • Alguns pacotes são mantidos porque meus pacotes atualizados pelo PPA têm versões mais recentes que estão quebrando dependências

A essa altura, acho que é muito tarde para que ppa-purge seja útil. Hypothetical-Oli deveria ter corrido ppa-purge antes da atualização ... Mas o que está feito está feito. Como podemos transformar esse impasse de dependência em um sistema atualizável e funcional?

Idealmente, enviamos tudo com versões do Ubuntu-repo de volta para essas versões ... Mas como posso fazer isso?

    
por Oli 21.05.2014 / 18:37

2 respostas

0

  • Idealmente ppa-purge deve funcionar, pois é o mesmo procedimento. O PPA sempre tem uma versão mais alta que os dois precise e trusty .

  • O único caso em que penso é quando se trata de pacotes absolutos ou renomeados (Se um pacote temporário não é fornecido).

    Nesse caso, eu sugeriria:

    1. Adicione todos os repositórios precisos.

      echo -e "deb http://archive.ubuntu.com/ubuntu/ precise main universe multiverse restricted\ndeb http://security.ubuntu.com/ubuntu/ precise-security main universe multiverse restricted\ndeb http://archive.ubuntu.com/ubuntu/ precise-update main universe multiverse restricted" | sudo tee /etc/apt/sources.list.d/precise.list
      
    2. Atualizar listas de pacotes

      sudo apt-get update
      
    3. Purgue o PPA

      sudo ppa-purge ppa:...
      

      Se não funcionou, tente:

      sudo ppa-purge -d precise ppa:...
      

      Você também pode tentar aptitude , que fornece soluções com downgrade.

      Às vezes, a correção manual é a única opção.

      • Você pode usar esses pacotes sem seus dependentes, usando

        sudo dpkg -r --force-depends ...
        ##disable ppa source then
        sudo apt-get -f install
        
      • Ou force a instalação de uma versão específica do repositório oficial. Mas você tem que colocar todos os pacotes relacionados no mesmo comando.

        sudo apt-get install pkg1=ver1 pkg2=ver2 ...
        
      • No pior caso, você pode baixar os pacotes com a versão do repositório oficial e forçá-los a instalá-los usando:

        sudo dpkg -i --force-depends ...
        

        AFAIK APT não tem que fazer isso.

por user.dz 24.11.2016 / 00:05
0

Você precisa criar um arquivo (digamos 00_reset_ppas ) na pasta /etc/apt/preferences.d com o seguinte conteúdo

Package: *
Pin: release o=Ubuntu
Pin-Priority: 1100

Depois disso, execute

sudo apt update
sudo apt full-upgrade

e a maioria dos (ou melhor ainda) todos os pacotes de PPAs seriam substituídos dos padrões que vêm com o Ubuntu, desde que não haja conflitos nanimg (isto é, pacotes com nomes diferentes em ppas) que possam introduzir conflitos.

    
por jsalatas 24.11.2016 / 07:51