Назад | Перейти на главную страницу

Сервер очищен после «yum remove python»

Катастрофа произошла со мной после того, как я запустил команду yum remove python и теперь я больше не могу загрузить сервер.

Как это произошло: я попытался обновить некоторые приложения через yum на моем CentOS 5 VPS, но команда не выполнялась из-за какой-то странной ошибки python 2.4. Я заметил, что моя версия python была старой, и я попытался переустановить ее, сначала удалив ее, поэтому я сделал yum remove python.

После этого он спросил меня об удалении зависимостей, и, похоже, я ничего не мог пропустить, поэтому я нажал Y.

Так что после этого я не мог запускать какую-либо команду. Я даже пробовал cd /var/www но он сказал что-то вроде "command does not exist in /usr/bin". Когда я использовал вкладка чтобы увидеть предложения по навигации по папкам, казалось, что файловая структура все еще существует (по крайней мере, /var/www немного, что действительно важно для меня). После этого я попытался перезапустить vps (из админки, т.к. reboot команда не работала) и теперь она больше не загружается.

Теперь мой вопрос: как такая команда может уничтожить мой сервер таким образом?

Честно говоря, потому что вы сделали что-то, чего не совсем понимали. Python - это неотъемлемая часть ОС, и то, что вы считали несущественным, очень важно. Восстановить из резервной копии.


Когда вы удалили Python, yum показал вам длинный список пакетов, которые также будут удалены. В этом списке есть такие важные вещи, как yum сам, coreutils, net-tools и другие. Вы подтвердили yum, что знаете, что делаете, и все равно хотите продолжить. Результатом этого является нерабочая система. Это не должно вызывать удивления.

Для справки, в более новой версии CentOS это больше невозможно, поскольку некоторые пакеты теперь помечены как защищенные и не могут быть удалены, а только переустановлены или обновлены. И поскольку CentOS 5 теперь в любом случае EOL, сейчас хорошее время для обновления до более новой версии.

Мне искренне жаль: я чувствую боль, когда сервер не загружается / не обслуживается.

Однако я теряюсь, читая это:

После этого он спросил меня об удалении зависимостей, и мне показалось, что я ничего не могу пропустить, поэтому я нажал [Y]

Список пакетов, подлежащих удалению, наверняка был действительно огромный, как python является неотъемлемой частью RHEL / CentOS. Вам следует никогда подтвердите какое-то предупреждающее сообщение, которое вы действительно не понимаете.

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

Вы что-то сделали без полностью понимая последствия

Эта установка не подлежит восстановлению, потребуется много работы для переустановки centos5. И это плохой план, потому что

  1. CentOS 5 - это конец жизненного цикла, поэтому для него нет обновлений. Это очень серьезно, учитывая, что это похоже на веб-сервер, обслуживающий контент в общедоступном Интернете, и что вы используете панельные приложения для управления им.
  2. CentOS> 5 помешал бы вам выполнить это обновление и убить ящик. Это хорошая подушка безопасности.
  3. CentOS 7 утверждает, что поддерживает обновления основных версий. Я никогда не использовал его, но возможность прыгать с 7 на 8, когда он выйдет, будет очень хорошо. У Debian это всегда было, но Redhat всегда требовал переустановки для перехода к основной версии.

Решение

Лучше всего создать новый VPS, заново установить CentOS7, а затем повторно подключить старый том диска centos5 и смонтировать его только для чтения. Затем поработайте, чтобы скопировать (а не перемещать) свои данные со старого диска на новый.

Обратите внимание, что это был бы мой метод с использованием AWS. Если ваш провайдер VPS не может подключать диски к разным виртуальным машинам, вам придется изменить план.

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

Как это могло случиться? Что ж, довольно просто: удалив части, критичные для вашего сервера.

Следующие шаги для вас: повторно разверните новую ОС и восстановите данные из резервных копий.

Как указали dragon788 и другие в комментариях, в Gentoo разработчики также поддерживают набор трутница пакеты, которые представляют собой просто предварительно созданные двоичные версии набора основных пакетов ОС именно для таких ситуаций. Если вы потеряете основной пакет, вы просто загрузите систему с LiveCD / DVD, подключите привод ОС сломанного сервера и распакуйте пакет (ы) tinderbox в файловую систему, размонтируйте, перезагрузите и, если он загрузится правильно, восстановите пакеты обратно в соответствии со спецификациями и конфигурациями вашего сервера.

Итак, чтобы выполнить что-то подобное в CentOS, я думаю, вам нужно будет найти правильные версии RPM, которые были удалены, затем загрузиться с LiveCD / DVD, смонтировать диск ОС и выполнить chroot (возможно ... если вы знакомы с тем, как использовать "- переместить"флаг для об / мин, вам может не понадобиться chroot), затем переустановите эти пакеты, размонтируйте и перезагрузитесь.

Конечно, поскольку поддержка CentOS 5 закончилась в прошлом месяце, после правильной перезагрузки системы вы можете обновить ее до текущей версии.

HTH.

Обычно вы можете загрузиться с установочного носителя, а затем chroot для запуска команд или входа в текущую установку и восстановления файлов или выполнения переустановки пакетов.