После добавления некоторых PPA из Launchpad в мой репозиторий (add-apt-repository
) я хочу установить их автоматически. Насколько я знаю, нет команды установить все новые PPA после apt-get update
. И я не могу запустить скрипт, устанавливающий все новые PPA вручную, потому что имя установки некоторых PPA отличается от имени, которое они имеют на веб-сайте / API панели запуска.
Я понимаю, что Вы хотите добавить 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."
Например:
Если это приводит действительно к результату, Вы требуете, зависит от PPA и пакетов там.
Используйте на Ваш собственный риск.
sudo service NetworkManager restart
решает проблему. Там какой-либо путь состоит в том, чтобы выполнить его автоматически после начальной загрузки, не вводя пароль каждый раз? – YukiJ 5 January 2017 в 06:49