Система Ubuntu не работает после случайного удаления многих пакетов

Я случайно удалил все пакеты, начиная с имени jpeg:

sudo apt-get remove jpeg*

Это испортило много вещей, удалило Unity, Firefox, Flash Player и т. Д.

Мне как-то удалось восстановить рабочий стол и единство, но тогда многие вещи все еще глючили. Например, .rpm файлы и .tag.gz просто не открываются вообще.

То, что я хочу, это способ исправить все, что не так. Что-то, что эквивалентно «восстановительной установке» с диском Windows.

Любые советы, кто-нибудь?

20
задан 12 December 2017 в 15:18

6 ответов

Вы можете установить задачу ubuntu-desktop :

sudo apt-get install ubuntu-desktop^

Это установит все пакеты стандартного рабочего стола Ubuntu, которые вы удалили. Он не будет восстанавливать установленные вами пакеты, которые не являются частью стандартного рабочего стола (т. Е. Переустановит Unity и Firefox, но не Flash player).

Чтобы установить эти пакеты, вы можете заглянуть в / var / log / apt / history.log и посмотрите, что именно вы удалили.

Примечание: установка задачи ubuntu-desktop ^ - это не то же самое, что установка пакет ubuntu-desktop . Первый даст APT несколько подсказок по устранению зависимостей, связанных с виртуальными пакетами, второй даст APT свободу выбора пакетов (и в конечном итоге установит бесполезные вещи, такие как ubiquity ).

Почему возникла проблема. ? apt-get remove jpeg * не удалит все пакеты, начинающиеся с jpeg . Вместо этого он удалит все пакеты, содержащие jpe в своем имени. Это связано с тем, что apt-get работает с регулярным выражением, поэтому jpeg * означает: все, что содержит jpe , за которым следует ноль или более g .

.
41
ответ дан 12 December 2017 в 15:18

Я запускаю sudo apt-get purge wine * в Ubuntu 15.10, поэтому нет графического интерфейса при загрузке только через терминал входа в систему.

Как предположил Элиа Каган, я использовал информацию из /var/log/apt/history.log Я запустил nano в history.log и создал простой сценарий, содержащий sudo apt-get install для всех очищенных пакетов, которые я нашел в строке:

Purge: evolution:amd64 (3.16.5-1ubuntu3.1), libtotem-plparser18:amd64 (3.10.5-1) ...... etc

Но сначала мне пришлось вручную удалить текст между всеми: и, включая:,

на этом этапе новый сценарий будет полезен, потому что пакетов были сотни. после этого я запустил сценарий и удалил несколько пакетов Невозможно найти пакеты (которые я установил вручную). запустите сценарий еще раз, и все. Все работает нормально ... к счастью

1
ответ дан 12 December 2017 в 15:18

Установите пакет ubuntu-desktop Install ubuntu-desktop

sudo apt-get update && sudo apt-get install ubuntu-desktop

Он установит необходимые пакеты для вашей системы.

0
ответ дан 12 December 2017 в 15:18

Nesoriko tsy nahy libssl1.0.0 ary kilemaina ny masinako. Mba hamerenana amin'ny laoniny dia nataoko:

  1. Arovy ny vatan'ireo nesorina cp /var/log/apt/term.log ~ / libssl.term.log
  2. Fafao ireo tsipika tsy misy ifandraisany amin'ny hetsika libssl vi ~ / libssl.term.log
  3. Raha tsy misy ny tambajotra (tsy afaka ping google.com ), dia avereno amin'ny fomba fanarenana ary ampidino ny tambajotram-pifandraisana
  4. Mametaka fonosana nesorina saka ~ / libssl.term.log | grep ^ Fanesorana | sed -e 's / ^ Fanesorana // g; s / (. * $ // g; / fifandimbiasana / d; / fihantona symlinks / d' | xargs sudo apt-get -y hametrahana
0
ответ дан 12 December 2017 в 15:18

Вот небольшой питоновый скрипт, в котором вы можете записать (непригодную) строку пакета из своего массового деинсталлятора, которая находится на /var/log/apt/history.log. Он выдаст строку, которую вы можете скопировать вставить в команду apt-get install, чтобы легко установить все удаленные пакеты.

import re

apt_str = u"INSERT YOUR PACKAGE STRING HERE, BETWEEN THE QUOTES"

match =  re.findall(r'([\w\d\.-]+).+? \(.+?\)', apt_str)
print " ".join(match)
0
ответ дан 12 December 2017 в 15:18

Лучший способ для вас для решения этой проблемы может потребоваться переустановка Ubuntu. (Вы должны сначала создать резервную копию своих документов, даже если вы планируете переустановить без переформатирования.)

Если вы действительно хотите попытаться исправить систему на месте, просмотрите файлы журнала диспетчера пакетов, чтобы узнать, какие пакеты были удалены. и переустановите их:

  • /var/log/dpkg.log (полная информация, но трудна для чтения)
  • /var/log/apt/history.log (сокращенно сообщит вам каждый пакет удален или иным образом изменен - ​​вероятно, ваш лучший выбор)
  • /var/log/apt/term.log (если вы удалили пакеты с apt-get в терминале, это должно показать то, что вы видели тогда, включая списки пакетов, которые собирались удалить - так что этот может быть лучшим способом)

Повторная установка только пакетов, имена которых начинаются с jpeg , не будет работают, потому что многие (почти наверняка большинство) удаленных пакетов были удалены, потому что они полагались на эти пакеты.

В будущем я рекомендую осторожно y проверка последствий удаления пакета. Если вы работаете из командной строки, вы всегда будете получать уведомления. (Если вы не используете параметр -y , и в этом случае обычно нет. Я не рекомендую использовать этот параметр, если вы не знаете, что делаете, особенно для удаления.)

Один из способов проверить наличие Последствиями операции управления пакетами, выполняемой с помощью apt-get , без риска их возникновения, является выполнение apt-get -s вместо sudo apt-get . Это просто имитирует указанное действие и сообщает, какие пакеты будут затронуты в результате и как.

12
ответ дан 12 December 2017 в 15:18

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

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