Автор Тема: Полный треш после обновления системы.  (Прочитано 23378 раз)

Оффлайн Пурпур

  • Завсегдатай
  • *
  • Сообщений: 131
    • Email
Здравствуйте. У меня следующая проблема.

После первоначальной установки дистрибутива АльтЛинук, я не устанавливал никаких обновлений. Теперь вот решил обновится. Загрузчик нашел очень много файло, которые нужно было скачать, в общем долго качал, потом долго что-то устанавливал.

После этого - я не мог уже выключить ноутбук. Т.е. часть иконок просто перестала работать. Кратковременное нажатие кнопки "выкл" тоже ни к чему не приводило, хотя должен был появляться черный экран с выбором - перезагрузка, выкл, смена пользователя.

Поэтому, пришлось просто вырупить ноутбук, длительным нажатием "выкл".

После включения ноута обнаружилось следующее:

1. Нет почти всех иконок. Файлы отображаются крестиками, как неопознанные. При попытке открыть картинки, окрывалась какая-то левая программа. После докачки файлов, эта проблема исчезла. Почему сразу эти файлы не докачались - непонятно.

2. Нет иконо выбора сети. Т.е. не отображается, какая сеть - FiWi или шланг. Вообще, полоса в низу, работает не корректно. Там не корректно отображаются элементы. Некоторых нет. В окошке меню - иконок нет.
Эта проблема исчезла после того, как еще раз перезагрузил ноутбук.
3. Принтскрин сделать не могу, т.к. принтскрин перестал работать.

4. В настройках системы исчезли опции. Нет настройки тачпада (сенсорной панели на ноутбуке) и чего-то еще.

5. По другому стала работать видеокарты. Видно, что качество прорисовки упала. Такое ощущение, что видео стало работать в другом режиме - упрощенном. Но это предположение.

6.  Куча мелких косяков. В общем, такое ощущение, что половина файлов установилась как-то неккоректно.

Что-то можно сделать? Я даже не нашел установщик пакетво из рипозитария. Нет такого элемента в меню. Хотя, когда докачивал обновления, он появлялся.

И самое главное - перестал работать интеренет от телефона. К простому WiFi подключается, а к телефону не хочет, хотя, до обновления - подключался.

Помогите, пожалуйста, решить проблему.
« Последнее редактирование: 25.04.2019 15:56:57 от Пурпур »

dango

  • Гость
После первоначальной установки дистрибутива АльтЛинук, я не устанавливал никаких обновлений.
Сообщите, пожалуйста, название дистрибутива. И ориентировочное время первоначальной установки.
Поэтому, пришлось просто вырупить ноутбук, длительным нажатием "выкл".
Похожие проблемы я тоже ловил после аварийного выключения во время масштабного обновления системы.

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 233
apt-get clean
apt-get --fix-broken dist-upgrade
« Последнее редактирование: 25.04.2019 17:22:07 от yaleks »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Здравствуйте. У меня следующая проблема.

После первоначальной установки дистрибутива АльтЛинук, я не устанавливал никаких обновлений. Теперь вот решил обновится. Загрузчик нашел очень много файло, которые нужно было скачать, в общем долго качал, потом долго что-то устанавливал.
Это случайно не было обновление ещё и между бранчами? По идее в рамках одного бранча обновление должно нормально проходить, но на списки того, что предлагается доустановить и удалить, стоит смотреть всё равно. Могли за чем-нибудь и не уследить - все же человеки, а не роботы...

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Во время обновления повисли иксы. Процесс установки прервался, теперь у вас куча одинаковых пакетов, короче кошмар. Задачка по восстановлению нетривиальная.

asy, поделитесь опытом.

На будущее. Лучший вариант не нарваться на приятности при обновлении, это перейти в текстовый tty сочетанием клавиш ALT+F2, авторизоваться как root, и обновляться командой

apt-get dist-upgrade

Это наиболее надёжный вариант. В рамках бранча почти всегда обновления проходят нормально. Но от случайного зависания иксов страховки нет. Нужно страховаться самим.

Оффлайн Пурпур

  • Завсегдатай
  • *
  • Сообщений: 131
    • Email
и обновляться командой

apt-get dist-upgrade

Это наиболее надёжный вариант.

Так а сейчас я могу так сделать? Или нет?

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 233
и обновляться командой

apt-get dist-upgrade

Это наиболее надёжный вариант.

Так а сейчас я могу так сделать? Или нет?

лучше добавьте --fix-broken , хотя он и сам скорее всего попросит.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
asy, поделитесь опытом.
Опыт надо как-то скомпановать из https://lists.altlinux.org/pipermail/devel/2019-March/207479.html и https://lists.altlinux.org/pipermail/sisyphus/2019-April/367833.html. Исходя из того, что в /var/cache/apt/archives уже лежат все необходимые пакеты (и зависимосимости проверены, раз установка началась), то их надо просто все поставить. Единственная вероятная проблема это то, что там может быть что-нибудь лишнее, что осталось от предыдущего обновления. Проблема в том, что apt, вытягивая пакеты из репозитория, сохраняет дату, и вполне может оказаться, что был загружен какой-то нужный пакет, который более старый, чем дата предыдущего обновления. В общем, если до начала обновления /var/cache/apt/archives не был очищен (apt-get clean например), то сложно отсортировать на нужное/ненужное. Если эту проблему во внимание не принимать (кстати вот не знаю, может rpm сам в состоянии разрулить эту ситуацию), или посчитать несущественной, то путь какой-то такой, как описано далее.

0. Убедиться, что выжил rpm. Если rpm не выжил, всё может быть сложно. Запустить rpm --rebuilddb. Если тут ошибок не будет, можно читать дальше. Вероятно, что пункты 0 и 1 придётся делать, загрузившись с флешки или CD (например с https://www.altlinux.org/Rescue), если система совсем не загружается. После п1 вероятнее всего уже загрузится. Не выполнять apt-get update до окончания ремонта ОС.

1. Установить все пакеты из кэша без разбора:
cd /var/cache/apt/archives
rpm -Uvh --force --nodeps *.rpm
-v и -h тут просто для того, чтобы процесс видеть.

2. Зачистить дубликаты. Тут два способа. Либо rpm -U <пакет другой версии>, либо новее (но его не будет - мы же только что обновились), либо старее (тогда ещё --force добавить). Либо, если пакет не выглядит важным непосредственно сейчас, можно просто удалить его посредством rpm -e --nodeps --allmatches <пакет> и, лучше сразу же, поставить обратно из /var/cache/apt/archives. Очевидно, что второй способ плохо подходит, например, для glibc. Либо вообще не обращать внимания и прописать, как предлагает apt, Allow-Duplicated, следить за обновлением этих пакетов и удалять из Allow-Duplicated по мере появления обновлений.

3. Посмотреть, что получилось: apt-get --fix-broken dist-upgrade

4. Зачистить лишнее: https://www.altlinux.org/APT_в_ALT_Linux/Советы_по_использованию#apt-scripts:_«ненужное»_и_«не_в_текущем_репо»

По идее, на этом всё.
« Последнее редактирование: 26.04.2019 11:49:17 от asy »

Оффлайн Пурпур

  • Завсегдатай
  • *
  • Сообщений: 131
    • Email
Спасибо. Я конечно попробую, но прочитав этот весь текст, мне кажется, что проще уже систему переустановить. )

dango

  • Гость
У ТС, по всей видимости, из-за краха с обновлением отсутствует возможность получить доступ к интернету.
https://forum.altlinux.org/index.php?topic=42563
Если все пакеты нужные для обновления легли в кэш и пакетная база не повреждена, то в теории должно хватить:
apt-get --fix-broken dist-upgrade
В противном случае:
проще уже систему переустановить.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Если все пакеты нужные для обновления легли в кэш
Пакеты все в кэше с вероятностью 99.9%. Они же однозначно все скачались. Пропасть могли бы из-за reset, если ещё дисковый кэш не сброшен на носитель, но за время установки скорее всего уже всё засункалось, что было скачано. Так что полагаем, что в /var/cache/apt/archives лежит всё нужное. Тут главное не пытаться делать apt-get update до окончания починки. О, надо в инструкцию добавить.

Но то, что я описал, это примерно то же самое. Если есть готовность к переустановке, то то, что я написал, можно просто сделать последовательно и не особо задумываясь. Это только повысит вероятность успешного apt-get --fix-broken ... . От дубликатов, кстати, не спасёт, их надо будет чистить всё равно.
« Последнее редактирование: 26.04.2019 11:52:07 от asy »

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 549
Лучший вариант не нарваться на приятности при обновлении, это перейти в текстовый tty сочетанием клавиш ALT+F2, авторизоваться как root, и обновляться командой

apt-get dist-upgrade
По моему опыту обычно screen запущенного из под root достаточно
ИМХО, если обновляться чаще, чтобы обновление затрагивало небольшое число пакетов, то и "лечить" систему потом проще..

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
asy, поделитесь опытом.

4. Зачистить лишнее: https://www.altlinux.org/APT_в_ALT_Linux/Советы_по_использованию#apt-scripts:_«ненужное»_и_«не_в_текущем_репо»


:-) Я бы к выводам этой команды относился с предельной осторожностью и предельной подозрительностью:
$ apt-cache list-nodeps |grep '^lib[^-]*$'
libdnet
libreadline5
libboost_random1.58.0
libsrtp1
libmowgli2
libwebkitgtk3
libpcre16
libcpufreq
libstdc++3.3
libprotobuf9
libgpgme
libtxc_dxtn
libffi
libunibreak
libijs
libvncclient0
libpoppler59
libpoppler62
libjemalloc
libpth

Библиотеки из списка рекомендуемые для удаления, сразу навскидку:

:-) Это рекомендуется для удаления чтобы у меня вынесло cpufrequtils?
$ apt-cache rdepends libcpufreq
libcpufreq
Reverse Depends:
  libcpufreq-devel
  cpufrequtils

А это рекомендуется для удаления, чтобы у меня перестала работать Линукс версия ut2004 с легальным ключом, и вместе с ним перестал работать вагон модов?
$ apt-cache list-nodeps |grep '^lib[^-]*$'
...
libstdc++3.3
...

:-) Не, спасибо, не надо.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
А это рекомендуется для удаления, чтобы у меня перестала работать Линукс версия ut2004 с легальным ключом, и вместе с ним перестал работать вагон модов?
Похоже, что надо на самый низкий уровень переходить в части определения т.н. неиспользуемых пакетов. Проверять не только базу данных пакетов, но прогонять каждую библиотеку на предмет отсутствия зависимостей на неё в системных бинарниках. Ведь в системе могут быть установлены не только пакеты из репозитория, где вроде как подобные зависимости прописываются в пакетах, но и сторонний софт. Если решения универсального нет и решение подходит только для пакетов из репозитория, то надо обязательно добавить примечание на тему о том, что к выводу вышеперечисленной команды надо относится с большим вниманием и указать причины этого.
Библиотеки из списка рекомендуемые для удаления, сразу навскидку:
:-) Это рекомендуется для удаления чтобы у меня вынесло cpufrequtils?
Код: [Выделить]

$ apt-cache rdepends libcpufreq
libcpufreq
Reverse Depends:
  libcpufreq-devel
  cpufrequtils
А вот тут, похоже, не все нюансы учтены для вычисления этих самых ненужных пакетов.
Эти моменты надо бы поправить на вики, сделав упор на внесённые не так давно изменения в apt и rpm на предмет опции --autoremove. Но опять же, это всё должно работать для пакетов из репозитория. Но будет ли это в полной мере работать для пакетов, установленных из других источников, вот в чём вопрос.

Оффлайн Пурпур

  • Завсегдатай
  • *
  • Сообщений: 131
    • Email
Уважаемый Asy, решил пойти по вашему алгоритму.

0. Запустил команду:
rpm --rebuilddb
Все чисто.

1. И вот тут я сделал ошибку. Т.к. до того, как пойти по вашему алгоритму, я воспользовался советами выше, то я выполнил:
apt-get clean
apt-get --fix-broken dist-upgrade

После чего, получил следующее сообщение:

W: There are multiple versions of "alt-docs-main" in your system.

This package won't be cleanly updated, unless you leave
only one version. To leave multiple versions installed,
you may remove that warning by setting the following
option in your configuration file:

RPM::Allow-Duplicated { "^alt-docs-main$"; };

To disable these warnings completely set:

RPM::Allow-Duplicated-Warning "false";

2. После запуска:
cd /var/cache/apt/archives
rpm -Uvh --force --nodeps *.rpm

Ничего не происходит.

Еще можно... как-то... выкрутится?


« Последнее редактирование: 26.04.2019 13:27:28 от Пурпур »