Подготовка системы
Для работы по сборке пакетов лучше использовать отдельный компьютер, виртуальную машину или контейнер Docker.
1. Установим пакеты:
yum install rpmdevtools rpmlint
* где:
- rpmdevtools — позволит нам использовать утилиту rpmdev-setuptree, с помощью которой мы сможем создать рабочую среду в виде каталогов для сборки.
- rpmlint — позволяет протестировать пакет RPM.
А также ставим:
yum group install «Development Tools»
* данная группа пакетов включает все необходимое для сборки. Ее не рекомендуется ставить на рабочий компьютер, так как устанавливается много ненужного для стандартной системы мусора.
2. Создаем пользователя.
Делать готовые установочные сборки пакетов очень опасно от пользователя root. Если мы допустим ошибку с путями, файлы могут перетереть или удалить важные для работы директории. Стоит создать отдельного пользователя и работать под ним. Однако, если мы работаем в виртуальной среде или контейнере Docker, нам это не страшно. Тогда данный пункт можно пропустить и работать из под root.
Выполняем команду:
useradd builder -m
* в данном примере мы создадим пользователя builder. Опция -m сразу создаст домашний каталог для пользователя.
Теперь заходим под данным пользователем — последующие команды мы будем выполнять от него:
su — builder
3. Создадим структуру каталогов для сборки:
rpmdev-setuptree
В нашей текущем каталоге должна появиться папка rpmbuild — а в ней:
- BUILD — содержит все файлы, которые появляются при создании пакета.
- RPMS — сюда будут складываться готовые пакеты.
- SOURCES — для исходников, из которых и будут собираться RPM-пакеты.
- SPECS — для файлов с описанием процесса сборки.
- SRPMS — для исходников RPM-файлов.
Мы готовы к сборке.
Сборка из исходников
Рассмотрим пример создания RPM из пакета, который нужно собирать из исходников с помощью команды make. Например, возьмем данную программу: github.com/brettlaforge/pg_redis_pubsub.
Создадим файл spec:
rpmdev-newspec rpmbuild/SPECS/pg_redis_pubsub.spec
Теперь откроем его и приведем к виду:
vi rpmbuild/SPECS/pg_redis_pubsub.spec
Name: pg_redis_pubsub
Version: 1.0.2
Release: 1%{?dist}
Summary: Redis Publish from PostgreSQL
License: X11 License
URL: https://github.com/brettlaforge/pg_redis_pubsub
Source0: %{name}-%{version}.tar.gz
BuildRequires: postgresql-devel postgresql-server-devel
BuildRequires: hiredis-devel
Requires: postgresql
%if 0%{?rhel} < 8
Requires: hiredis-last >= 0.13.3-1
%else
Requires: hiredis = 0.15
%endif
%define _build_id_links none
%description
Redis Publish from PostgreSQL
%prep
%{__rm} -rf %{name}-%{version}
%{__mkdir} -p %{name}-%{version}
%{__tar} -xzvf %{SOURCE0} -C %{_builddir}/%{name}-%{version} —strip-components 1
%build
cd %{name}-%{version}
%{__make}
%install
cd %{name}-%{version}
%{__make} install DESTDIR=%{buildroot}
%clean
%{__rm} -rf $RPM_BUILD_ROOT
%{__rm} -rf $RPM_BUILD_DIR/*
%files
%defattr(-,root,root)
%{_libdir}/pgsql/redis.so
%{_datadir}/pgsql/extension/redis.control
%{_datadir}/pgsql/extension/redis—0.0.1.sql
%doc %{_datadir}/doc/extension/redis.mmd
%changelog
* Fri Jul 9 2021 root
—
* чтобы понять, как заполнить spec-файл, рекомендуется для начала собрать и установить приложение вручную с помощью make и make install. Также необходимо изучить документацию устанавливаемого пакета или (при наличие возможности) поговорить с разработчиками программного обеспечения.
Установим зависимости, которые необходимы для сборки (BuildRequires):
yum-builddep rpmbuild/SPECS/pg_redis_pubsub.spec
* утилита yum-builddep сама читает зависимости, необходимые для сборки и устанавливает недостающие пакеты.
Теперь копируем исходник на свой компьютер. В моем примере клонируем репозиторий:
git clone https://github.com/brettlaforge/pg_redis_pubsub.git
Готовим архив и помещаем его в каталог rpmbuild/SOURCES:
tar -czvf rpmbuild/SOURCES/pg_redis_pubsub-1.0.2.tar.gz pg_redis_pubsub
Проверяем корректность SPEC-файла:
rpmlint rpmbuild/SPECS/pg_redis_pubsub.spec
В моем примере команда вернула ответ:
rpmbuild/SPECS/pg_redis_pubsub.spec: W: invalid-url Source0: pg_redis_pubsub-1.0.2.tar.gz
0 packages and 1 specfiles checked; 0 errors, 1 warnings.
Данное предупреждение можно проигнорировать.
Выполняем сборку:
rpmbuild -bb rpmbuild/SPECS/pg_redis_pubsub.spec
Если она пройдет без ошибок, мы должны найти RPM-пакет в каталоге rpmbuild/RPMS/x86_64, где x86_64 — архитектура пакета.
Portage — пакетный менеджер Gentoo
Этот менеджер пакетов используется в Gentoo, менее популярном, но не менее мощном дистрибутиве. И это один из лучших менеджеров пакетов. Основное преимущество системы Gentoo, это возможность собирать пакеты из исходников во время установки. Это дает очень много полезных вещей, таких как возможность настроить флаги компиляции, включить только нужные функции, а также собрать пакеты именно под свой процессор. Все это поддерживается Portage, базовая функциональность, такая как обновление, удаление пакетов и разрешение зависимостей здесь тоже есть.
Интересной особенностью есть состояния Portage, а также слоты, позволяющие устанавливать несколько версий одной программы или библиотеки в вашей системе. Здесь нет как такового списка пакетов, есть только дерево портов, в котором и содержаться файлы ebuild с инструкциями для сборки всех пакетов. Сохранив дерево можно очень просто откатить систему к предыдущей версии.
Настройка кэширования пакетов
Настройки кэширования пакетов находятся в двух местах. Первое – в самом synaptic, окно с настройками кэширования вызывается через меню Настройки→Параметры→Файлы
.
Кэш хранится в папке /var/cache/apt/archives/
Хранить все загруженные файлы в кэше
— система будет хранить все файлы скачанные из репозиториев в кэше, согласно правилам хранения(см. ниже).
Удалять загруженные файлы после установки
— система будет удалять файлы скачанные из репозиториев сразу после их установки.
Удалять только те пакеты, которые более недоступны в репозитории
— система будет хранить все пакеты скачанные из репозиториев, удаляя лишь те, которые будут удалены в репозитории согласно правилам(см. ниже).
Очистить кэш
— полностью очищает кэш.
В разделе Файлы истории
устанавливаются настройки времени хранения истории установок, либо отключается удаление этой истории вообще.
Второе место в котором хранятся настройки кэширования устанавливает правила хранения пакетов в кэше. Для того чтобы получить доступ к этим настройкам необходимо в терминале выполнить следующую команду:
Sudo nano /etc/apt/apt.conf.d/20archive
Эти настройки имеют следующий вид:
APT::Archives::MaxAge «30»;
APT::Archives::MinAge «2»;
APT::Archives::MaxSize «500»;
Иногда может возникнуть вопрос: чьих этот файл, откуда вообще взялась эта библиотека
? Удобный менеджер пакетов решает очень многие проблемы ОС. Можно с уверенностью сказать, что если вы подружитесь с МП, то подружитесь и с дистрибутивом как таковым
Причем важно освоить именно набор основных команд, и знать где найти дополнительную информацию
Далее следует джентльменский набор необходимых для повседневной рутины команд основных Linux дистрибутивов: установить, обновить и удалить пакет, накатить обновления, проверить зависимости, установить принадлежность файла пакету и пр.
Распространенное использование низкоуровневых инструментов
Наиболее частые задачи, которые вы будете выполнять с низкоуровневыми инструментами:
1. Установка пакета из скомпилированного (* .deb или * .rpm) файла
Недостатком этого метода установки является отсутствие разрешения зависимостей. Скорее всего, вы решите установить пакет из скомпилированного файла, когда такой пакет недоступен в репозиториях дистрибутива и поэтому не может быть загружен и установлен с помощью инструмента высокого уровня. Поскольку низкоуровневые инструменты не выполняют разрешение зависимостей, они завершатся с ошибкой, если мы попытаемся установить пакет с неудовлетворенными зависимостями.
# dpkg -i file.deb # rpm -i file.rpm
Примечание . Не пытайтесь установить в CentOS файл * .rpm, созданный для openSUSE, или наоборот!
2. Обновление пакета из скомпилированного файла
Опять же, вы будете обновлять установленный пакет только вручную, когда он недоступен в центральных репозиториях.
# dpkg -i file.deb # rpm -U file.rpm
3. Список установленных пакетов
Когда вы впервые получите в руки уже работающую систему, скорее всего, вы захотите узнать, какие пакеты установлены.
# dpkg -l # rpm -qa
# dpkg -l | grep mysql-common
Проверьте установленные пакеты
Другой способ определить, установлен ли пакет.
# dpkg —status имя_пакета # rpm -q имя_пакета
Например, давайте выясним, установлен ли пакет sysdig в нашей системе.
# rpm -qa | grep sysdig
Проверьте пакет sysdig
4. Выяснить, в каком пакете установлен файл
# dpkg — поиск имя_файла # rpm -qf имя_файла
Например, в каком пакете установлен pw_dict.hwm ?
# rpm -qf /usr/share/cracklib/pw_dict.hwm
Файл запроса в Linux
DPKG — система управления пакетами Debian
Dpkg — это базовая система управления пакетами в Debian. Может использоваться для установки, удаления, хранения и получения информации о .deb пакетах.
Это инструмент низкого уровня и есть дополнительные утилиты, которые помогают пользователям устанавливать пакеты из репозиториев, разрешать зависимости и искать пакеты по названию. Это такие программы, как:
Aptitude Package Manager
Это еще одна популярная утилита командной строки для управления пакетами в Debian. Она работает аналогично Apt, но между ними есть некоторые различия. Первоначально он был разработан для Debian, но сейчас может применяться и в Red Hat дистрибутивах.
Synaptic
Synaptic — это графический менеджер пакетов linux, написанный на GTK и использующий apt в качестве бэкенда. Он отлично подходит для пользователей, которые не хотят работать в командной строке. Здесь есть все те же необходимые функции что и в apt.
Gnome Software
Это центр приложений Gnome. Там есть далеко не все программы, которые есть в репозиториях и подход к установке немного другой. Вы устанавливаете не пакеты по отдельности, а саму нужную программу. Обо всём остальном центр приложений заботиться сам, скрывая от вас подробности. Gnome Software поддерживает не только Deb пакеты, но и Rpm в системах, основанных на RHEL, а также snap и flatpack, о которых мы поговорим ниже.
AppGrid
Простенькая альтернатива для центра приложений Ubuntu. Программе очень далеко до функциональности Synaptic. Она позволяет устанавливать приложения так же, как и центр приложений Gnome Software и выглядит очень похоже на Windows Store.
Управление ПО
Установка
Щелкните по кнопке Обновить
Правый клик на нужном пакете и выберите в появившемся меню Отметить для установки
, или нажмите Ctrl + I . Если пакет требует установки другого пакета, то появиться диалоговое окно с изменениями которые будут сделаны, если вы действительно хотите продолжить установку, то щелкните по клавише Применить
или нажмите Ctrl + P .
Для установки, нажмите кнопку Применить
Удаление
Правый клик на нужном пакете и выберите в появившемся меню выберите Отметить для удаления
.
Появиться диалоговое окно с изменениями которые будут сделаны, если вы действительно хотите продолжить удаление, то щелкните по клавише «Применить» или нажмите Ctrl + P .
Для удаления, нажмите кнопку «Применить» на главной панели Менеджера пакетов Synaptic.
Если вы отметите пакет маркером «Отметить для полного удаления» то удалится не только выбранный вами пакет, но и все зависимости.
Обновление
Щелкните по кнопке Обновить
или нажмите Ctrl + R для того чтобы скачать список самых последних версий ПО.
Правий клик на нужном пакете и выберите в появившемся меню Отметить для обновления
.
Применить
на главной панели Менеджера пакетов Synaptic.
Обновление всей системы
Synaptic предоставляет два варианта обновления системы
Умное обновление попытается разрешить конфликты пакетов перед обновлением системы. Действие умного обновления аналогично действию команды apt-get dist-upgrade .
Стандартное обновление
Стандартное обновление обновит только те пакеты, которые не требуют установки дополнительных зависимостей.
По умолчанию ynaptic использует умное обновление. Для того чтобы изменить метод обновления системы откройте Настройки→Параметры→Основные
и выберите требуемый способ в Обновление системы
.
Щелкните по кнопке Обновить
или нажмите Ctrl + R для того чтобы скачать список самых последних версий ПО.
Нажмите на кнопку Отметить для обновления
или нажмите Ctrl + G для того, чтобы Synaptic отметил для обновления все пакеты.
Для обновления, нажмите кнопку Применить
на главной панели Менеджера пакетов Synaptic.
Проверка целостности rpm пакета
Файлы, размещенные в rpm пакете, сопровождаются вычисленной контрольной суммой и, как правило, подписаны цифровой подписью сборщика пакета. После установки пакета контрольные суммы и подписи сохраняются в базе установленных пакетов. Эти вспомогательные данные позволяют выполнить несколько проверок, например, можно проверить, что пакет создан доверенным издателем и что файлы пакета не были подменены после установки.
Первая проверка очень важна при скачивании пакетов из интернета, а вторая при подозрении на взлом компьютера.
Публичные ключи для проверки подписи автоматически устанавливаются при установке из дистрибутива, а также полуавтоматически добавляются при установке rpm пакетов для подключения репозиториев . Файлы с ключами в CentOS устанавливаются в каталог . Можно добавить ключ вручную, указав путь к локальному файлу или его url. Файл с ключем должен иметь текстовый формат ‘ASCII armored’
После инсталляции к ключам применимы те же команды, что и к установленным пакетам
– список всех ключей – информация (в том числе имя хозяина) о конкретном ключе – удаление ключа
Проверка файла пакета на целостность
Проверка установленного пакета на целостность
После выполнения этой команды будет выдан список изменившихся файлов с указанием, что именно в них поменялось. Информация о типе изменений состоит из строки аббревиатур, включающих:
- S – размер (Size)
- M – тип файла или права доступа (Mode)
- 5 – контрольная сумма (MD5)
- D – мажор или минор устройства устройства (Device)
- L – содержимое символической ссылки (Link)
- U – владелец (User)
- G – группа (Group)
- T – время модификации (mTime)
- P – капабилити (caPabilities)
Какие существуют CentOS-репозитории и для чего они?
- addons
- Тут содержатся пакеты, необходимые для сборки основого дистрибутива, или пакеты, полученные при помощи сборки из SRPMs-пакетов, но не включенные Red Hat-ом в основноый пакетный набор (как наример mysql-server в CentOS-3.X). К пакетам, содержащимся в репозитории addons, следует относится как к частью основой сборки, но которые могут не входить в освной набор пакетов Red Hat.
- centosplus
- Пакеты, предоставляемые пользователяими или разработчиками CentOS. Они могут подменять RPM-пакеты из основной сборки, поэтому вы должны понимать все последствия использования этого репозитория.
- contrib
- Пакеты, предоставляемые пользователями CentOS, но которые не пересекаются с пакетами из основной сборки. Они не тестировались CentOS-разработчиками и могут не соответствовать последим версиям от непосредственного разработчика ПО.
- docs
- Мануалы и замечания к выпуску CentOS.
- extras
- Пакеты, собранные и поддерживаемые разработчиками CentOS и добавляющие функциональность в основной дистрибутив. Они прошли через некоторые простейшие этапы тестирования, довольно близко соответстуют версиям, выпускаемым непосредственным разработчиком и никогда не заменят собой какой-либо пакет основого дистрибутива.
- ioso
- ISO-образы для загрузки. ISO-образы не могут быть загружены с основного зеркала CentOS, однако мы предоставляем для скачивания Bittorent-файл. На внешних публичных зеркалах, в зависимости от решения владельца зеркала, ISO-образы могут быть доступны для скачивания напрямую.
- os
- Содержит основой набор пакетов из ISO-образов.
- updates
- Содержит выпуски обновлений для CentOS.
- CR
- Содержит обновления для следующего релиза, которые прошли через этапы тестирования, но пока не были выпущены в новом релизе CentOS.
- debuginfo
-
Содержит RPM-пакеты, включающие отладочную информацию, которая создаётся во время сборки основного пакета. Поставляется без конфигурационного файла. Эти пакеты можно найти в http://debuginfo.centos.org
Дополнительную информацию можно найти на странице Repositories
Как CentOS связан с Red Hat®, Inc. или с RHEL?
Red Hat является куратором торговой марки CentOS и обеспечивает экспертную оценку и управление кадровой расстановкой, используйщейся для руководства проектом CentOS.
Некоторые члены правления проекта CentOS являются работниками Red Hat, Inc
Red Hat, Inc. никаким образом не спонсирует CentOS Linux.
CentOS Linux — это не Red Hat Linux и не Fedora Linux. Это не Red Hat Enterprise Linux. Это не RHEL. CentOS Linux не включает в себя Red Hat Linux, Fedora Linux или Red Hat Enterprise Linux.
CentOS Linux — это НЕ клон Red Hat Enterprise Linux.
CentOS Linux собран из публично доступного, предоставленного Red Hat, Inc. в рамках их проекта Red Hat Enterprise Linux исходного кода, и собран на базе совершенно другой системы сборки, поддерживаемой проектом CentOS Project.
Что такое 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 — игнорировать пакет.
Теперь вы знаете все основные возможности утилиты, рассмотрим некоторые примеры работы с ней.
Подготовка
При установке пакетов RPM убедитесь, что они созданы для вашей системной архитектуры и вашей версии CentOS .
Вам следует избегать использования этого метода для замены или обновления важных системных пакетов, таких как glibc, systemd или других служб и библиотек, которые необходимы для правильного функционирования вашей системы. Это может привести к ошибкам и нестабильности системы.
Чтобы установить пакеты RPM, вам необходимо войти в систему как пользователь root или пользователь с привилегиями sudo .
Обычно вы используете веб-браузер для поиска и загрузки файла RPM. Найдя файл, вы можете загрузить его с помощью браузера или инструмента командной строки, такого как или .
Где я могу найти самую последнюю версию пакета XyZ.rpm для CentOS? Никак не могу его найти!
Т.к. CentOS является операционной системой Enterprise-уровня, то она ориентирована на долгосрочную поддержку и стабильность, а не на последние новшества. Старшие версии пакетов остаются неизменными на протяжении всего жизненного цикла. Это является сутью требований Enterprise-среды, тем самым предоставляя стабильную основу для разработчиков без опасений, что написанное ими приложение будет приходить в негодность каждый раз, как что-то обновится до последей и самой новой, но насыщенной ошибками версии или изменится API, нарушив обратную совместимость.
Поэтому ответ: никак. Вы не найдёте самые последние версии различных пакетов, входящих в состав операционных систем Enterprise-класса, таких как CentOS. И это не «недостаток», а «особенность».
Portage — пакетный менеджер Gentoo
Этот менеджер пакетов используется в Gentoo, менее популярном, но не менее мощном дистрибутиве. И это один из лучших менеджеров пакетов. Основное преимущество системы Gentoo, это возможность собирать пакеты из исходников во время установки. Это дает очень много полезных вещей, таких как возможность настроить флаги компиляции, включить только нужные функции, а также собрать пакеты именно под свой процессор. Все это поддерживается Portage, базовая функциональность, такая как обновление, удаление пакетов и разрешение зависимостей здесь тоже есть.
Интересной особенностью есть состояния Portage, а также слоты, позволяющие устанавливать несколько версий одной программы или библиотеки в вашей системе. Здесь нет как такового списка пакетов, есть только дерево портов, в котором и содержаться файлы ebuild с инструкциями для сборки всех пакетов. Сохранив дерево можно очень просто откатить систему к предыдущей версии. Подробнее тут.
Подключение репозитория от Remi
для CentOS 7
Для установки репозитория Remi в CentOS 7 достаточно выполнить команду:
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
Посмотреть активные репозитории можно следующей командой:
yum repolist = вывод части команды = Загружены модули: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.corbina.net * epel: mirror.logol.ru * extras: mirror.reconn.ru * remi-safe: mirror.reconn.ru * updates: mirror.corbina.net remi-safe Safe Remi's RPM repository for Enterprise Linux 7 - x86_64 3 144
По умолчанию установлен репозиторий remi-safe который имеет только дополнительные пакеты для базового хранилища и коллекций программного обеспечения. Например, при попытке установить phpMyAdmin будет установлена старая версии. Для установки последних версий надо активировать репозиторий remi.
Посмотрим репозитории что у нас есть в системе выполнив команду:
ls /etc/yum.repos.d/ -l итого 92 -rw-r--r-- 1 root root 1664 ноя 23 16:16 CentOS-Base.repo -rw-r--r-- 1 root root 1309 ноя 23 16:16 CentOS-CR.repo -rw-r--r-- 1 root root 649 ноя 23 16:16 CentOS-Debuginfo.repo -rw-r--r-- 1 root root 314 ноя 23 16:16 CentOS-fasttrack.repo -rw-r--r-- 1 root root 630 ноя 23 16:16 CentOS-Media.repo -rw-r--r-- 1 root root 1331 ноя 23 16:16 CentOS-Sources.repo -rw-r--r-- 1 root root 5701 ноя 23 16:16 CentOS-Vault.repo -rw-r--r-- 1 root root 951 окт 2 2017 epel.repo -rw-r--r-- 1 root root 1050 окт 2 2017 epel-testing.repo -rw-r--r-- 1 root root 261 фев 8 15:23 mariadb.repo -rw-r--r-- 1 root root 113 июл 15 2014 nginx.repo -rw-r--r-- 1 root root 446 дек 21 20:50 remi-glpi91.repo -rw-r--r-- 1 root root 446 дек 21 20:50 remi-glpi92.repo -rw-r--r-- 1 root root 446 дек 21 20:50 remi-glpi93.repo -rw-r--r-- 1 root root 446 дек 21 20:50 remi-glpi94.repo -rw-r--r-- 1 root root 456 дек 21 20:50 remi-php54.repo -rw-r--r-- 1 root root 1314 дек 21 20:50 remi-php70.repo -rw-r--r-- 1 root root 1314 дек 21 20:50 remi-php71.repo -rw-r--r-- 1 root root 1314 дек 21 20:50 remi-php72.repo -rw-r--r-- 1 root root 1314 дек 21 20:50 remi-php73.repo -rw-r--r-- 1 root root 2605 дек 21 20:50 remi.repo -rw-r--r-- 1 root root 750 дек 21 20:50 remi-safe.repo
Надеюсь, вы заметили что есть репозитории glpi.
GLPI — это программный инструмент ITSM, который помогает вам легко планировать и управлять изменениями в ИТ структуре предприятия, эффективно решать возникающие проблемы используя систему заявок, так же позволяет вам получить контроль над ИТ-бюджетом и расходами вашей компании. В будущем я расскажу как работать с этим замечательным проектом. Кроме того, то что Remi Collet поддерживает репозиторий меня очень радует.
Перед работой с репозиториями Remi необходимо установите пакет yum-utils, что бы не получать ошибку «bash: yum-config-manager: command not found». Установим yum-utils выполнив необходимую команду:
yum install yum-utils
Сейчас у нас активирован remi-safe. Для активации remi надо вначале отключить remi-safe а потом активировать remi выполнив команды:
yum-config-manager --disable remi-safe yum-config-manager --enable remi
Перед тем как определится какую версию PHP использовать я всегда смотрю на сайте Supported Versions PHP.
для CentOS 8
В 8 версии CentOS используется версия php 7.2 которая уже может удовлетворять требования множества новых сайтов, но если вам нужны версии новее подключайте Remi.
Подключаем репозиторий Remi, выполнив следующую команду:
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Посмотрим список всех доступных вариантов установки php:
dnf module list php = вывод команды = Последняя проверка окончания срока действия метаданных: 1:41:10 назад, Пн 28 окт 2019 08:05:09. CentOS-8 - AppStream Name Stream Profiles Summary php 7.2 common , devel, minimal PHP scripting language Remi's Modular repository for Enterprise Linux 8 - x86_64 Name Stream Profiles Summary php remi-7.2 common , devel, minimal PHP scripting language php remi-7.3 common , devel, minimal PHP scripting language php remi-7.4 common , devel, minimal PHP scripting language Hint: efault, nabled, disabled, nstalled
Из вывода выше видно что по умолчанию стоит базовая версия CentOS 7.2 и имена она будет установлена.
Решаем проблемы
Собственно, если сразу после установки запустить менеджер, получим ошибку – что то типа:
# dnf repolist Failed to open: /var/cache/dnf/x86_64/7/x86_64/7/epel/repodata/dc79e1e8ec5d81d08795bbbe9ecec4750dfba572879cf4b9a6e87a2ee61952b6-updateinfo.xml.bz2.
1 2 |
# dnf repolist Failed toopenvarcachednfx86_647x86_647epelrepodatadc79e1e8ec5d81d08795bbbe9ecec4750dfba572879cf4b9a6e87a2ee61952b6-updateinfo.xml.bz2. |
Очевидно репозиторий epel не пришелся ко двору. Удаляем, проверяем:
# dnf -y remove epel-release
1 | # dnf -y remove epel-release |
Чистим кеш:
# dnf clean all
1 | # dnf clean all |
Проверяем:
# dnf repolist Using metadata from Fri Jul 29 13:58:24 2016 repo id repo name status base CentOS-7 — Base 9,007 extras CentOS-7 — Extras 356 updates CentOS-7 — Updates 2,070
1 2 3 4 5 6 |
# dnf repolist Using metadata from Fri Jul291358242016 repo id repo name status base CentOS-7-Base9,007 extras CentOS-7-Extras356 updates CentOS-7-Updates2,070 |
# rpm -Uhv https://kojipkgs.fedoraproject.org//packages/libsolv/0.6.14/1.el7/x86_64/libsolv-0.6.14-1.el7.x86_64.rpm Retrieving https://kojipkgs.fedoraproject.org//packages/libsolv/0.6.14/1.el7/x86_64/libsolv-0.6.14-1.el7.x86_64.rpm Preparing… ################################# Updating / installing… 1:libsolv-0.6.14-1.el7 ################################# Cleaning up / removing… 2:libsolv-0.6.11-1.el7 #################################
1 2 3 4 5 6 7 |
# rpm -Uhv https://kojipkgs.fedoraproject.org//packages/libsolv/0.6.14/1.el7/x86_64/libsolv-0.6.14-1.el7.x86_64.rpm Retrieving https//kojipkgs.fedoraproject.org//packages/libsolv/0.6.14/1.el7/x86_64/libsolv-0.6.14-1.el7.x86_64.rpm Preparing…################################# Updatinginstalling… 1libsolv-0.6.14-1.el7################################# Cleaning upremoving… 2libsolv-0.6.11-1.el7################################# |
Проверяем:
# dnf repolist Safe Remi’s RPM repository for Enterprise Linux 961 kB/s | 615 kB 00:00 CentOS-7 — Base 3.3 MB/s | 8.8 MB 00:02 CentOS-7 — Updates 3.6 MB/s | 7.6 MB 00:02 Remi’s RPM repository for Enterprise Linux 7 — 3.0 MB/s | 2.1 MB 00:00 CentOS-7 — Extras 779 kB/s | 468 kB 00:00 Using metadata from Tue Aug 2 11:47:13 2016 repo id repo name status base CentOS-7 — Base 9,007 epel Extra Packages for Enterprise Linux 7 — x86_64 10,388 extras CentOS-7 — Extras 356 remi Remi’s RPM repository for Enterprise Linux 7 — x86_64 3,140 remi-safe Safe Remi’s RPM repository for Enterprise Linux 7 — x86_64 1,040 updates CentOS-7 — Updates
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# dnf repolist Safe Remi’s RPM repository for Enterprise Linux 961 kB/s | 615 kB 00:00 CentOS-7 — Base 3.3 MB/s | 8.8 MB 00:02 Remi’sRPM repository forEnterprise Linux7-3.0MBs|2.1MB0000 CentOS-7-Extras779kBs|468kB0000 Using metadata from Tue Aug21147132016 repo id repo name status base CentOS-7-Base9,007 epel Extra Packages forEnterprise Linux7-x86_6410,388 extras CentOS-7-Extras356 remi Remi’s RPM repository for Enterprise Linux 7 — x86_64 3,140 remi-safe Safe Remi’sRPM repository forEnterprise Linux7-x86_641,040 updates CentOS-7-Updates |
Теперь все работает.
2. RPM (Red Hat Package Manager)
Это базовый формат и система управления пакетами, созданная в компании Red Hat. Так же как и dpkg, это низкоуровневый инструмент, для которого существует несколько утилит, это такие пакетные менеджеры Linux:
YUM (Yellowdog Updater, Modified)
Это популярный менеджер пакетов linux с открытым исходным кодом для командной строки. Он используется для управления пакетами в дистрибутиве Red Hat. Если сравнивать с инструментом apt, то здесь есть все те же функциональные возможности, правда, работает немного медленнее. Написан на Python 2. Немного больше об отличиях формата пакетов rpm и deb можно прочитать в отдельной статье. А про сам Yum есть такая статья.
DNF – Улучшенный Yum
Это пакетный менеджер linux, используемый в дистрибутиве Fedora начиная с версии 18. Он представляет из себя следующее поколение YUM.
Сначала он был создан только для экспериментов, но начиная с Fedora 22 он используется как пакетный менеджер по умолчанию. Он работает почти также как и YUM, для разрешения зависимостей используется библиотека libsolv и hawkey, но отличие от YUM, написан на Python 3. Здесь можно наблюдать увеличение скорости работы, а также уменьшение потребления памяти.
Другие популярные репозитории пакетов для CentOS
MariaDB – как можно догадаться из названия, это репозиторий в котором содержатся пакеты MariaDB. Репозиторий cоздан разработчиками MariaDB, поддерживается и обновляется постоянно.
Чтобы установить данный репозиторий в систему, нужно создать для него repo файл с содержимым:
name = MariaDB baseurl = http://yum.mariadb.org/10.4/centos73-amd64/ gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
Nginx – аналогично предыдущему репозиторию, несет в себе пакеты связанные с httpd-сервером nginx.
И подключение данного репозитория, похоже на подключение репозитория MariaDB. Создаем создаем .repo файл и помещаем туда данную информацию:
name=nginx stable repo baseurl=http://nginx.org/packages/CentOS/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key
Данного списка репозиториев хватит для настройки так называемого LAMP, с установленным в качестве front-end сервера nginx-ом.
Пожалуй, этого списка репозиториев хватит практически каждому пользователю, я приведу еще пару примеров более-менее популярных.
Webtatic – данный репозиторий поддерживается ограниченным количеством специалистов, в основном это Andy Thompson, в нем содержаться пакеты относящиеся к php, но менее популярный, чем Remi, и я догадываюсь почему. На момент написания статьи, последняя версия php в этом репозитории была 7.2.
mod_php71w.x86_64 7.1.31-1.w7 webtatic mod_php72w.x86_64 7.2.21-1.w7 webtatic ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ php72w-tidy.x86_64 7.2.21-1.w7 webtatic php72w-xml.x86_64 7.2.21-1.w7 webtatic php72w-xmlrpc.x86_64 7.2.21-1.w7 webtatic
Чтобы подключить данный репозиторий, нужно установить rpm пакет:
MySQL – ну и пожалуй я напомню о mysql. Данный репозиторий не поставил вместе с популярными, так как на мой взгляд mysql как сервер БД отошел на второй план и в основном на сервера устанавливается MariaDB. НО если кто-то желает установить именно mysql (например, для Bitrix нужен именно mysql), вы можеже подключить этот репозиторий себе. Например если хотите подключить mysql 5.7:
Скачиваем пакет:
И устанавливаем его:
После установки, у меня появилась возможность установить mysql:
В этой статье мы показали особенности управления репозиториями в CentOS и рассмотрели полезные репозитории.
Менеджеры пакетов RedHat Enterprise Linux (RHEL)
Менеджер пакетов RPM
RedHat и CentOS — одна из наиболее широко используемых серверных операционных систем, найденных сегодня на серверах. Основным программным обеспечением управления пакетами, установленным в этих системах, является RPM, что сокращает работу Red Hat Package Manager. Этот менеджер пакетов также выполняет основные операции, такие как установка и удаление пакетов, и, как и dpkg, также не может управлять пакетами или устанавливать их непосредственно из Интернета.
Менеджер пакетов YUM
Как и операционные системы на базе Debian, операционные системы RHEL также имеют собственное программное обеспечение для управления пакетами. YUM, сокращение от Yellow Dog Updater, является самым популярным выбором в качестве интерфейса RPM. Он открывает намного больше возможностей для файлов RPM через репозитории, отслеживает, что установлено в системе, упрощает обновление и многое другое. Это эквивалент менеджера пакетов APT на основе RHEL.
DNF, сокращенный для Dandified Packaging Tool, является более модернизированной и расширенной версией менеджера YUM, включающей функции YUM, одновременно повышая производительность и использование ресурсов. На данный момент только Fedora использует эту версию YUM следующего поколения, но, надеюсь, мы увидим, что в будущем она будет распространяться на большее количество операционных систем.
Есть несколько других инструментов управления пакетами, доступных для систем на основе RPM, таких как up2date, urpmi и ZYpp. Однако они не так широко используются как YUM или DNF.