65 votes

Le serveur est effacé après "yum remove Python".

Une catastrophe vient de se produire après que j'ai lancé la commande yum remove python et maintenant je ne peux plus démarrer le serveur.

Comment c'est arrivé : J'ai essayé de mettre à jour certaines applications via yum sur mon VPS CentOS 5 et la commande échouait à cause d'une erreur bizarre de Python 2.4. J'ai remarqué que ma version de Python était ancienne et j'ai essayé de la réinstaller en la supprimant d'abord, ce que j'ai fait yum remove python .

Après cela, il m'a demandé quelque chose à propos de la suppression des dépendances et cela ne semblait pas pouvoir m'échapper alors j'ai cliqué sur Y .

En conséquence, je n'ai pas pu exécuter la moindre commande. J'ai même essayé cd /var/www mais il a dit quelque chose comme " command does not exist in /usr/bin ". Lorsque j'ai utilisé tab pour voir les suggestions de navigation dans les dossiers, la structure du fichier semblait toujours être là (au moins la /var/www ce qui est très important pour moi). Après cela, j'ai essayé de redémarrer le vps (depuis le panneau d'administration puisque reboot n'a pas fonctionné) et maintenant il ne démarre plus.

Ma question est la suivante : comment une commande comme celle-ci peut-elle détruire mon serveur de cette façon ?

106voto

Sven Points 95985

Franchement, parce que vous avez fait quelque chose que vous n'avez pas entièrement compris. Python est une partie essentielle de l'OS et les choses que vous avez considérées comme sans importance sont très importantes. Restaurer à partir d'une sauvegarde.


Quand tu as supprimé Python, yum vous a montré une longue liste de paquets qui seraient également supprimés. Cette liste contient des éléments essentiels tels que yum lui-même, coreutils , net-tools et autres. Vous avez confirmé à yum que vous savez ce que vous faites et que vous voulez quand même continuer. Le résultat de tout cela est un système qui ne fonctionne pas. Cela ne devrait pas être surprenant.

Pour mémoire, sur les nouvelles versions de CentOS, ce n'est plus possible, car certains paquets sont désormais marqués comme protégés et ne peuvent pas être supprimés, mais seulement réinstallés ou mis à niveau. Et puisque CentOS 5 est maintenant EOL de toute façon, c'est le bon moment pour mettre à niveau vers une version plus récente.

68voto

shodanshok Points 42743

Je suis sincèrement désolé : je peux ressentir la douleur d'avoir un serveur non amorçable/indisponible.

Cependant, je suis perdu en lisant cela :

Après cela, il m'a demandé quelque chose à propos de la suppression des dépendances et il Je ne pouvais pas rater ça, alors j'ai cliqué sur [Y].

La liste des paquets à supprimer était sûrement realmente énorme, comme python est un élément essentiel de RHEL/CentOS. Vous devez nunca confirme un message d'avertissement que vous ne comprenez pas vraiment.

La meilleure chose que vous puissiez faire, comme cela a déjà été suggéré, est de démarrer via un support de récupération (par exemple : livecd), d'extraire les fichiers de données nécessaires, et de réinstaller votre machine avec une version plus récente de CentOS (et comme CentOS 6 est assez vieux, je vous suggère fortement de rebaser sur CentOS 7).

15voto

Criggie Points 2126

Vous avez fait quelque chose sans comprendre pleinement les conséquences

Cette installation est irrécupérable, il faudrait beaucoup de travail pour réinstaller centos5. Et c'est un mauvais plan parce que

  1. CentOS 5 est en fin de vie, et n'a donc pas de mises à jour. C'est d'autant plus grave qu'il s'agit d'un serveur web qui sert du contenu sur l'internet public et que vous utilisez des applications de panneau pour le contrôler.
  2. CentOS >5 vous aurait empêché de faire cette mise à jour et de tuer la boîte. C'est un bon airbag à avoir.
  3. CentOS 7 prétend prendre en charge les mises à niveau de versions majeures en place. Je ne l'ai jamais utilisé, mais pouvoir passer de la 7 à la 8 dès sa sortie sera une très bonne chose. Debian dispose de cette fonctionnalité depuis toujours, mais Redhat a toujours exigé une réinstallation pour les sauts de version majeurs.

Solution

Votre meilleure chance est de créer un nouveau VPS, d'installer CentOS7, puis de rattacher l'ancien volume de disque Centos5 et de le monter en lecture seule. Travaillez ensuite à copier (et non à déplacer) vos données de l'ancien disque vers le nouveau.

Notez que c'est la méthode que j'utilise avec AWS. Si votre fournisseur de VPS ne peut pas attacher des disques à différentes VMs, vous devrez modifier votre plan.

Quoi que vous fassiez, pensez à mettre en place des sauvegardes automatiques à l'avenir. Cela ne vous sauvera pas, mais cela rendra la récupération un peu plus flexible. Pour l'instant, vous avez besoin des données de ce disque dans un nouveau serveur fonctionnel. Ne perdez pas le disque existant.

9voto

Samat Jain Points 165

Comment cela a-t-il pu se produire ? C'est très simple : En enlevant des parties qui étaient critiques pour votre serveur.

Prochaines étapes pour vous : redéployer un nouvel OS et restaurer vos données à partir des sauvegardes.

4voto

OSdave Points 4635

Comme l'ont souligné dragon788 et d'autres dans les commentaires, dans Gentoo, les développeurs maintiennent également un ensemble de boîte à fusil qui ne sont que des versions binaires préconstruites d'un ensemble de paquets de base du système d'exploitation pour de telles situations. Si vous perdez un paquet de base, il vous suffit de faire démarrer le système sur le LiveCD/DVD, de monter le lecteur OS du serveur endommagé et de décompresser le(s) paquet(s) tinderbox sur le système de fichiers, de démonter, de redémarrer et, s'il démarre correctement, de reconstruire les paquets en fonction des spécifications et des configurations de votre serveur.

Donc, pour effectuer quelque chose de similaire dans CentOS, je pense que vous devriez trouver les bonnes versions des RPMs qui ont été désinstallés, puis démarrer sur un LiveCD/DVD, monter le lecteur OS et se connecter par chroot (peut-être... si vous êtes familier avec l'utilisation de l'option " --remplacer "pour rpm vous n'aurez peut-être pas besoin de chrooter), puis réinstallez ces paquets, démontez-les et redémarrez.

Bien sûr, comme le support de CentOS 5 s'est terminé le mois dernier, après avoir redémarré le système correctement, vous pouvez le mettre à jour avec une version actuelle.

HTH.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X