листинг

Я глупо сделал «yum remove python», который также удалил все пакеты, которые также требовали питона.

К счастью, у меня есть доступ к другой машине Linux, которая является почти клоном этой машины, и у нее все еще есть все эти пакеты. Уловка состоит в том, что он принадлежит кому-то другому, и я могу, самое большее, ткнуть. Я также не знаю, что конкретно переустанавливать на моей машине. Список (когда я удалил python) был правдоподобным.

Мне было интересно, есть ли какие-либо команды, которые я мог бы ввести в эту машину-двойник, которая могла бы сказать мне: из установленных в настоящее время пакетов, какие из них зависят от python? Затем я мог бы использовать этот список для ручной переустановки каждого из них на моей собственной машине. Так что это действительно больше, чем зависимые от python, а не зависимости.

От взгляда вокруг я сталкивался с такими командами, как «repoquery –whatrequires» и «rpm –whatrequires», но они, похоже, не генерируют тот же список, что и «yum remove python».

2 машины работают с RHEL 6.

3 Solutions collect form web for “листинг”

Предполагая, что у клонов были установлены те же пакеты, перед удалением python, верный способ получить список необходимых пакетов – сравнить rpm -qa с каждым клоном.

 # on clone 1: rpm -qa | sort > clone1.txt # on clone 2: rpm -qa | sort > clone2.txt 

Получите clone1.txt и clone2.txt на том же компьютере. Затем запустите

 comm -13 clone1.txt clone2.txt 

чтобы увидеть, какие rpms находятся на Clone 2, а не Clone 1.

У вас может быть /var/log/rpmpkgs который имеет список всех установленных пакетов RPM. (в RHEL 6 этот список генерируется пакетом rpm-cron). Если у вас есть список пакетов, вы можете посмотреть /var/log/yum.log чтобы узнать, какие пакеты были удалены.

Фактически, вы можете отменить команду yum. На удаленном компьютере с удаленным python попробуйте запустить yum history :

 yum history Loaded plugins: langpacks, refresh-packagekit ID | Command line | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 284 | yum remove python | 2014-07-09 14:47 | Remove | 1213 ... 

Определите строку yum remove python и обратите внимание на ID

 yum history undo 284 

Тем не менее, yum должен зависеть от python поэтому вы также можете удалить yum . Если это так, вам придется снова загрузить его и его зависимости вручную. Сначала проверьте, что ваша система имеет необходимые зависимости (этот список был сгенерирован в системе Fedora 19, поэтому дважды проверьте ваш клон RHEL 6):

 [root@localhost ~]# repoquery -R yum /usr/bin/python pygpgme pyliblzma python >= 2.4 python(abi) = 2.7 python-iniparse python-sqlite python-urlgrabber >= 3.9.0-8 pyxattr rpm >= 4.4.2 rpm-python yum-metadata-parser >= 1.1.0 

Для каждого, что вам не хватает, загрузите пакет из источников RHEL 6 и установите его вручную с помощью rpm .

Обычно удаление пакетов не удаляет все файлы конфигурации. Я не знаю о yum . Надеемся, что база данных yum history остается неповрежденной после ее переустановки.

  • Пакет: git-1.7.6.1-1.el5.rf.i386 (rpmforge) Требуется: libcurl.so.3
  • Двоичный файл поврежден после упаковки
  • Как остановить изменения прав доступа к yum
  • Ошибка обновления Yum: «невозможно запустить новый поток»
  • libxml2.so.2: невозможно открыть файл общих объектов: нет такого файла или каталога
  • Удалить пакет с yum, но оставить библиотеки на месте?
  • yum: дерево зависимостей RPM
  • Где идут установленные RPM?
  • Amazon AWS (Amazon AMI), устанавливающий OpenVPN
  • Почему yum еще не обновляет GCC 4.9.0?
  • На RHEL 6 у меня, похоже, установлен EPEL, но он не отображается в yum. Как я могу активировать его?
  • Linux и Unix - лучшая ОС в мире.