3.2.2. Проблема с system-config-packages в Fedora 6/7

We use cookies. Read the Privacy and Cookie Policy

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