Как установить 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.