Автоматическая установка PPA

После добавления некоторых PPA из Launchpad в мой репозиторий (add-apt-repository) я хочу установить их автоматически. Насколько я знаю, нет команды установить все новые PPA после apt-get update. И я не могу запустить скрипт, устанавливающий все новые PPA вручную, потому что имя установки некоторых PPA отличается от имени, которое они имеют на веб-сайте / API панели запуска.

2
задан 6 October 2015 в 18:18

1 ответ

Я понимаю, что Вы хотите добавить PPA к своей системе и автоматически установить все пакеты для Вашего выпуска и архитектуры, которую это обеспечивает.

Отказ от ответственности: Я абсолютно не уверен, если то, что Вы хотите сделать, является хорошей идеей. Но если Вы действительно настойчивы и соблюдаете осторожность, быть моим гостем.

Списки пакетов, которые могут быть установлены из репозитория, загружаются и хранятся в

/var/lib/apt/lists/

когда apt-get update выполнения.

Те файлы списка содержат в простом тексте в основном информацию, отображенную, когда Вы делаете apt-cache show <package>. В особенности каждый пакет имеет поле Package: <name-of-package>

Найдите здесь сценарий Python, который извлекает все они Package поля и строки пакет называют вместе. Сохраните его как whatever.py и выполненный как ./whatever.py <packagelist>. Это распечатает соответствующее apt-get install команда, но не выполняет его (это не могло, потому что Вы не выполняете это как корень, Вы...?). Вам решать, и я настоятельно рекомендую, чтобы Вы попробовали -s (моделируйте) сначала!

#!/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."

Например:

enter image description here

Если это приводит действительно к результату, Вы требуете, зависит от PPA и пакетов там.

Используйте на Ваш собственный риск.

2
ответ дан 7 October 2015 в 04:18
  • 1
    Команда sudo service NetworkManager restart решает проблему. Там какой-либо путь состоит в том, чтобы выполнить его автоматически после начальной загрузки, не вводя пароль каждый раз? – YukiJ 5 January 2017 в 06:49

Другие вопросы по тегам:

Похожие вопросы: