Конфетка Nginx обновляет ошибку контрольной суммы на CentOS5 для пакета CentOS6

Вы могли добавить это в конец/etc/profile

/bin/bash -c 'HN=`/bin/hostname`; IP=`/bin/hostname -i`; /bin/bash -c "/bin/hostname -i; /bin/hostname; echo; /usr/bin/who --ips; echo; /usr/bin/who --all" | /usr/bin/mailx -s "LOGIN ALERT - $HN ($IP)" root'

Это пошлет корень по электронной почте со списком зарегистрированных пользователей, каждый раз колотят (оболочка пользователя) запускается.

0
задан 25 May 2013 в 09:56
3 ответа

Попробуйте следующую команду

   yum clean all

, а затем

   yum update

или

   yum upgrade
0
ответ дан 4 December 2019 в 12:37

Установка пакетов из репозитория CentOS 6 на CentOS 5 не рекомендуется, и ее следует избегать. Если вы этого хотите, просто полностью обновитесь до CentOS 6. В качестве альтернативы, вручную возьмите исходный rpm и перестройте его на CentOS 5.

Что касается того, почему это не удается: новый createrepo для CentOS 6 использует другой алгоритм для контрольных сумм, чем тот, который используется yum в CentOS 5 (sha256 vs sha1 iirc) , поэтому ваш yum не имеет возможности проверить содержимое репозитория.

3
ответ дан 4 December 2019 в 12:37

У меня такое же сообщение об ошибке. В моем случае проблема заключалась в том, что сервер репозитория проиндексировал свои RPM с помощью алгоритма контрольной суммы sha256 , в то время как клиентское программное обеспечение yum знало только простые sha контрольные суммы.

Мое решение:

  1. Установить python-hashlib (документы для Python 2 / 3 ) .
  2. Удалите 2 файла / usr / lib / python * / site-packages / yum / {repos, misc} .pyc
  3. Исправьте файл /usr/lib/python*/site-packages/yum/repos.py , заменив:

      elif sumtype == 'sha':
     импорт ша
     сумма = sha.new ()
     еще:
     поднять Errors.RepoError, 'Ошибка файла контрольной суммы, неверный \ 
     тип контрольной суммы% s '% sumtype
    

    ... с:

      elif sumtype == 'sha':
     импорт ша
     сумма = sha.new ()
     еще:
     импортировать хэш-библиотеку
     если "алгоритмы" в hashlib .__ dict__ и sumtype в hashlib.algorithms:
     сумма = hashlib.new (тип суммы)
     elif sumtype в hashlib .__ dict__:
     sum = hashlib .__ dict __ [sumtype] ()
     еще:
     поднять Errors.RepoError, 'Ошибка файла контрольной суммы, неверный \ 
     тип контрольной суммы% s '% sumtype
    
  4. Исправьте файл /usr/lib/python*/site-packages/yum/misc.py , заменив:

     иначе:
     поднять MiscError, 'Ошибка файла контрольной суммы, неверный тип контрольной суммы% s'% sumtype
    

    ... с:

     иначе:
     импортировать хэш-библиотеку
     если "алгоритмы" в hashlib .__ dict__ и sumtype в hashlib.algorithms:
     сумма = hashlib.new (тип суммы)
     elif sumtype в hashlib .__ dict__:
     sum = hashlib .__ dict __ [sumtype] ()
     еще:
     поднять MiscError, 'Ошибка файла контрольной суммы, неверный тип контрольной суммы% s'% sumtype
    

yum теперь должен понимать и обрабатывать контрольные суммы sha256 , распределяемые сервером репозитория, поэтому вы сможете снова запустить свою команду без появления этой проблемы.

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

0
ответ дан 4 December 2019 в 12:37

Теги

Похожие вопросы