web-dev-qa-db-fra.com

Le serveur a été effacé après "yum remove python"

Une catastrophe vient de m'arriver après avoir exécuté la commande yum remove python et maintenant je ne peux plus démarrer le serveur.

Comment cela s'est produit: j'ai essayé de mettre à jour certaines applications via yum sur mon CentOS 5 VPS et la commande échouait en raison d'une erreur bizarre python 2.4. J'ai remarqué que ma version de python était ancien et j'ai essayé de le réinstaller en le supprimant d'abord, et donc j'ai fait yum remove python.

Après cela, il m'a demandé quelque chose sur la suppression des dépendances et il ne semblait rien que je puisse manquer, alors j'ai cliqué sur Y.

La conséquence de cela fut que je ne pus exécuter aucune commande. J'ai même essayé cd /var/www mais il disait quelque chose comme "command does not exist in /usr/bin ". Quand j'ai utilisé tab pour voir les suggestions de navigation dans les dossiers, la structure du fichier semblait toujours être là (au moins le /var/www peu qui est vraiment important pour moi). Après cela, j'ai essayé de redémarrer le vps (depuis le panneau d'administration car la commande reboot ne fonctionnait pas) et maintenant il ne démarre plus.

Maintenant, ma question est: comment une commande comme celle-ci peut-elle détruire mon serveur comme ça?

65
tadoman

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

Cependant, je suis perdu en lisant cela:

Après cela, il m'a demandé quelque chose sur la suppression des dépendances et il ne semblait rien que je puisse manquer, alors j'ai cliqué sur [Y]

La liste des paquets à supprimer était sûrement vraiment énorme, car python est une partie essentielle de RHEL/CentOS. Vous devriez jamais confirmer un message d'avertissement que vous ne comprenez pas vraiment.

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

67
shodanshok

Franchement, parce que vous avez fait quelque chose que vous ne comprenez pas complètement. Python est une partie essentielle du système d'exploitation et les choses que vous considérez comme sans importance sont très importantes. Restaurer à partir d'une sauvegarde.


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

Pour mémoire, sur la nouvelle version de CentOS, cela n'est plus possible, car certains packages sont désormais marqués comme protégés et ne peuvent pas être supprimés, seulement réinstallés ou mis à niveau. Et puisque CentOS 5 est maintenant en fin de vie de toute façon, c'est le bon moment pour passer à une version plus récente.

106
Sven

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

Cette installation est irrécupérable, nécessiterait 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 aucune mise à jour. C'est très grave, car cela ressemble à un serveur Web qui sert du contenu sur 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 joli 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 7 à 8 quand il sortira sera très bien. Debian l'a depuis toujours, mais Redhat a toujours exigé une réinstallation pour les sauts de version majeurs.

Solution

Votre meilleur pari est de créer un nouveau VPS, de réinstaller CentOS7, puis de rattacher l'ancien volume de disque centos5 et de le monter en lecture seule. Ensuite, travaillez pour copier (pas déplacer) vos données de l'ancien disque vers le nouveau.

Notez que ce serait ma méthode en utilisant AWS. Si votre fournisseur VPS ne peut pas attacher de disques à différentes machines virtuelles, vous devrez modifier le plan.

Peu importe ce que vous faites, pensez à configurer des sauvegardes automatisées à l'avenir. Cela ne vous sauverait pas, mais cela rendrait la récupération un peu plus flexible. À l'heure actuelle, vous avez besoin des données sur ce disque dans un nouveau serveur de travail. Ne perdez pas le disque existant.

15
Criggie

Comment cela pourrait-il arriver? Eh bien, assez simple: en supprimant les parties essentielles à votre serveur.

Prochaines étapes pour vous: redéployez un nouveau système d'exploitation et restaurez vos données à partir de sauvegardes.

9
EEAA

Comme souligné par dragon788 et d'autres dans les commentaires, dans Gentoo, les développeurs maintiennent également un ensemble de packages tinderbox qui sont juste des versions binaires pré-construites d'un ensemble de packages de base du système d'exploitation pour de telles situations. Si vous perdez un package principal, vous obtenez simplement le système démarré sur le LiveCD/DVD, montez le lecteur du système d'exploitation du serveur cassé et décompressez le ou les packages tinderbox sur le système de fichiers, démontez, redémarrez et, s'il démarre correctement, reconstruisez les packages selon les spécifications et les configurations de votre serveur.

Donc, pour effectuer quelque chose de similaire dans CentOS, je pense que vous auriez besoin de trouver les bonnes versions des RPM qui ont été désinstallés, puis de démarrer sur un LiveCD/DVD, de monter le lecteur OS et de le chrooter (peut-être ... si vous êtes familier) avec la façon d'utiliser l'indicateur "- relocate" pour rpm , vous pourriez ne pas avoir besoin chroot), puis réinstallez ces packages, démontez et redémarrez.

Bien sûr, étant donné que la prise en charge de CentOS 5 a pris fin le mois dernier, après avoir redémarré le système correctement, vous pouvez le mettre à jour vers une version actuelle.

HTH.

4
B.Kaatz

Vous pouvez généralement démarrer à partir du support d'installation, puis chroot pour exécuter des commandes ou entrer dans les fichiers d'installation et de récupération en cours ou effectuer une réinstallation des packages.

0
dragon788