Как установить YUM на виртуальный сервер - CentOS Wiki

Как установить YUM на виртуальный сервер

1. У меня CentOS и YUM у меня уже установлен

Многие дистрибутивы Linux используют yum (Yellow dog Updater, Modified - консольный менеджер RPM - пакетов). Все выпуски CentOS поставляются с yum и соответствующим набором конфигурационных файлов. Это позволяет системе взаимодействовать с репозиториями CentOS по всему миру и производить обновление системы. Но бывают ситуации, когда форки данной системы не имеют yum по-умолчанию.

2. В моей инсталяции системы CentOS отсутствует yum

Если yum отсутствует в системе, то это не система CentOS. Тем не менее есть системы ведущие свое родство от CentOS, где yum нет. Например некоторые VPS (виртуальные сервера) содержат только часть CentOS и в стандартном шаблоне отсутствует такой нужный инструмент как yum.

3. Можно ли доверять этому, так ли это?

Да, в настоящую установку CentOS входят CentOS kernel, centos-release пакеты, пакет yum и неизменный каталог для него - /etc/yum.repos.d/. Все зависимости будут удовлетворены и за исключением файлов конфигурации команда:

# rpm -Va

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

# yum grouplist \*
$  lsb_release -a ; uname -a ; rpm -V yum centos-release ; ls /etc/yum.repos.d/ ; yum repolist all
$ uname -a

4. Установка YUM

Ладно, теперь попытаемся востановить правильные конфигурации и установим YUM.

Главное: произвести полное резервное копирование и убедится, что потом можно востановить систему по этому бекапу.

Затем вы должны установить пакет, который необходим для получения работоспособного yum (все это может быть загружено с любого зеркала CentOS - http://mirror.centos.org/centos/):

  • centos-release

Этот пакет должен быть уже установлен. Вы можете проверить его наличие вот так:

# rpm -q centos-release
 centos-release-4-4.3.i386

Если он установлен, проверте доступна ли в вашей системе конфигурация для yum:

ls -l /etc/yum.repos.d/

Этот каталог должен содержать только файлы: CentOS-Base.repo и CentOS-Media.repo. Если таковых нет, вы должны создать каталог: 'attic' там и переместить 'mv' резервную копию текущего содержимого в него, чтобы подготовится к переустановке пакета centos-release.

# rpm -Uvh --replacepkgs centos-release.*.rpm

Если centos-release не установлена на вашей системе, вы можете убрать параметр '--replacepkgs' из команды выше.

Для установки yum понадобится:

CentOS 4

(эти пакеты можно получить также на http://mirror.centos.org/centos/4/os/):

  • yum
  • sqlite
  • python-sqlite
  • python-elementtree
  • python-urlgrabber
  • yum-metadata-parser

CentOS 5

(эти пакеты можно получить на http://mirror.centos.org/centos/5/os/):

  • m2crypto
  • python-elementtree
  • python-sqlite
  • python-urlgrabber
  • rpm-python
  • yum
  • yum-metadata-parser

Скачайте их в отдельный каталог и установите с помощью команды:

# rpm -Uvh *.rpm

из этого каталога. Как и прежде, сделайте резервную копию файла /etc/yum.conf, чтобы всегда была возможность откатится обратно без потерь.

5. Предохранить ваше правильное ядро от перезаписи

Теперь рассмотрим пожелание обеспечить ваше (работающее) ядро от перезаписи за счет обновления его с CentOS в случае, например, специально собранного ядра на VPS.

Откроем файл /etc/yum.conf в вашем любимом редакторе и добавим следующую строку в конец секции [main]:

exclude=kernel*

это позволит yum предотвратить установку пакетов, имеющих отношение к ядру и поэтому ваше ядро VPS будет защищено от перезаписи.

6. Востановление только истинных репозиториев CentOS yum

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

Чистые версии необходимых файлов содержаться в пакете centos-release. Одним из решений является ручное получение копии этого пакета, а также востановление только файлов в директории /etc/yum.repos.d. Очевидно, что /etc/yum.conf и другие файлы, возможно, необходимо изменить для аналогичного подхода в востановлении.

В этом примере, мы предпологаем, что у нас релиз CentOS 4 и мы получим надлежащий centos-release rpm в директорию /tmp с помощью wget:

$ # ... в качестве обычного пользователя
$ cd /tmp
$ mkdir unpack
$ wget http://mirror.centos.org/centos-4/4.6/os/i386/CentOS/RPMS/centos-release-4-4.4.i386.rpm
$ mkdir -p /tmp/unpack/var/lock/rpm/
$ #  это очень редкий случай (где 'out of tree' RPM --root), где происходит
$ #   не надлежащее использование опции --nodeps
$ sudo rpm -Uvh --root /tmp/unpack/ --nodeps centos-release*rpm
$ # ... становимся root-ом
$ su -
# cd /etc/yum.repos.d/
# mkdir attic
# mv * attic/
# cp /tmp/unpack/etc/yum.repos.d/* .

[--nodeps Не выполнять проверку зависимостей перед установкой или обновлением пакета.]

 

вы получаете настройку чистого CentOS репозитория еще раз. Так как мы сделали распаковку "из дерева" новой конфигурации, то после завершения работ мы выполним уборку после себя: выполнив rm -rf /tmp/unpack.

Автор: Александр