3.2.2. Проблема с system-config-packages в Fedora 6/7
3.2.2. Проблема с system-config-packages в Fedora 6/7
Наверное, вы уже пробовали запускать программу Установка/удаление приложений (меню Приложения) и заметили, что если запустить ее, когда компьютер не подключен к Интернету, программа отказывается работать. И это не удивительно, ведь программа pirut (она же system-config-packages), запускаемая командой меню Приложения?Установка/удаление приложений, всего лишь графический интерфейс для yum, а yum, как уже было отмечено, по умолчанию настроен на использование Интернет-репозитория.
Но есть одна загвоздка. Рассмотрим реальную ситуацию. Вы установили Fedora, но при установке выбрали не все пакеты с DVD. Вообще-то, это разумное решение, Ведь вам все пакеты и не нужны, да и учитывая то, что Fedora при выборе пакетов не сообщает, сколько места они занимают на диске, очень легко превысить доступное дисковое пространство.
После установки вы рассчитываете, что доустановите с дистрибутивного DVD необходимые дополнительные пакеты. Вы запускаете программу Установка/удаление приложений и получаете… сообщение об ошибке. Да, yum настроен только на Интернет-репозитории и ничего знать не желает о пакетах, которые имеются на дистрибутивном DVD.
Получается своего рода замкнутый круг:
• вы боитесь превысить доступное дисковое пространство, потому что именно инсталлятор Fedora не выводит сведения о размере выбранных пакетов;
• но в то же время вы не можете установить пакеты с DVD, потому что yum отказывается это сделать.
Тогда у вас один выход - закачать нужные пакеты с Интернета, используя программу Установка/удаление приложений, Но как это сделать, если у вас пока нет подключения к Интернету, или есть, но очень медленное (модем или GPRS), Иногда мне кажется, что Fedora создана для пользователей с огромным жестким диском и очень быстрым Интернетом. Да, для таких пользователей, которым не нужно беспокоиться о дисковом пространстве (поэтому при установке и не выводится размер выбранных пакетов) и трафике. Какая разница, сколько займет на диске дистрибутив: 2 или 6 Гбайт, если свободно еще 300 Гбайт? Какая разница, сколько занимают устанавливаемые макеты, если трафик безлимитный, да и скорость соединения в несколько мегабитов в секунду.
Теперь вернемся к нашей ситуации и попытаемся ее решить. Первое, что приходит в голову - это установить имеющиеся на DVD пакета с помощью программы rpm. Идея хорошая, но если вам нужно установить какой-то программный комплект, например, тот же KDE, в состав которого входит множество пакетов и каждый пакет с огромным списком зависимостей, то у вас быстро пропадет желание использовать rpm.
Выходит, что использование rpm для локальной установки пакета - это не панацея. Пару пакетов вы еще установите, а для установлен большого количества пакетов нужно автоматизировать этот процесс.
Сейчас я расскажу, как решал проблему с yum на cвоем домашнем компьютере. Честно говоря, я мог бы этого и не делать, поскольку скорость используемого соединения (1 Мбит/с) позволяет мне загружать пакеты с Интернета. Просто не хочется платить за трафик, особенно учитывая то, что все необходимые пакеты есть на дистрибутивном DVD, а потраченный на загрузку пакетов трафик можно было бы использовать на что-то более лолезное.
Первым делом я отключил все Интернет-репозитории, чтобы они не мешали, Если ваш компьютер не подключен к Интернету, то вам рекомендую сделать то же самое. Напомню, что для отключения репозитория нужно открыть файл этого репозитория (см. каталог /etc/yum.repos.d) и установить для опции enabled значение 0:
enabled=0
Если у вас описаны дополнительные репозитории в /etc/yum.conf, то их тоже нужно отключить. Когда появится доступ к Интернету, вы всегда сможете их включить.
После этого откройте yum.conf и добавьте в него строки:
[base]
name=Fedora
baseurl=file://mnt/cdrom
enabled=1
Как видите, я добавил репозиторий и в качестве адреса указал каталог /mnt/cdrom. Конечно, нужно предварительно "подмонтировать" мой DVD к этому каталогу:
# mount /dev/cdrom /mnt/cdrom
Поcле этого я запустил программу управления пакетами:
# system-config-packages
Напомню: если перед командой указан знак #, то это означает, что команда должна быть выполнена от имени пользователя root.
Программа запустилась, отобразила группы пакетов и сами пакеты! Но чуда не произошло. При попытке установки пакета я увидел сообщение об ошибке:
[Еrrno 4] IOError: ‹urlopen error unknown url type: media›
Ради интереса введите данную фразу в любой поисковик: вы увидите очень много ссылок (один только Google нашел более 150 ссылок). Выходит, не один я столкнулся с такой проблемой.
Чтобы решить данную проблему, вам нужно установить пакет createrepo. Он находится на DVD (каталог Fedora/RPMS/) и не требует дополнительных пакетов, поэтому проблем с его установкой у нас не будет:
# rpm -ihv createrepo*
Затем нужно создать каталог, который будет использоваться как репозиторий пакетов. Сразу вас успокою: мы не будем копировать все пакеты с дистрибутивного DVD на жесткий диск, поэтому можете не беспокоиться относительно используемого места.
Для репозитория был создан каталог dvd-repo:
# mkdir /dvd-repo
Затем перейдите в каталог DVD, содержащий пакеты (Fedora/RpmS). Я предполагаю, что DVD "подмонтирован" к каталогу /mnt/cdrom:
cd /mnt/cdrom/Fedora/RPMS
После этого введите команду:
# createrepo -o /dvd-repo ./
Данная команда создаст в каталоге /dvd-repo репозиторий по файлам, которые находятся в каталоге /mnt/cdrom/Fedora/ RPMS. Теперь, реально, у нас есть репозиторий, но в нем нет пакетов. Понятно, что при попытке установки из такого "хранилища" мы получим сообщение ой ошибке. Поэтому нам нужно ввести следующую команду:
ln -s /mnt/cdrom/Fedora/RPMS/* /dvd-repo
Данная команда создаст в каталоге /dvd-repo символические ссылки на файлы, которые находятся на DVD. Вот и все. Осталось только настроить файл yum.conf. Для этого откройте /etc/yum.conf:
# gedit /etc/yum.conf
А затем добавьте в него следующие строки:
[base]
baseurl-file:///dvd-rеро
enabled=1
gpgcheck=0
Проверь подписей пакетов для данного репозитория и отключил, поскольку пакеты записаны на DVD - проверять подпись пакета нет смысла. После этого вы можете запустить графический менеджер пакетов - все будет работать:
# system-config-packages
Полная версия файла конфигурации yum.conf для установки пакетов с дистрибутивного DVD представлена в листинге 3.3.
Листинг 3.3. Конфигурационный файл /etc/yum.conf для установки пакетов с DVD
[main]
cachedir=/var/cache/yum
logfile=/var/log/yum.log
kеерсасhе=0
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactaxch=1
obsoletes=1
gpgcheck=1
plugins=1
metadata_expire=1800
[base]
name=Fedora-DVD
baseurl=file:///dvdl-repo
gpgcheck=0
Приведенный мною способ решения проблемы - далеко не единственный. Если вам интересно, как другие пользователи "побороли" данную проблему, посетите следующую Web-страницу:
http://www.dkws.org.ua/phpbb2/viewtopic.php?t=1286