Склонная Отмена - добирается, удаляют - чистка

Я хотел новую установку Python и работал sudo apt-get remove --purge python. По-видимому, это уничтожило почти все, что я установил в своей системе.

Взгляд на history.log Я предполагаю, что мог вручную установить пакеты снова, но существуют сотни из них, я не могу только скопировать вставку.

Как ни странно, Python все еще установлен. Я мог выполнить некоторую замену regex с ним так, я могу зафиксировать эту путаницу? Или с ударом.

3
задан 11 September 2014 в 13:01

2 ответа

Сначала я работал 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Г, по-видимому.

6
ответ дан 17 November 2019 в 19:19

У меня была подобная проблема. сценарий @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'
3
ответ дан 17 November 2019 в 19:19

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

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