Я хотел новую установку Python и работал sudo apt-get remove --purge python
. По-видимому, это уничтожило почти все, что я установил в своей системе.
Взгляд на history.log
Я предполагаю, что мог вручную установить пакеты снова, но существуют сотни из них, я не могу только скопировать вставку.
Как ни странно, Python все еще установлен. Я мог выполнить некоторую замену regex с ним так, я могу зафиксировать эту путаницу? Или с ударом.
Сначала я работал sudo apt-get install ubuntu-desktop
, поскольку мне сказали в комментариях, тогда я скопировал часть /var/log/apt/history.log
относительно действия чистки и работал на нем следующий сценарий Python, который я сделал. Вероятно, кто-то более квалифицированный в regex кричал бы при наблюдении, как я сделал это, но это работало на меня:
import re
f = open('remove.log', 'r')
s = ""
for i in f:
s += i + '\n'
s = re.sub(':.*?', '', s)
s = re.sub(r'\([^)]*\)', '', s)
s = re.sub(',', '', s)
s = re.sub('amd64', '', s)
f = open('replaced.txt', 'w')
f.write(s)
Тогда я видел Install
блок и Purge
блок в replaced.txt
, таким образом, я буду всего sudo apt-get install
все пакеты в первом блоке, и затем во втором.
И voilГ, по-видимому.
У меня была подобная проблема. сценарий @dabadaba работал отлично, но я нашел, что вручную установка каждого пакета была немного утомительна.
Вот сценарий Python, который я записал для автоматизации установки пакетов, перечисленных в replaced.txt
файл, созданный в ответе @dabadaba
import subprocess
f = open('replaced.txt', 'r')
for line in f:
if line.startswith('Install') or line.startswith('Purge'):
packages = line.split()
for in in range(1, len(packages):
print 'Do you want to install ' + packages[i] + '? [y/n]'
input = raw_input()
if input == 'y':
print 'beginning install'
p = subprocess.Popen('apt-get install ' + packages[i], shell=True)
p.wait()
else:
print 'not installing'