Сборка rpm пакетов и настройка своего репозитория

Yandex mirror для CentOS

mirror.yandex.ru — сайт компании Яндекс, зеркало репозитариев популярных дистрибутивов Linux, FreeBSD и других проектов, в том числе CentOS. Работает по протоколам HTTP, FTP и rsync.

На зеркале CentOS можно скачать дистрибутивы всех актуальных на текущий момент версий, а это версии 5, 6 и 7. Зеркало можно использовать в качестве источников стандартных репозиториев системы — base, updates, extras, centosplus.

Можно использовать, что я неоднократно делал, yandex mirror для сетевой установки CentOS. Путь к установочному образу: http://mirror.yandex.ru/centos/7/os/x86_64/images/

Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.

Red Hat Enterprise Linux — это дистрибутив корпоративного уровня, который продолжает поддерживать старое программное обеспечение, которое давно уже должно было быть забыто. Они делают это не из-за нежелания обновлять систему, а потому что так нужно клиентам. Основная концепция — вы получаете систему и можете пользоваться ей без необходимости обновления версии так долго, сколько захотите.

CentOS основана на Red Hat и ведет себя точно так же. Обновления сосредоточены больше на исправлении уязвимостей в системе, чем на поставлении новых версий программ. Но это не очень подходит, если вы разрабатываете программное обеспечение, требующее более новых версий системных компонентов. Например, если вам нужно PHP 7.0, то получить его будет довольно сложно

В репозиториях, на данный момент есть только PHP 5.4, к тому же очень важно, чтобы программа была совместима с другими компонентами стека, например, веб-сервером

Но что делать, если вам действительно нужно это программное обеспечение? Есть решение. Кроме официальных репозиториев, существуют сторонние репозитории CentOS 7, которые вы можете установить для получения новых версий программ. В этой статье мы рассмотрим самые популярные сторонние репозитории CentOS 7, а также как их устанавливать.

Securing MariaDB

This open-source database management system does not have secure settings by default. To ensure your data is safe, run its installation script to configure the security options.

1. Start by typing the following command to initiate running the security script:

2. Next, you will be presented with the following options:

  • Set root password? [Y/n] – type y (for yes) and hit Enter create a root password for your database
  • Remove anonymous users? [Y/n] – type y and hit Enter
  • Disallow root login remotely? [Y/n] – type y and hit Enter
  • Remove test database and access to it? [Y/n] – type y and hit Enter
  • Reload privilege tables now? [Y/n] – type y and hit Enter

The output informs you that the MariaDB installation is now secure:

Read our article on How to Create a MariaDB User and Grant Privileges.

Информация о действующих параметрах

Для просмотра всех возможных параметров и настойках по умолчанию можно посмотреть выполнив команду:

mysqld --verbose --help
= часть вывода команды с пояснениями =
!!! в консоли у меня не показывается первая часть вывода и как её увидеть я сказу ниже!!!
= в верхней части вы увидите где находится файл настойки =
mysqld Ver 10.3.12-MariaDB-log for Linux on x86_64 (MariaDB Server)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Starts the MariaDB database server.

Usage: mysqld 

Default options are read from the following files in the given order:
/etc/my.cnf ~/.my.cnf

= в этой части увидите вывод всех возможных параметров = 
--thread-handling=name 
                      Define threads usage for handling queries. One of: 
                      one-thread-per-connection, no-threads, pool-of-threads
  --thread-pool-idle-timeout=# 
                      Timeout in seconds for an idle thread in the thread
                      pool.Worker thread will be shut down after timeout
  --thread-pool-max-threads=# 
                      Maximum allowed number of worker threads in the thread
                      pool

= в этой части параметры которые используются по умолчанию =
Variables (--variable-name=value)
and boolean options {FALSE|TRUE}                           Value (after reading options)
---------------------------------------------------------- ---------------
allow-suspicious-udfs                                      FALSE
alter-algorithm                                            DEFAULT
aria                                                       ON
aria-block-size                                            8192
aria-checkpoint-interval                                   30
aria-checkpoint-log-activity                               1048576
aria-encrypt-tables                                        FALSE
aria-force-start-after-recovery-failures                   0
aria-group-commit                                          none
aria-group-commit-interval                                 0
aria-log-dir-path                                          /var/lib/mysql/
aria-log-file-size                                         1073741824
aria-log-purge-type                                        immediate
= в конце информация о том как посмотреть текущие параметры =

To see what values a running MySQL server is using, type
'mysqladmin variables' instead of 'mysqld --verbose --help'.

перевод
Чтобы увидеть, какие значения использует работающий сервер MySQL, введите 'mysqladmin variables' вместо 'mysqld --verbose --help'.

Вся информация в консоли не покажется поэтому лучше вывод сделать в файл:

 mysqld --verbose --help > mysqld--verbose--help.txt

Какие значения использует работающий сервер тоже лучше вывести в файл:

mysqladmin variables -u root -p > mysqladmin-variables.txt
Enter password: 

Разные релизы CentOS

В одном репозитории мы можем легко хранить пакеты для различных релизов операционной системы CentOS (и не только CentOS, но и PPA). Для этого создаем каталог под новый релиз, синхронизируем его с источником и создаем из него репозиторий, например:

mkdir -p /usr/share/nginx/html/repos/6//x86_64

* в данном примере предполагается использование репозитория для релиза 6.

rsync -iavrt —delete —exclude=’repo*’ rsync://mirror.yandex.ru/centos/6/os/x86_64/ /usr/share/nginx/html/repos/6/os/x86_64/

rsync -iavrt —delete —exclude=’repo*’ rsync://mirror.yandex.ru/centos/6/updates/x86_64/ /usr/share/nginx/html/repos/6/updates/x86_64/

createrepo -v /usr/share/nginx/html/repos/6/os/x86_64

createrepo -v /usr/share/nginx/html/repos/6/updates/x86_64

Установка MariaDB в Ubuntu Server 16.04

Переходим на страницу загрузки и выбираем дистрибутив ОС, ее версию, версию MariaDB и указываем предпочитаемое зеркало для скачивания.

После чего сайт создаст запись, которую нужно добавить в файл репозитория.

# Установка пакета управления репозиториями
sudo apt-get install software-properties-common -y
# Импорт и добавление ключа
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
# Добавление репозитория в apt
sudo add-apt-repository 'deb  http://mirror.mephi.ru/mariadb/repo/10.1/ubuntu xenial main'

После импорта ключа и добавления репозитория, можно произвести установку.

sudo apt update && apt install mariadb-server -y

В процессе установки будет предложено задать пароль для root-пользователя MariaDB. Необходимо понимать что речь идет о пользователе СУБД MariaDB, а не о суперпользователе ОС. В MariaDB как и в MySQL, есть собственный root-пользователь и именно для него требуется задать пароль.

Можно создать отдельный файл репозитория. Чтобы сделать отдельный файл, после импорта ключа нужно создать файл в /etc/apt/sources.list.d.

# Установка пакета управления репозиториями
sudo apt-get install software-properties-common -y
# Импорт и добавление ключа
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Создаем файл в директории  /etc/apt/sources.list.d, назвать его можно как угодно, например — mariadb.list.

# Создаем файл
nano /etc/apt/sources.list.d/mariadb.list

# Добавляем в файл содержимое

# MariaDB 10.1 repository list - created 2016-12-24 18:28 UTC
# http://downloads.mariadb.org/mariadb/repositories/
deb  http://mirror.mephi.ru/mariadb/repo/10.1/ubuntu xenial main
deb-src http://mirror.mephi.ru/mariadb/repo/10.1/ubuntu xenial main

Проверяем обновления и устанавливаем MariaDB.

sudo apt update && apt install mariadb-server -y

Установите MariaDB 5.5 на CentOS 7

Версия сервера MariaDB, представленная в репозиториях CentOS по умолчанию, — 5.5. Это не последняя версия, но она достаточно стабильна.

Выполните следующие действия, чтобы установить и защитить MariaDB 5.5 на CentOS 7:

  1. Установите пакет MariaDB с помощью диспетчера пакетов yum:

    Нажмите когда будет предложено продолжить установку.

  2. После завершения установки запустите службу MariaDB и включите ее запуск при загрузке, используя следующие команды:

  3. Чтобы убедиться, что установка прошла успешно, проверьте статус службы MariaDB, набрав:

    Вывод должен показать, что служба активна и работает:

  4. Запустите сценарий который выполнит несколько задач, связанных с безопасностью:

    Вам будет предложено установить пароль пользователя root, удалить учетные записи анонимных пользователей, ограничить доступ пользователя root к локальному компьютеру и удалить тестовую базу данных.

    Шаги описаны подробно. На все вопросы рекомендуется отвечать (да).

Установка MariaDB 10 на CentOS 7

Эта статья «Установка MariaDB 10 на CentOS 7» покажет вам, как установить и настроить MariaDB 10 на CentOS 7. Как вы вероятно уже знаете, сервер базы данных MariaDB теперь по умолчанию на CentOS т.к из-за Oracle (MySQL материнская компания) и вопросов GPL лицензирования. MariaDB с открытым исходным кодом и сообщество постепенно отходит от MySQL и переходит на MariaDB.

Если вы не знаете историю, вот краткое резюме. До Oracle владеющий MySQL, она была основана на GPL (GNU General Public License), которая говорит, что вы можете использовать программное обеспечение бесплатно, но вы не можете изменять и продавать его, если вы не отдаете исходный код. Это означает, что вы можете использовать его в вашем проекте с закрытым исходным кодоме.

Когда Oracle изменила лицензионное соглашение от модели GPL, в основном в с открытым исходным кодом сообщества восстали и некоторые начали группу из MySQL и создали MariaDB.

Поэтому в основном, сервер базы данных MariaDB такой же как и MySQL, но с моделью лицензирования GPL.

Теперь, когда вы знаете немного больше о том, почему и как MariaDB была основана, давайте будем учиться, как установить ее на CentOS 7.

Установка MariaDB на CentOS 7

Теперь, MariaDB является сервер базы данных по умолчанию для CentOS, все что вам нужно сделать, это запустить следующие команды, чтобы установить ее.Проблема в том, что centos загружает и устанавливает более старую, но стабильную версию MariaDB.

Если вы хотите, чтобы установить последнюю версию MariaDB, необходимо добавить его репозиторий программного обеспечения на ваш компьютер и установить. Чтобы сделать это, выполните следующие команды, чтобы создать файл из хранилища.

$ sudo vim /etc/yum.repos.d/MariaDB.repo

Затем скопируйте и вставьте строки что ниже в файл и сохранить его.

name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Наконец, выполните команды ниже, чтобы установить MariaDB 10 на ваш сервер:

$ sudo yum install MariaDB-server MariaDB-client

Если у вас возникли проблемы с ошибками и MariaDB не может быть установлена из-за конфликта с mariadb-libs-xxxx, выполните команду что ниже, чтобы удалить конфликтующие библиотеки,  и после чего повторно запустите установку команды что выше:

$ sudo yum remove mariadb-libs*

Следует также удалить пакет Postfix. Повторно запустите команду что выше, чтобы установить MariaDB.

После завершения установки, выполните команду что ниже, чтобы запустить сервер с MariaDB:

$ sudo /etc/init.d/mysql start

Затем выполните следующую команду, чтобы защитить сервер базы данных.

$ sudo mysql_secure_installation

Затем выберите «Y» (Да) для остальных подсказок, пока вы не закончите.

Enter current password for root (enter for none): press Enter
Set root password? Y
New password: Type new root password
Re-enter new password: Confirm the password
Remove anonymous users? Y
Disallow root login remotely? Y
Remove test database and access to it? Y
Reload privilege tables now? Y

Последнее, необходимо заменить cnf.ini файл по умолчанию в /etc/ для MariaDB. Но для начала нужно перейти в:

$ cd /usr/share/mysql

И использовать один из предопределенных cnf.ini конфигураций которые доступны (Huge, Medium и Small) в данной папке.

Сделаем резервное копирование cnf.ini файла:

$ sudo mv /etc/cnf.ini /etc/cnf.ini.bak

Затем скопируйте один из предварительных конфигураций в MariaDB:

$ sudo cp /usr/share/mysql/my-huge.cnf /etc/cnf.ini

Перезапуск MaraiDB:

$ systemctl restart mysql

Можно проверить статус:

$ systemctl status mariadb

Можно добавить MariaBD в автозагрузку ОС:

Мне нужно создать пользователя и чтобы он мог подключатся из любого компьютера, для этого:

$ mysql -uroot -u
>GRANT ALL PRIVILEGES ON *.* TO 'captain'@'%' IDENTIFIED BY 'my_password' WITH GRANT OPTION;
> exit

Проверим какой порт прослушивает MariaDB с помощью команды SS:

# ss -tnlp | grep 3306
LISTEN 0 0 127.0.0.1:3306 *:* users:(("mysqld",1159,14))

Мой выглядит вот так (я разрешил удаленное подключение к серверу БД):

LISTEN     0      50                        *:3306                     *:*      users:(("mysqld",10884,13))

Установка MariaDB 10 на CentOS 7 завершена.

Обновление репозитория MariaDB YUM до нового мажорного релиза.

Репозиторий MariaDB может быть обновлен до новой основной версии. Как это будет сделано, зависит от того, как вы изначально настроили репозиторий.

Обновление основного релиза с помощью скрипта установки репозитория пакета MariaDB

Если вы настроили для установки из репозитория пакетов MariaDB Corporation MariaDB с помощью сценария установки репозитория пакетов MariaDB , то вы можете обновить основную версию, которую использует репозиторий, повторно запустив сценарий.

Обновление основного релиза с помощью инструмента настройки репозитория MariaDB

Если вы настроили для установки из репозитория MariaDB Foundation MariaDB с помощью инструмента настройки репозитория MariaDB , то вы можете обновить основную версию, которую использует репозиторий, обновив файл конфигурации репозитория на месте. Например, если вы хотите изменить репозиторий с MariaDB 10.2 на MariaDB 10.3 , и если файл конфигурации репозитория находится в , вы можете выполнить следующее:

sudo sed -i 's/10.2/10.3/' /etc/yum.repos.d/MariaDB.repo

После этого репозиторий должен ссылаться на MariaDB 10.3 .

Если репозиторий привязан к определенному второстепенному выпуску, то приведенная выше команда может привести к неверной конфигурации репозитория. В этом случае рекомендуются следующие варианты:

  • Отредактируйте репозитория MariaDB.repo вручную.
  • Или удалите репозитория MariaDB.repo , а затем установите репозиторий новой версии с более надежным скриптом установки репозитория пакетов MariaDB .

Yandex mirror для CentOS

mirror.yandex.ru — сайт компании Яндекс, зеркало репозитариев популярных дистрибутивов Linux, FreeBSD и других проектов, в том числе CentOS. Работает по протоколам HTTP, FTP и rsync.

На зеркале CentOS можно скачать дистрибутивы всех актуальных на текущий момент версий, а это версии 5, 6 и 7. Зеркало можно использовать в качестве источников стандартных репозиториев системы — base, updates, extras, centosplus.

Можно использовать, что я неоднократно делал, yandex mirror для сетевой установки CentOS. Путь к установочному образу: http://mirror.yandex.ru/centos/7/os/x86_64/images/

Устранение неполадок

Поведение некоторых команд

Вывод команды

1
2
3
4

service mysql status

ERROR!MariaDB isnotrunning

 

1
2
3
4
5

 
/etc/init.d/mysql status

ERROR!MariaDB isnotrunning

 
 

При этом systemctl status mariadb.service

1
2
3
4
5
6
7
8
9

systemctl status mariadb.service

●mariadb.service-MariaDB10.2.22database server

Loadedloaded(/usr/lib/systemd/system/mariadb.service;enabled;vendor presetdisabled)

Drop-In/etc/systemd/system/mariadb.service.d

└─migrated-from-my.cnf-settings.conf

Activeactive(running)sinceСр2019-03-06175212MSK;18minago

 
 

Ошибки в логе

1
2
3
4
5
6
7
8
9
10
11
12
13
14

WarningWSREPlast inactive check more than PT1.5Sago(PT3.50162S),skipping check

NoteWSREPview((empty))

ERRORWSREPfailed toopen gcomm backend connection110failed toreach primary view

mysqld6291at gcomm/src/pc.cppconnect()158

ERRORWSREPgcs/src/gcs_core.cppgcs_core_open()209Failed toopen backend connection

ERRORWSREPgcs/src/gcs.cppgcs_open()1458Failed toopen channel’galera_cluster’at

ERRORWSREPgcs connect failedConnection timed out

ERRORWSREPwsrepconnect(gcomm//100.201.203.54,100.201.203.55) failed: 7

mysqld62912019-03-06134838140455129581760ERRORAborting

systemd1mariadb.servicemain process exited,code=exited,status=1/FAILURE

systemd1Failed tostart MariaDB10.2.22database server.

 
 

то выполняем команду

1
2
3

sudo/usr/bin/galera_new_cluster

 

Если в процессе работы получили ошибку

1
2
3

ERRORWSREPfailed toopen gcomm backend connection131invalid UUID00000000(FATAL)at gcomm/src/pc.cppPC()271

 

Выполняем

1
2
3

mv/var/lib/mysql/grastate.dat/var/lib/mysql/grastate.dat.bak

 

И перезагружаем сервис:

1
2
3

systemctl restart mariadb.service

 

Репозитории CentOS 7

Настройка репозиториев CentOS может выполняться ручным редактированием конфигурационных файлов, но более популярен вариант с установкой файла репозитория. Установка репозиториев CentOS 7 выполняется путем установки rpm файла. Так принято для всех репозиториев. Чтобы посмотреть список репозиториев CentOS 7 подключенных к системе, выполните:

А теперь рассмотрим это более подробно, в списке репозиториев.

1. SСL

SСL или Software Collections — это репозиторий от Red Hat, содержащий новые версии пакетов и программного обеспечения. Файл его установщика есть в официальном репозитории, поэтому для установки достаточно набрать:

sudo yum install centos-release-scl

После этого вы можете выполнить поиск нужных пакетов:

sudo yum search php7

И сразу их установить:

sudo yum install rh-php70

Кроме того, вы можете устанавливать пакеты из этого репозитория так, чтобы они не заменяли уже установленные версии программ. Для этого используйте скрипт scl:

scl enable rh-php70 bash

Для работы такого метода нужно установить все необходимые компоненты, например, если нужен еще и MySQL и Python, то их тоже нужно установить. Также понадобится исправить файлы конфигурации Apache.

Пакеты, установленные с помощью scl, не будут активны после перезагрузки. Этот инструмент предназначен для установки нескольких версий пакетов в вашей систему. Вы можете настроить автоматическое включение пакетов, добавив команды enable в скрипт .bashrc. Все файлы устанавливаются в /opt/ поэтому для автоматической загрузки php добавьте такую строчку:

Команда изменит переменные окружения таким образом, чтобы использовалась эта версия программы. Чтобы посмотреть все доступные пакеты в репозитории нужно использовать такую сложную конструкцию:

sudo yum —disablerepo «*» —enablerepo centos-sclo-rh list available | less

Это необходимо, потому что отдельной опции чтобы вывести список пакетов определенного репозитория в yum нет.

2. EPEL

EPEL или Extra Packages for Enterprise Linux — это репозиторий дополнительных пакетов для Red Hat, поддерживаемый командой проекта Fedora. Здесь есть новые версии программ, а также некоторые другие программы, которых нет в официальных репозиториях. Чтобы добавить репозиторий CentOS 7 выполните:

sudo yum install epel-release

Затем вы можете посмотреть список пакетов:

sudo yum —disablerepo «*» —enablerepo epel list available | less

3. Remi Collet

Remi Collet содержит тоже большое количество обновленных пакетов для CentOS от проекта Remi RPM. Этот репозиторий зависит от EPEL. Заметьте, что пакеты из этого репозитория имеют такие же имена, как и в официальных, поэтому это может вызвать нежелательное обновление, так что будьте осторожны.

Для установки необходимо скачать rpm пакет. Выполните:

wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm $ sudo rpm -Uvh remi-release-7*.rpm

4. IUS

Репозиторий IUS — это официальный репозиторий с новыми версиями пакетов от Red Hat. Здесь уже имена пакетов отличаются от используемых в репозитории по умолчанию от CentOS, поэтому проблем с обновлением не возникнет. Чтобы установить репозиторий CentOS 7 выполните:

wget https://centos7.iuscommunity.org/ius-release.rpm $ sudo rpm -Uvh ius-release*.rpm

5. nux-dextop

Есть и репозитории, которые будут полезны, тем, кто хочет использовать CentOS в качестве домашней системы. Этот репозиторий содержит различное дополнительное программное обеспечение, видео кодеки, плееры и так далее. Для его установки выполните:

wget http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm $ sudo yum install -y nux-dextop*

Install MariaDB on CentOS 7 / RHEL 7

You can install the MariaDB package on CentOS 7 / RHEL 7 using two sources.

Install MariaDB from Official MariaDB Mirror

MariaDB foundation offers MariaDB packages for CentOS 7 / RHEL 7. Packages provided by the MariaDB community are always fresh and are supported by them.

Add MariaDB repository to the system that MariaDB offers for CentOS 7 / RHEL 7.

### CentOS 7 ###

cat <<EOF >> /etc/yum.repos.d/mariadb.repo

name = MariaDB
baseurl = http://yum.mariadb.org/10.6/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF

### RHEL 7 ###

cat <<EOF >> /etc/yum.repos.d/mariadb.repo

name = MariaDB
baseurl = http://yum.mariadb.org/10.6/rhel7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF

Install MariaDB server using the following command.

yum install -y MariaDB-server MariaDB-client

Install MariaDB from Base Repository

Installing MariaDB from the base OS repository is a straightforward way. But, the repository may have a bit old version of the MariaDB package.

yum -y install mariadb-server mariadb

Удалить репозиторий в CentOS

Для того, чтобы удалить репозиторий из системы, необходимо узнать его id с помощью команды yum repolist. Об этом я писал в предыдущем разделе. Затем с помощью утилиты yum-config-manager, которая входит в пакет yum-utils выполним удаление:

# yum-config-manager --disable remi-safe
bash: yum-config-manager: command not found

Если получаете такую ошибку, то установите пакет yum-utils:

# yum -y install yum-utils

Удаление репозитория в centos:

# yum-config-manager --disable remi-safe

Теперь проверяем список активных репозиториев:

Удаленного репозитория remi-safe нет. Значит все в порядке, отключение репозитория прошло успешно.

Для того, чтобы обновить кэш yum после изменения репозиториев, можно воспользоваться следующими командами:

Очистить кеш:

# yum clean all

Пересоздать кеш:

# yum makecache
Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
IP-файл
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: