На сервере с отсутствующим Интернетом появилась необходимость настроить локальный репозиторий с целью облегчить установки пакетов .rpm и их зависимостей.
Для настройки необходимо выполнить следующие шаги:
1. Устанавливаем с компакт-диска пакет createrepo
rpm -ivh createrepoxx.rpm
2. Создаем репозиторий командой:
createrepo /path/to/rpm/files
3. Редактируем файлы настроек репозиториев yum: в каждый раздел файла CentOS-Base.repo добавляем строку enabled=0, отключая тем самым сетевые репозитории, в файле CentOS-Media.repo добавляем строку enabled=1 и указываем "baseurl=file:///path/to/rpm/files":
cat /etc/yum.repos.d/CentOS-Base.repo
[base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #released updates [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #packages used/produced in the build but not released [addons] name=CentOS-$releasever - Addons mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons #baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib #baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #######################################################
cat /etc/yum.repos.d/CentOS-Media.repo
[c5-media] name=CentOS-$releasever - Media baseurl=file:///path/to/file-rpm/distrib/RPM_CentOS_5.5/ file:///media/CentOS/ file:///media/cdrom/ file:///media/cdrecorder/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 ################################################
cat /etc/yum.conf
[main] cachedir=/var/cache/yum keepcache=0 debuglevel=2 logfile=/var/log/yum.log distroverpkg=redhat-release tolerant=1 exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 # Note: yum-RHN-plugin doesn't honor this. metadata_expire=1h installonly_limit = 5 # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d # The proxy server - proxy server:port number #proxy=http://aup-igate.belarusneft.beloil.by:8080 # The account details for yum connections #proxy_username=belarusneft\test #proxy_password=test [local] name=local baseurl=file:///path/to/rpm-file-dir/distrib/RPM_CentOS_5.5 #####################################
Сохраняем изменения. Теперь при вводе, например, команды
yum install kdegraphics
будет предложено установить не только пакет kdegraphics, но и зависимые пакеты, исходники которых система будет искать в папке /path/to/rpm/files
P.S. Если при попытке установки библиотек через yum возникает ошибка:
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID db42a60e Public key for autoconf-2.59-5.noarch.rpm is not installed
Выполняем команду:
rpm --import /etc/pki/rpm-gpg/RPM*