3.2.1. Усовершенствование программы pirut в Fedora 8
В предыдущих версиях дистрибутива Fedora (6 и 7) конфигуратор pirut (он же system-config-packages) был довольно проблемным приложением. Проблема была связана с неправильной настройкой репозиториев пакетов. В восьмой версии Fedora все проблемы с pirut устранены. Если же у вас до сия пор седьмая версия дистрибутива, тогда В последующих параграфах будет описано, как правильно настроить программу pirut.
В восьмой версии Fedora вообще нет конфигуратора system-config-packages. При выборе команды меню Приложения→Установка→Удаление программ запускается программа pirut. Зато в восьмой версии есть программа system-instalI-packages, предназначенная для установки пакетов, переданных ей в качестве параметров, работающая в графическом режиме. С ней мы уже успели познакомиться при установке Flash-плагина дли браузера Firefox.
Запустите программу pirut (команда меню Приложения→Установка/удаление программ). Появится сообщение о том, что не удается получить сведения о программах (рис. 3.5). Не волнуйтесь, все нормально. Щелкните на кнопке Repository Manager и в раскрывшемся окне Repository Manager отключите все репозитории кроме InstallMedia (рис. 3.6).
Рис. 3.5. Ошибка: не удается получить сведения о программах
Рис. 3.6. Окно Repository Manager
После этого заново запустите программу pirut, предварительно установив дистрибутивный DVD системы в привод. Программа запустится без ошибок и вы сможете устанавливать пакеты, используя дистрибутивный DVD (рис. 3.7).
Открыть снова окно менеджера источников можно, нажав ‹Ctrl+R› в окне менеджера пакетов.
Рис. 3.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
3.2.3. Дополнительные репозитории
Предположим, что у вac появился доступ к Интернету, но yum уже настроен на локальный источник - дистрибутивный DVD, На самом деле - это не проблема. Перейдите в каталог /etc/yum.repos.d, откройте файл нужного репозитория и установите для eго опции enabled значение 1:
enabled=1
Проблема решена.
3.2.4. Создание собственного сервера пакетов
Данный параграф больше рассчитан на администраторов сетей, которые понимают, что они делают. Обычным пользователям его можно прочитать разве что для "общего развития", хотя приведенный способ можно удачно использовать не только в сети масштаба предприятия, но и в небольшой домашней сети.
Предположим, что у нас есть небольшая (или большая - разницы нет) сеть и на некоторых компьютерах сети установлен дистрибутив Fedora. Дистрибутивный писк, понятно, один. Если компьютеров несколько, то диск будет "мигрировать" от одного компьютеру к другому и в конце концов, как это часто бывает, потеряется. Поэтому целесообразно создать собственный сервер репозиториев.
Идеи проста, как все гениальное: на одном из компьютеров, работающих под управлением Fedora, развернуть Web-сервер, в его корневой каталог поместить все пакеты с дистрибутивного DVD, создать репозиторий с помощью утилиты createrepo и настроить все остальные компьютеры в сети на использование "домашнего" репозитория.
Итак, у нас есть план действия, осталось только воплотить его в реальность. Для начала нам нужен. Web-сервер. Для определенности будем считать, что мы установили Web-сервер на компьютере с именем comp1 и IP-адресом 192.168.1.1.
Установить Web-сервер можно с помощью команды:
yum install httpd
После установки Web-сервера откройте его конфигурационный файл:
# gedit /etc/httpd/conf/httpd.conf
Найдите в нем директиву ServerName и укажите в ней доменное имя компьютера, на котором установлен Web-сеpвеp, например: ServerName comp1.firma.ru
Сохраните файл httpd.conf. После этого нужно "подмонтировать" DVD с пакетами и скопировать все файлы в /var/www/html - это корневой каталог документов Web-сервера:
# mount /dev/cdrom /mnt/cdrom
Теперь перейдите в каталог /var/www/html и создайте репозиторий:
# cd /var/www/html
# rpm -ihv createrepo* (не нужно, если createrepo уже установлена)
# createrepo ./
Все готово. Осталось только запустить Web-сервер:
# /etc/init.d/httpd start
В дальнейшем Web-сервер будет запускаться автоматически по умолчанию, поэтому вам не придется вводить эту команду каждый день.
Сервер настроен. Теперь перейдем к остальным компьютерам, которые будут использовать наш сервер пакетов. На каждом компьютере в каталоге /etc/yum.repos.d нужно создать файл internal.repo (название можно выбрать другое):
# cd /etc/yum.repos.d
# touch internal.repo
# gedit internal.repo
Содержимое файла internal.rеро представлено в листинге 3.4.
Листинг 3.4. Содержимое файла /etc/yum.repos.d/internal.repo
[internal]
name=fedora-internal
baseurl=http://comp1
enabled=1
gpgcheck=0
Если DNS-сервер в вашей сети не настроен, вместо доменного имени можно указать IP-адрес сервера пакетов: baseurl=http://192.1б8.1.1
Вот теперь никогда не возникнет "коллизий" между пользователями - теперь все они могут устанавливать пакеты одновременно.
3.2.5. Автоматическое обновление системы
Как только вы подключаетесь к Интернету, специальная программа, отслеживающая обновлении пакетов, связывается с сетевыми репозиториями и проверяет, есть ли новые версии установленных а вашей системе пакетов. Если новые версии пакетов найдены, вы увидите соответствующее сообщение (рис. 3.8.).
Рис. 3.8. Доступны обновления
При желании можно щелкнуть на кнопке Просмотр обновлений или просто закрыть окно уведомления. Просмотр обновлений позволяет выбрать пакеты для обновления, т.е. вы caми определяете, какие пакеты нужно обновлять, а какие - нет (рис. 3.9).
Рис. 3.9. Просмотр обновлений
Обновление системы помогает поддерживать вашу систему в актуальном состоянии, но постоянно обновлять систему накладно, если у вас не безлимитный Интернет. Если за каждый мегабайт трафика приходится платить свои кровные, тогда лучше вообще отключить уведомления об обновлениях. Для зтого выберите команду Система→Параметры→Персональные→Сеансы и в раскрывшемся окне Сеансы на вкладке Запускаемые при старте программы сбросьте флажок программы Уведомления об обновлениях ПО (рис. 3.10).
Pиc. 3.10. Отключение напоминаний об обновлении