Instalando Automaticamente os PPAs

2

Depois de adicionar alguns PPAs do Launchpad ao meu repositório ( add-apt-repository ), quero instalá-los automaticamente. Tanto quanto sei, não há comando para instalar todos os novos PPAs após apt-get update . E não posso executar um script instalando todos os novos PPAs manualmente, porque o nome de instalação de alguns PPAs é diferente do nome que eles têm no site / API da barra de ativação.

    
por Maximilian 06.10.2015 / 17:18

1 resposta

2

Eu entendo que você deseja adicionar um PPA ao seu sistema e instalar automaticamente todos os pacotes para sua versão e arquitetura que ele fornece.

Aviso: Não tenho certeza se o que você quer fazer é uma boa ideia. Mas se você for realmente insistente e proceder com cautela, seja meu convidado.

As listas de pacotes que podem ser instaladas de um repositório são baixadas e armazenadas em

/var/lib/apt/lists/

quando apt-get update é executado.

Esses arquivos de lista contêm em texto simples basicamente as informações exibidas quando você faz apt-cache show <package> . Em particular, cada pacote tem um campo Package: <name-of-package>

Encontre aqui um script Python, que extrai todos os campos Package e agrupa os nomes dos pacotes. Salve como whatever.py e execute como ./whatever.py <packagelist> . Ele imprimirá o comando apt-get install apropriado, mas não o executará (não é possível porque você não está executando isso como root, você está ...?). Isso é com você, e eu sugiro que você tente com -s (simular) primeiro!

#!/usr/bin/env python

import sys
import re

if len(sys.argv)<2:
        print "Usage: "+sys.argv[0]+" PACKAGELIST"
        quit()

try:
        packages = []
        infile = open(sys.argv[1],'r')
        for line in infile:
                p = re.match(r"Package: (\S+)", line)
                if p:
                        packages.append(p.group(1))
        infile.close()
        print "apt-get install -s "+" ".join(packages)

except IOError:
        print "File "+sys.argv[1]+" not found."

Por exemplo:

Se isso produzir verdadeiramente o resultado que você deseja depende do PPA e dos pacotes de lá.

Use a seu próprio risco.

    
por Nephente 06.10.2015 / 18:41