В названии пакетов всё ещё фигурируют названия «RedHat», «rhel» или «rh». Разве они должны присутствовать?
В своей бизнес-модели Вендор ПО в основном использует ПО с открытым исходным кодом (GPL). Т.е., Вендор использует ПО, написанное другими разработчиками (например gnome.org, X.org, KDE.org или OpenOffice.org ): пакует исходный код в пакеты RPM-формата для распостранения. Т.к. Вендор использует ПО с открытым кодом для разработки свеого ПО, то он обязан предоставить, в свою очередь, свой исходный код для свободного доступа. Именно так работает GPL. Вендор ПО вносит свой вклад, добавляя RPM-пакеты с исходным кодом (SRPM или Source RPMS) и способствуя их распостранению. Помимо этого он исправляет ошибки и обеспечивает связь с разработчиками этого ПО. Всё вышеописанное является принципом функционирования ПО с открытым исходным кодом.
Проект CentOS использует публично доступные пакеты SRPM, поставляемые Вендором ПО, и создаёт бинарные (установочные) пакеты, предоставляя их всем, кто пожелает.
Некоторые пакеты включают информацию, содержую Торговую марку от Вендора ПО. Для этих случаев у Вендора ПО существует специальные инструкции по распостранению ПО, собранного из его публично доступных пакетов. Об этом можно прочитать тут. Т.к. мы полностью поддерживаем права Вендора ПО на Торговую Марку, то прилагаем все усилия, чтобы полностью соответствовать этим инструкциям.
Т.к. присваивать авторство чужих работ — не в интересах проекта CentOS, то мы по возможности оставляем названия файлов, данные Вендором ПО. Если есть необходимость внесения изменений в пакет (конечно в соответствии ограничениями, например для настройки конфигурационного файла), то в названии этого пакета будет содержаться «.centosX» (где X — номер версии CentOS, например 5 или 6). Но в отличие от большинства случаев пересборки пакетов, мы не меняем название пакета ядра, собранного из SRPM, на .centosX. Причина этому — тот факт, что название ядра должно оставаться неизменным для совместимости с ПО какой-либо 3ей стороны.
Мы хотели бы поблагодарить Вендора ПО за тот способ предоставления SRPM-пакетов, который они используют. Существует довольно много Поставщиков ПО Enterprise-уровня, которые игнорируют требование предоставления публичного доступа к исходному коду их ПО. Програмный же продукт Вендора ПО превосходен (иначе бы мы не смогли создать на его основе CentOS), как и его поддержка. Поэтому если вам необходимы услуги поддержки, которые они предоставляют, то мы настоятельно рекомендуем воспользоваться их програмным продуктом.
В CentOS нет поддержки mp3! Или есть? А как насчёт других мультимедийных форматов?
Все верно. В CentOS нет поддержки mp3, т.к. её нет в исходных кодах, предоставляемых Вендором ПО. Это было сделано из-за патентных лицензионных соглашений, CentOS же просто пересобирает то, что предоставленно поставщиком ПО. Вам придётся либо перекодировать ваши музыкальные файлы в формат ogg vorbis, который поддерживается CentOS, либо установить поддержку mp3 из стороннего репозитория, такого как rpmforge. Например, если вам нужна поддержка mp3 в xmms, то необходимо установить из этого репозитория пакет xmms-mp3.
Аналогично для остальных мультимедийных форматов (кодеков, например gstreamer plugins) и плееров, таких, как xine или mplayer.
Как создать файл xorg.conf?
Разработчики системы Х Вендора ПО потрудились таким образом, что файл /etc/X11/xorg.conf теперь больше не требуется. Однако время от времени может возникнуть необходимость «продвинутой настройки», например в случае с несколькими дисплеями и пр. В этом случае можно создать шаблонный файл xorg.conf следующим образом:
{{{Xorg :1 -configure }}}
результатом будет файл xorg.conf.new, расположенный в текущей директории. Его можно протестировать, указав опцию -config команде Xorg. Если этот файл подходит, то можно его поместить в папку /etc/X11, где он будет использоваться в качества конфигурационного файла по умолчанию, предварительно сделав бекап.
Где я могу получить последнюю версию XyZ.rpm для CentOS? Я ни где не могу его найти.
CentOS является операционной системой класса предприятия и, как таковым, определяющим является стабильность и долговременная поддержка, чем передний край разработок. Основная версия пакета сохраняется на протяжении всего жизненного цикла продукта. Класс предприятия несет разработчикам стабильную базу для разработок, не опасаясь, что возникнет сбой в один из моментов после обновления до последней и самой лучшей версии, но, в конечном итоге имеющим баг или обратную несовместимость с исходным кодом.
Так что, вы не найдете самые последние версии различных пакетов, включенных в операционную систему класса предприятия, такую, как CentOS. Это свойство не является недостатком.
Патчи безопасности и исправления ошибок для вышедших версий. Ознакомиться подробней: http://www.redhat.com/advice/speaks_backport.
6.3 Заголовок
Заголовок имеет несколько стандартных полей, которые вам необходимо заполнить. Также существует несколько предостережений. Поля должны быть заполнены как показано:
- Это однострочное описание пакета.
- Это должна быт строка имени из имени файла rpm, котрое вы планируете использовать.
- Это должна быть строка версии из имени файла rpm, которое вы планируете использовать.
- Это номер выпуска для пакета с той же самой версией (например, если мы сделали пакет и обнаружили, что он незначительно неисправный и нам необходимо сделать его заново, то следующий пакет будет номер выпуска 2).
- Это имя файла иконки, которое будет использоваться другими высокоуровневыми утилитами установки (подобными из Red Hat). Она должна быть в формате gif и располагаться в директории .
- Эта строка указывает на расположение ДОМА файла исходных текстов. Она используется если вы хотите получить исходные тексты снова и проверить новые версии.
Имя файла в этой строке ДОЛЖНО соответствовать имени файла который вы имеете на своей собственной системе (например не изменяйте имя загруженного файла исходных текстов). Вы можете также указать больше чем один файл исходных текстов используя следующие строки:
- Это место где вы можете найти заплатки, если вы захотите загрузить их снова.
Имя файла должно соответствовать имени файла которое вы использовали когда делали вашу заплатку. Вы можете также заметить, что вы можете иметь много файлов заплаток также как вы можете иметь много файлов исходных текстов. У вас должно быть что-то подобное:
Эти файлы должны быть в директории .
- Эта строка говорит с какими авторскими правами идет пакет. Вы можете использовать что-то подобное GPL, BSD, MIT, public domain, distributable, или commercial.
- BuildRoot:
- Эта строка позволяет вам указать директорию как корневую для построения и установки нового пакета. Вы можете использовать это для тестирования вашего пакета до установки его на вашей машине.
- Эта строка используется чтобы указать высокоуровневым программам установки (таким как Red Hat) где разместить эту отдельную программу в их иерархических структурах. Дерево групп в настоящее время выглядит примерно так:
- В действительности это не часть заголовка, но этот раздел должен быть описан вместе с остальными частями заголовка. Вам нужен один таг описания на один пакет и/или подпакет. Это многостроковое поле, которое должно использоваться чтобы дать достаточно полное описание пакета.
Установка нескольких версий Python
Что сделать, чтобы удобно работать с разными версиями питона? Можно установить репозиторий так называемой Software Collections или SLC и поставить версию питона оттуда. Ее удобство будет в том, что существует инструмент, который позволит запустить bash оболочку с новой версией питона, выполнить скрипты, которым нужна эта версия и просто выйти из оболочки. Мне как раз помог такой способ, когда нужно было быстро разово выполнить несколько скриптов, которым нужна была версия 3 и которые делали проверку этой версии через обращение к системному python.
Подключаем репозиторий SCL:
# yum install centos-release-scl
Ставим Python нужной версии, например 3.6.
# yum install rh-python36
Теперь можно сделать вот так:
# scl enable rh-python36 bash
И мы оказываемся в консоли с нужной версией питона.
# python -V Python 3.6.3
Можно запускать скрипты, которые требуют именно эту версию. Они при запуске убедятся, что версия именно та, что нужна.
Использование yum через прокси
Yum для работы с репозиториями программ использует протокол HTTP/1.1. Если ваш Linux сервер имеет доступ в интернет только через HTTP прокси сервер, вы можете указать имя прокси сервера в конфигурационном файле /etc/yum.con в секции :
Если прокси-сервер требует авторизацию, добавьте строки:
Для проверки работы yum через прокси сервер воспользуйтесь командой
Для проверки я указал публичный прокси сервер с Германии и при установке, сработал плагин fastestmirror, нашел зеркала с которых скорость будет выше:
Если нужно использовать прокси только для некоторых репозиториев, не нужно править файл /etc/yum.conf, а настройки прокси указать в конфигурационном файле репозитория /etc/yum.repos.d/ваш_конфиг.repo.
Итак, в этой статье мы рассмотрели базовые возможности менеджера rpm пакета yum в Linux CentOS/ RHEL.
Конфигурационные файлы Yum и их расположение
Основной конфигурационный файл
директория, с конфигурациями (например, yum плагины)
директория, содержащая информацию о репозиториях
Некоторые опции yum.conf:
Директория, где yum хранит кэш и файлы базы (по умолчанию ‘/var/cache/yum’)
Определяет должен или нет Yum хранить кэш заголовков и пакетов после успешной установки. Значения: 0 или 1. (по умолчанию 1)
уровень вывода отладочных сообщений. Значения: 1-10 (по умолчанию 2)
лог файл (по умолчанию ‘/var/log/yum.log’)
обновлять устаревшие пакеты
проверка подписи пакетов. Значения: 0 или 1 (по умолчанию 1)
включение плагинов. Значения: 0 или 1 (по умолчанию 1)
Получение и пересборка пакета, не будучи при этом root-ом
Иногда вам просто необходимо пересобрать определенный пакет — возможно, лишь добавить конфигурационные опции, которые просто не существуют в основном пакете. Или потому, что вы нашли необходимый пакет, который отсутствует в репозитории, а на сайте разработчика RPMs для другого дистрибутива. Таким образом, вы должны получить src.rpm и востановить его под себя. Но в действительности вы не хотите делать этого в качестве суперпользователя. Итак, как пересобрать свои пакеты в вашей домашней директории под собственной учетной записью.
13.1 Метод А
Для начало необходимо настроить каталог для работы. Он имеет довольно полное сходство по структуре с каталогом /usr/src/redhat:
$ cd $ mkdir -p redhat/{SRPMS,RPMS,SPECS,BUILD,SOURCES} $ ls redhat/ BUILD RPMS SOURCES SPECS SRPMS $
С помощью rpm макроса произведем подмену, для того чтобы rpmbuild узнал о нас и о том что нужно собрать:
$ echo "%_topdir /home/testuser/redhat" >> .rpmmacros $ echo "%packager Test User " >> .rpmmacros $ cat .rpmmacros %_topdir /home/testuser/redhat %packager Test User $
Именно так. Следующее действие — задание rpmbuild-у —rebuild foo.src.rpm, результат работы будет в файле ~/redhat/RPMS/i386 (или та архитектура с которой вы строили пакет).
13.2 Метод Б
Для CentOS-4, настроить репозиторий kbs-Extras repo (опционально добавить kbs-Misk) со страницы репозиториев и ‘yum install fedora-rpmdevtools’ под root-ом используя ‘sudo’ или ‘su -‘. Завести юзера (возможно вы захотите использовать специальный аккаунт для того, чтобы избежать проблем в своей обычной домашней директории) и выполнить «fedora-buildrpmtree» и ~/rpmbuild/…в дереве каталогов и ~/.rpmmacros файл будет автоматически создан. (Примечание «rpmbuild» против «RedHat» в методе А.)
Для CentOS-5 — пакет rpmdevtools отсутствует в наличии. В FC6 SRPM rpmdevtools-5.3-1.fc6.src.rpm собирается и работает.
Ниже представлен макрос для получения надлежащих имен некоторых пакетов (замените соответствующую версию дистрибутива для «el4» на свою):
$ echo "%dist .el4" >> .rpmmacros
Установка пакетов в CentOS 7
Перед тем как переходить к установке пакетов CentOS нужно обновить список репозиториев и систему до самой последней версии. Для этого существует команда:
Установка пакета CentOS
Чтобы установить пакет, который есть в официальных репозиториях вам достаточно использовать команду install. Просто наберите эту команду и имя пакета, например, для firefox:
Во время установки вам придется подтвердить, что вы хотите установить именно эту программу нажав клавишу y. Чтобы этого избежать используйте опцию -y:
Чтобы посмотреть информацию об установленном пакете используйте команду info:
Для удаления пакета используйте команду remove:
Поиск пакетов CentOS
Мы знаем точные названия далеко не всех пакетов. Но yum поддерживает возможность поиска, которая поможет вам понять какой установить пакет CentOS 7. Существует две команды для поиска. Первая — это search — позволяет найти пакет по названию:
Вторая позволяет найти нужный пакет по команде, которая вам нужна, в некоторых случаях это бывает очень удобно:
Теперь вы знаете какой пакет нужен и установка пакетов rpm CentOS 7 теперь может быть выполнена очень быстро и вам не нужно открывать множество форумов для поиска информации.
Группы пакетов CentOS
Группы пакетов, это тоже достаточно удобный инструмент. С помощью него вы можете не устанавливать пакеты по одному, а установить сразу целую группу. Сначала посмотрите список доступных групп:
Дальше вы можете посмотреть список файлов в каждой выбранной группе:
Затем. чтобы установить группу пакетов наберите:
Точно так же вы можете обновить группу пакетов, чтобы не обновлять всю систему:
Или удалить:
Репозитории пакетов CentOS
В официальных репозиториях есть далеко не все нужные пакеты. Если серверные программы там можно найти без труда, то с программами для рабочего стола, теми же кодеками, возникнут проблемы. Их нужно устанавливать из сторонних репозиториев.
Репозитории в CentOS добавляются не через конфигурационный файл, они устанавливаются путем загрузки и установки rpm файла репозитория. Например, один из самых часто используемых сторонних репозиториев — это EPEL. Его установщик есть в официальных репозиториях, поэтому для подключения достаточно выполнить:
Например, на данный момент самая новая
Затем установите загруженный пакет с помощью yum:
Затем обновите список репозиториев и можете устанавливать пакеты:
Далее можете устанавливать пакеты, например, vlc:
Ну и смотрим список репозиториев:
Здесь отображаются все доступные репозитории. Для удаления репозитория будет достаточно удалить его пакет.
Что такое YUM?
YUM ( Yellowdog Updater Modified ) — это пакетный менеджер с открытым исходным кодом, разработанный в компании RedHat для работы с пакетами в формате RPM. С помощью него пользователи и системные администраторы могут устанавливать, удалять и обновлять пакеты в системах, основанных на RedHat.
Программа распространяется под лицензией GPL (General Public License) и любой пользователь может получить доступ к исходникам или даже улучшить код. Пакетный менеджер поддерживает подключение сторонних репозиториев и разрешение зависимостей для установки пакетов. Для улучшения работы Yum могут быть загружены различные плагины.
Утилита работает в консоли, а ее синтаксис очень прост:
$ sudo yum опции команда имя_пакета
Сначала рассмотрим основные команды пакетного менеджера:
- install — установить пакет;
- update — обновить пакет или систему;
- update-to — обновить пакет до версии;
- update-minimal — обновлять только исправления ошибок;
- upgrade — полное обновление с обработкой дополнительных возможностей пакетов и их зависимостей;
- distro-sync — синхронизировать состояния системы или пакета с репозиторием. Например, если была установлена версия пакета 4, а в репозитории только 3, то будет выполнено понижение версии;
- remove — удалить пакет;
- autoremove — очистить больше ненужные пакеты;
- list — показать список пакетов;
- provides — поиск пакета по функциональности;
- search — поиск пакета по имени;
- info — информация о пакете;
- clean — очистить кэш пакетного менеджера;
- groups — управление группами пакетов;
- reinstall — переустановить пакет;
- downgrade — понизить версию пакета;
- deplist — вывести все зависимости пакета;
- repolist — отобразить список репозиториев;
- fssnapshot — управление снимками состояния системы;
- check — проверить базу данных пакетов на целостность.
Еще рассмотрим дополнительные опции, которые могут вам понадобиться когда будет выполняться установка rpm CentOS:
- -y — всегда отвечать на вопросы утилиты утвердительно;
- -q — минимальный вывод;
- -v — максимальный вывод;
- -С — работать из кэша;
- -x — игнорировать пакет.
Теперь вы знаете все основные возможности утилиты, рассмотрим некоторые примеры работы с ней.
Происхождение пакета
Иногда хочется знать, где вы получили пакет или пакеты, сколько в вашей системе пакетов от конкретного репозитория или поставщика. Есть несколько параметров поиска, которые можно использовать. Хотя они не 100% совершенны, тем не менее они могут помочь. Большинство пакетов из репозиториев имеют теги с идентификатором в строке Release. Например rpmforge использует rf в качестве идентификатора. Вы можете использовать это, чтобы посмотреть, что у вас установлено оттуда:
rpm -qa release="*rf*"
а если вы хотите увидеть, как много пакетов у вас установлено от Johnny Hughes-а можно использовать:
rpm -qa packager="Johnny*"
Этот метод работает на большинстве категорий вида rpm -qi
rpm -qa
Данная команда выдаст весь список установленных пакетов.