Предположим, что у в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. Отключение напоминаний об обновлении
3.3. Программа rpm: локальная установка пакетов
3.3.1. Немного истории
Раньше, когда не было Интернет-репозиториев, во всех RH-совместимых дистрибутивах для установки, удаления и обновления пакетов использовалась программа rpm. RPM (аббревиатура oт Red hat Package Manager) - это один из самых "древних" менеджеров пакетов. Правда, в первой бета-версии дистрибутива Red Hat, которая увидела свет 29 июня 1994 года, использовался другой менеджер пакетов - RPP, Этот менеджер имел ряд существенных недостатков, поэтому уже во второй версии дистрибутива (1995 год) он был заменен на более "продвинутый" менеджер пакетов - RPM.
Сейчас программу RPM можно встретить во многих дистрибутивах Linux - Fedora, Mandriva, ALT Linux, ASP Linux и др. Но во вcex этим дистрибутивах данная программа остается только для обеспечения совместимости, а по умолчанию используются более совершенные системы управления пакетами, например yum и apt. Преимущества новых систем управления пакетами в том, что они поддерживают удаленные хранилища пакетов. Менеджер RPM, холь и поддерживает установку удаленного пакета (в смысле пакета» расположенного на удаленном сервере), но он не поддерживает концепцию репозиториев как таковую и не позволяет разрешать зависимости непосредственно на этапе установки. На страницах книги эта фраза звучит совсем не страшно, но на практике, поверьте, это очень неудобно. Представьте, что в вашей системе не установлена оболочка KDE, а вы очень хотите ее установить. В yum вам достаточно указать пакет kdebase, и KDE будет установлена. В случае с RPM вы увидите сообщение о том, что пакет kdebase зависит от нескольких пакетов, Когда же вы попытаетесь установить те пакеты, то обнаружите, что они, в свою очередь зависят от других пакетов. Нужно обладать действительно прочным запасом терпения, чтобы устанавливать большие программные комплексы с помощью RPM. Поэтому в большинстве случаев вы будете пользоваться программой yum, а о программе RPM вам нужно знать только потому, что это - традиция.
Но, ради справедливости, нужно отметить, что RPM намного удобнее для локальной установки пакетов. Например, дома у вас нет Интернета, вы на работе скачали все необходимые пакеты, записали на CD и принесли домой. Дома вам нужно их установить. В yum тоже есть возможность установки локальных пакетов, но эта программа ориентирована на работу с Интернет-репозиториями, поэтому даже при установке локального пакета она попытается связаться с репозиториями, и если обнаружит, что они недоступны (Интернета-то нету!), то у вас не получится установить даже локальный пакет. В случае с RPM при установке локального пакета у вас не возникнет ни малейшей проблемы.
3.3.2. Формат имени пакета
Еще со времен второй версии дистрибутива Red Hat принято файлы пакетов называть так:
<имя-программы>-<версия>-<релиз>.<архитектура>.rpm
Например:
program-0.94-2-i386.rpm
3.3.3. Использование RPM
Программа RPM не имеет графического интерфейса, поэтому запускать ее нужно в консоли или в терминале (команда меню Приложения→Системные→Терминал). Формат вызова программы rpm следующий:
rpm [-опции] [пакеты]
Напомню, что установка программ - это привилегия пользователя root, поэтому перед запуском программы нужно ввести команду su, чтобы "превратиться" в пользователя root.
3.3.3.1. Установка пакетов
Для установки пакета (или пакетов - в командной строке можно указать несколько пакетов) используется опция -i:
rpm - i пакет
Если вы хотите наблюдать за процессом установки (это очень полезно, если устанавливается большой пакет или же производится установка с удаленного сервера), то нужно указать опцию ihv: вы увидите индикатор установки пакета.
rpm -ihv пакет
Предположим, что нам нужно установить пакеты program-base-0.94-2.i386.rpm, program-gui-0.94-2.i386.rpm и program-docs-0.94-2.i386.rpm, которые находятся в каталоге /home/den. При вызове rpm нам нужно указывать полный путь к пакетам (ведь RPM не использует хранилища пакетов, поэтому не "знает", где искать пакеты).
rpm -ihv /home/den/program-base-0.94-2.i386.rpm
rpm -ihv /home/den/program-gui-0.94-2.i386.rpm
rpm -ihv /home/den/program-docs-0.94-2.i346.rpm