Шпаргалка по менеджеру пакетов YUM в CentOS и RHEL

Шпаргалка по менеджеру пакетов YUM в CentOS и RHEL Хостинг

В этой статье мы рассмотрим чистую установку с нуля и в базовую настройку сервера CentOS 8 в минимальной конфигурации.

Репозиторий EPEL (Extra Packages for Enterprise Linux) предоставляет дополнительные программные пакеты, которые не включены в стандартные репозитории Red Hat и CentOS. Репозиторий EPEL был создан, потому что участники Fedora хотели использовать пакеты, которые они поддерживают в Red Hat Enterprise Linux (RHEL) и его производных, таких как CentOS, Oracle Linux и Scientific Linux.

Включение этого репозитория дает вам доступ к популярным программным пакетам, включая Nginx , R и Python Pip .

В этом руководстве мы покажем вам, как включить репозиторий EPEL в CentOS.

В этой статье мы рассмотрим менеджер пакетов Yum, который позволяет управлять установкой, удалением и обновлением программ (.RPM-пакетов), автоматически разрешать зависимости, управлять дополнительными репозиториями. Данная статья о Yum должна прежде всего быть интересна как шпаргалка для начинающих администраторов Linux.

Yum (Yellowdog Updater Modified) – консольный менеджер пакетов для дистрибутивов Linux, основанных на пакетах формата RPM. (RedHat Package Manager) Сюда входят такие популярные ОС как RedHat, CentOS, Fedora, Oracle Linux, Scientific Linux.

September 26, 2022

Red Hat Enterprise Linux (RHEL), which is usually selected for its reliability and stability, tends to be strict about what makes it into its repositories because quality is paramount. If your RHEL server is running mission-critical applications, then using tried and tested software from official repositories is a valuable strategy.

However, there’s more software out there than what’s in the official repositories, and sometimes it’s useful to have access to a wider range of choices, especially during development and testing, not to mention just general everyday use.

Содержание
  1. Подготовка виртуальной машины
  2. Настраиваем локаль и русскую раскладку
  3. Базовая настройка CentOS 8 после установки
  4. CentOS 8: Установка обновлений и инструментов администратора
  5. Отключение SELinux
  6. Настройка сети в CentOS 8
  7. Установка и смена hostname
  8. Настройка firewalld в CentOS 8
  9. Настройка времени и часового пояса (time-zone)
  10. Настройка истории команда в bash_history
  11. Первый запуск CentOS
  12. Настройка менеджера пакетов
  13. Включение репозитория EPEL на RHEL
  14. Дополнительные полезные параметры yum
  15. Обновление базовой системы после установки
  16. Установка, обновление и удаление пакетов
  17. Финиш
  18. Установка CentOS 8 с помощью ISO-образа
  19. Настройка редактора nano
  20. EPEL for better living
  21. Установка необходимых утилит и программ
  22. Настройка утилиты screen
  23. Полезные плагины yum
  24. Включение репозитория EPEL в CentOS 7
  25. Создание установочных носителей
  26. Загрузка установки CentOS
  27. Использование yum через прокси
  28. Подготовка
  29. Что нового в CentOS 8?
  30. Отключение IPv6
  31. Install EPEL in 3 easy steps
  32. Настройка различных сервисов
  33. Update от 01. 2016
  34. История и логи установки/удаления пакетов
  35. Особенности временной работы с qwertz
  36. Настройка демона sshd
  37. Загрузка образа CentOS
  38. Веб-интерфейс управления сервером в CentOS 8
  39. Предисловие
  40. Конфигурационный файл /etc/yum. conf
  41. Настройка рабочего окружения
  42. Выводы

Подготовка виртуальной машины

Parallels VM Status

Настраиваем локаль и русскую раскладку

$ localectl set-locale LANG="ru_RU.UTF-8" LC_NUMERIC="C" LC_TIME="POSIX" LC_MESSAGES="POSIX"
$ localectl set-keymap us ru --no-convert
$ localectl set-x11-keymap us,ru pc105 grp:ctrl_shift_toggle --no-convert
$ localectl status
   System Locale: LANG=ru_RU.UTF-8
                  LC_NUMERIC=C
                  LC_TIME=POSIX
                  LC_MESSAGES=POSIX
       VC Keymap: us
VC Toggle Keymap: ru
      X11 Layout: us,ru
       X11 Model: pc105
     X11 Variant: grp:ctrl_shift_toggle
$ sed -i --follow-symlinks 's/vconsole.font=[^ ]*/vconsole.font=latarcyrheb-sun16/g' \
	/etc/sysconfig/grub
$ sed -i --follow-symlinks 's/vconsole.keymap=[^ ]*/vconsole.keymap=ru/g' \
	/etc/sysconfig/grub
$ grub2-mkconfig --output=/boot/grub2/grub.cfg
$ loadkeys /lib/kbd/keymaps/i386/qwerty/ru.map.gz

Базовая настройка CentOS 8 после установки

Базовая настройка CentOS 8 практически не отличается от настройки CentOS, я делаю базовые настройки одинаковые на всех серверах.

CentOS 8: Установка обновлений и инструментов администратора

Как уже отмечалось ранее, в CentOS 8 на замену yum, пришел dnf.

Dnf – это следующее поколение приложения YUM, менеджер пакетов для дистрибутивов Linux на основе RPM-пакетов. Ранее dnf использовался в дистрибутивах Fedora, а теперь и в CentOS 8.

Первое действие, которое я выполняю на вновь установленном сервере, это обновление системы:

dnf update -y

Если образ свежий, то скорее всего у вас не будет пакетов для обновлений как в моем случае:

Last metadata expiration check: 0:21:47 ago on Wed 09 Oct 2019 02:36:45 PM +06.
Dependencies resolved.
Nothing to do.
Complete!

Если у вас обнаружатся обновления, обязательно их установите.

Следующим шагом, подключим репозиторий EPEL и установим необходимые утилиты для удобного администарирования сервера:

dnf install epel-release -y
dnf install mc wget screen nano net-tools bind-utils curl lsof vim -y

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

Автоматическое обновление системы я не включаю, так как всегда устанавливаю необходимые обновления вручную. Если вы хотите настроить автоматическое обновление, установите пакет dnf-automatic:

dnf install -y dnf-automatic

Чтобы проверить активные задания на обновления системы введите:

systemctl list-timers *dnf-*

Отключение SELinux

На начальном этапе я всегда отключаю SELinux (для применения изменения нужно перезагрузить сервер):

Отключение SELinux налету, можно выполнить командой:

Настройка сети в CentOS 8

Так как сеть я настроил на этапе установки системы, настройка ее в данный момент не требуется (подробная статья по настройке сети в CentOS). Хочу лишь сказать, что в CentOS 8, сеть управляется только через Network Manager и утилиту nmcl. Network-scripts по умолчанию не поддерживаются. Если честно, в своей работе я всегда отключал NM и не использовал, для меня это не удобный инструмент, теперь придется разбираться и с ним.

Проверка статуса сети:

● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-10-07 08:23:11 MSK; 3h 37min ago
Docs: man:NetworkManager(8)
Main PID: 870 (NetworkManager)
Tasks: 3 (limit: 5060)
Memory: 4.7M
CGroup: /system.slice/NetworkManager.service
└─870 /usr/sbin/NetworkManager --no-daemon

Установка и смена hostname

Если вы не задали корректный hostname сервера при установке или просто хотите изменить, это можно выполнить несколькими способами. Измените его в файле /etc/hostname или поменяйте с помощью команды:

hostnamectl set-hostname нужный_хостнейм

Настройка firewalld в CentOS 8

Добавим в доверенные зоны на firewalld, нужные для начальной работы сервисы (SSH и HTTP/HTTPS):

firewall-cmd –-add-service=ssh
firewall-cmd --permanent –-add-service=http
firewall-cmd --permanent –-add-service=https

Настройка времени и часового пояса (time-zone)

Чтобы посмотреть текущее время и time-zone, нужно ввести команду date:

Wed Oct 9 13:03:00 MSK 2019

Мы указали time-zone при установке самой системы, поэтому у нас время по Москве. Чтобы поменять time-zone, нужно воспользоваться соответствующей командой:

timedatectl set-timezone Europe/Moscow

Где вместо Europe/Moscow вы можете указать свой вариант, например:

Mon Oct 7 15:46:22 +06 2019

Для синхронизации времени используется chronyd, мы включим его и добавим в автозагрузку через systemctl:

systemctl start chronyd
systemctl enable chronyd

● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-10-07 16:13:48 +06; 9s ago
Docs: man:chronyd(8)
man:chrony.conf(5)
Main PID: 31700 (chronyd)
Tasks: 1 (limit: 5060)
Memory: 1.1M
CGroup: /system.slice/chronyd.service
└─31700 /usr/sbin/chronyd

Настройка истории команда в bash_history

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

При настройке по умолчанию, вывод history выглядит следующим образом:

1 dnf repolist
2 dnf install epel-release

То есть мы видим, что выполнялось на сервере, но не видим время и точную дату, для меня это критично, так как доступ к серверам могут иметь несколько специалистов. Поэтому приведем history к приятному виду:

Откроем файл /root/.bashrc и добавим в него нужные строки:
nano /root/.bashrc

export HISTSIZE=10000
export HISTTIMEFORMAT="%h/%d/%y - %H:%M:%S "

Теперь при проверке history, мы видим точное время выполнения той или иной команды:

1 Oct/07/19 - 16:16:29 dnf repolist
2 Oct/07/19 - 16:16:29 dnf install epel-release

Первый запуск CentOS

После загрузки загрузчика появится меню выбора загрузки, в котором можно ничего не нажимать, по умолчанию запустится первый вариант «CentOS Linux, with Linux 3.10.0-123.el7.x86_64».

CentOS: Grub Menu

Загрузка по умолчанию достаточно молчаливая, не показывается ровным счётом ничего. А после загрузки нас ждёт стандартное приглашение ввода имени пользователя и пароля.

CentOS: Login

Дальше кому как удобно – можно либо подключаться через ssh, либо входить используя консоль.

$ yum -y install nano
$ echo %email% >~/.forward
$ chcon -u system_u ~/.forward

.forward

$ restorecon -v /root/.forward

Настройка менеджера пакетов

Ограничиваем количество установленных версий пакетов до 3-х (например количество версий установленного ядра):

$ nano -w /etc/yum.conf
installonly_limit=3
$ yum -y install yum-cron yum-utils
$ nano -w /etc/yum/yum-cron.conf
download_updates = no
$ systemctl enable yum-cron.service
$ systemctl start yum-cron.service

Включение репозитория EPEL на RHEL

Этот метод будет работать с любым дистрибутивом на основе RHEL, включая Red Hat, CentOS 6 и 7, Oracle Linux, Amazon Linux и Scientific Linux.

Чтобы включить репозиторий EPEL, выполните следующую команду, которая загрузит и установит пакет выпуска EPEL:

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(rpm -E '%{rhel}').noarch.rpm

Дополнительные полезные параметры yum

У утилиты yum есть несколько полезных опций, которые часто приходитя использовать при управлении пакетами. Чтобы при установке или удалении пакетов, после ввода команды не предпринимать никаких действий, можно воспользоваться опцией
-y
, например,:

yum update -y yum install httpd -y

Чтобы ответить no при запросе, нужно указать опцию:

Использовать yum без плагинов или отключить конкретный плагин:

Включить отключенный плагин:

Задействовать отключенный репозиторий:

yum update –enablerepo=atomic

Отключить определенный репозиторий:

yum update –disablerepo=atomic

Обновление базовой системы после установки

$ yum -y update

Установка, обновление и удаление пакетов

С чего начать? Пожалуй, как и в любых других случаях, начинаем со справки:

yum help
– полная справка по менеджеру пакетов yum

Открыв ее, я выделю основные команды:

yum clean all
– очистить кеш всех пакетов (обчычно используется при возникновении проблем при работе yum).
yum makecache
– пересоздать кеш пакетов заново.
yum repolist
– отобразить список подключенных репозиториев, вывод выглядит так:

Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.fasthost.ru * extras: mirror.fasthost.ru * updates: mirror.fasthost.ru  

repo id repo name status base/7/x86_64 CentOS-7 - Base 10,019 extras/7/x86_64 CentOS-7 - Extras 435 updates/7/x86_64 CentOS-7 - Updates 2,500 repolist: 12,954 

У меня в системе установлены только стандартные репозитории CentOS-7: Base, Extras и Updates.

yum list available
– вывести список всех доступных пакетов для установки.

yum list installed
– список всех пакетов, которые установлены в системе.

yum list kernel
– вывести список пакетов, которые относятся к ядру Linux.

Вы можете проверить установлен ли в вашей системе определенный пакет, например, apache:

yum list installed httpd

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.fasthost.ru
* extras: mirror.fasthost.ru
* updates: mirror.fasthost.ru
Installed Packages
httpd.x86_64 2.4.6-89.el7.centos.1 @updates
 

yum info mariadb

yum info получить информацию о пакете

Чтобы установить пакет используется команда yum install. Для установки веб-сервера apache выполните:

yum install httpd

Если при выплнении команд yum вы получаете ошибку
Traceback (most recent call last):thread.error: can't start new thread
, скорее всего у вас не хватает оперативной памяти. Попробуйте добавить RAM или отключите плагины yum (в /etc/yum.conf укажите plugins=0).

Перед установкой пакета можно проверить его на зависимости и необходимые пакеты с помощью команды:

yum deplist httpd

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

yum install epel-*

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.fasthost.ru
* extras: centos.fasthost.ru
* updates: centos.fasthost.ru
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch 0:7-11 will be installed
--> Finished Dependency Resolution
Install 1 Package
Total download size: 15 k
 Installed size: 24 k
Is this ok [y/d/N]:

Если ввести просто:

yum install epel

No package epel available.
Error: Nothing to do

Увы, пакета не видно.

Yum позволяет установить сразу несколько пакетов:

yum install httpd php wget rsyslog

yum reinstall proftpd

Чтобы удалить установленный пакет с помощью yum используется параметр
remove
:

yum remove httpd

Но перед удалением любого пакета, рекомендуется сначала проверить его на зависимости (бывают пакеты, удаление которых влечет за собой удаление множества других пакетов, что в следствии приводит к неработоспособности системы):

Читайте также:  9 лучших облачных хостингов в 2022: надежные и доступные

yum deplist proftpd

yum deplist проверка зависимости пакетов

Найти пакет по имени или описанию:

yum search nginx

С помощью опции provides вы можете найти пакеты, содержавшие определенный файл, например:

yum provides */squid.conf

Выполнить обновление всех установленных пакетов можно с помощью команды:

Вы можете обновить только определенный пакет, указав его имя:

yum update php

Проверить если доступные обновления для системы можно командой:

Получить информацию о доступных обновлениях безопасности:

yum updateinfo list security

Бывают случаи, когда после обновления какого-либо пакета или сервиса, возникают проблемы. Например, после обновления php, перестал работать ваш сайт. Вы можете вернуть предыдущую версию пакета, откатив установленный пакет через yum:

yum downgrade perl

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

Рассмотрим на примере группового листа «Basic Web Server». Получить информацию группе и пакетах в ней:

yum groupinfo "Basic Web Server"

yum groupinfo

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

группы пакетов в yum

Как видим в данном листе содержатся пакеты, которые будут полезны для мониторинга и отладки.

Установить групповой лист можно командой:

Установленные пакеты будут в отдельном блоке «Installed Groups»:

yum groupinstall "System Administration Tools"

Финиш

И, наконец, перезагружаем наш сервер:

$ reboot

Установка CentOS 8 с помощью ISO-образа

Так как я проводил установку операционной системы на виртуальной машине KVM, предварительно я скачал установочный ISO-образ с одного из официальных зеркал (https://www.centos.org/download/mirrors/) и примонтировал его для установки на виртуальном сервере (при установке на физический сервер залейте установочный образ СentOS на USB флешку). Сразу скажу, процесс установки CentOS 8, не отличается от установки предыдущей версии и данная статья рассчитана на то, что будет служить помощником для пользователей, которые выполняют подобное впервые.

В рекомендуемых требования указано, что для установки CentOS 8 необходимо минимум 10 Гб места на диске и 512 Мб RAM на одно ядро процессора

Перезапустив виртуальную машину с примонтированным образом, я вошел в VNC-консоль. Первым шагом, вам будет предложено выбрать дальнейшие действия. Так как вы выполняем установку, нам интересен первый пункт меню:

Install CentOS Linux 8.0.1905

Install CentOS Linux 8.0.1905

Выбрав его, у вас запустится процесс установки:

запуск установки centos 8

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

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

язык установки centos 8

В приветствии, система попросит вас выбрать язык, я всегда ставлю English (английский), потому что мне так удобнее работать (да и не понимаю, зачем вообще ставить русский язык на сервере). Нажмите кнопку “Continue”. В следующем меню нужно выбрать основные настройки для установки CentOS.

параметры установки centos 8

Для запуска установки, обязательно настроить только один пункт “Installation Destination”, там вы указываете разбивку диска, но я предпочитаю так же, сразу настроить сеть и дату со временем.

выбор часового пояса в centos

В зависимости от вашего часового пояса, вы устанавливаете свои параметры, для меня это Москва.

Чтобы настроить сеть, переходим в пункт “Network & Host Name”

настройка сети при установке centos 8

В поле “Host Name” указываем имя сервера и для конфигурации сетевых интерфейсов нажимаем “Configure”

автоматически подключать сеть

В главной вкладке, нужно отметить галочкой “Automatically connect to this network when it is available”, это нужно для того, чтобы сетевой интерфейс поднимался автоматически.

задать статический ip адрес при установке centos 8

Для ввода конкретного IP, нужно выбрать метод “Manual” и нажать кнопку “Add”, после чего у вас появится возможность ввести нужные данные. Сохранив все, мы вернемся к начальному окну настроек сети

сеть в centos подключена

Как можно увидеть на скриншоте, IP адрес добавился и сетевой интерфейс уже поднят (состояние Connected).

Следующим шагом мы перейдем к разбивке диска:

настройка диска при установке centos 8

Для примера установки я воспользовался автоматической разбивкой от разработчиков CentOS. Если вы хотите разбить диск по-своему, нужно выбрать пункт “Custom”.

Так как на моей виртуальной машине, ранее была установлена ОС, система установки увидела это. Я удалил разделы предыдущей операционной системы в последующих открывающихся меню:

очистка разделов на диске при установке centos 8

reclaim disk space

Удалить разделы можно кнопкой “Delete all”, после чего потребуется нажать кнопку “Reclaim space”, чтобы размер дискового пространства стал актуальным.

Список пакетов для установки выбирается в пункте Software Selection. Если вы планируете использовать CentOS 8 в качестве сервера, достаточно выбрать Minimal Install, а из добавлений Standard и Guest Agents (если вы ставите гостевую ОС в виртуальной машине).

После вышеописанных действий, можно запускать установку кнопкой “Begin Installation”

начать установку centos 8

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

задать пароль root и создать новаых пользователей при установке centos 8

Нажмите на кнопку “Root Password”, введите и повторите пароль и нажмите “Done”, чтобы вернуться к установке:

пароль root

Изначально я задаю простой пароль, чтобы в случае проблем с сетью, я мог легко его ввести в VNC-консоли и исправить проблемы. После того, как система будет установлена, пароль рекомендуется изменить на более сложный. Установка CentOS 8 у меня заняла порядка 5-7 минут и когда в окне установки загорится кнопка “Reboot”, это означает, что все было установлено и нужно перезапустить сервер.

перезагрузка сервера после устаноовки centos 8

На этом установка CentOS 8 завершена.

Настройка редактора nano

nano – отличный маленький редактор. Но многие его почему-то незаслуженно не любят. Это зря. С небольшими донастройками nano умеет даже подсветку синтаксиса. Не так круто как тот же vim, но в целом всё равно получается лучше чем чёрно-белый.

$ nano -w ~/.nanorc
#----------------------------------------------------------------------------
# ~/.nanorc: executed by nano for user settings
# $Revision: 2.10 (CentOS Edition by Wakko Warner) $
# $Comment: Any comments please send to wakko@acmelabs.spb.ru $
#----------------------------------------------------------------------------

## Constantly display the cursor position in the status bar.
  set const

## Enable mouse support, so that mouse clicks can be used to set the
## mark and run shortcuts.
  set mouse

## Don't wrap text at all.
  set nowrap

## Use smooth scrolling as the default.
  set smooth

## -----------------------------------------------------------------------------
## *conf-files
#
  syntax "configfiles" "\/etc" "(\.|/|)ini$" "(\.|/|)cf$" "(\.|/|)conf$" "(\.|/|)cnf$" "(\.|/|)include$" "(\.|/|)ample$" "(\.|/|)globals$" "xfce.*$" "syslog-ng" "sudoers" "(\.|/|)config$" "(\.|/|)COLORS$" "(\.|/|)colors$"
  color red "/.*$" "TERM" "\..*$" "=.*$" "\*.*$"
  color brightgreen ":unscaled" "[0-9]"
  color brightwhite "setenv|export" "\;"
  color brightwhite "\<(alias)\>"
  color brightgreen "<(\\.|[^'])*>"
  color magenta "[a-zA-Z_0-9\-\ \	]+(	| |)+="
  color brightwhite ">(\\.|[^'><])*" "\<(logfile)\>" "\<(driftfile)\>" "\<(restrict)\>"
  color brightwhite ":unscaled" "http\:\/\/" "ftp\:\/\/" "rsync\:\/\/"
  color magenta "'(\\.|[^'])*'"
  color brightwhite "[0-9]"
  color brightwhite "[<>]"
  color brightgreen "\[[a-zA-Z_0-9\ \-]+\]"
  color magenta "Section" "EndSection" "SubSection" "EndSubSection"
  color red "\<(root)\>"
  color brightred,blue "^.*-->" start="<!--.*" end="$"
## strings
  color brightyellow "\"(\\.|[^\"])*\"" "'(\\.|[^'])*'" "`(\\.|[^'])*`" "\{(\\.|[^'])*\}"
## comments
  color green "^( *|	*)#.*$" start="<!--" end="-->"
  color green ";.*$"
## header
  color brightgreen "^( *|	*)[#;]+ *\/etc\/[a-zA-Z_0-9]+.*$"
  color brightgreen "^( *|	*)[#;]+ *\$[a-zA-Z_0-9]+:.*$"

## -----------------------------------------------------------------------------
## /etc/group, /etc/passwd, /etc/shadow
#
  syntax "passwd" "(\.|/|)group(.*)$" "(\.|/|)passwd(.*)$" "(\.|/|)shadow(.*)$"
  color white ".*$"
  color green "\:.*$"
  color yellow "\:*\:"
  color cyan "/.*$"
  color red "/bin/false"
  color red "/sbin/nologin"
  color brightred "root"
  color brightgreen "/bin/.*sh"
  color white "[0-9]"
  color magenta "\:\/.*\:"

## -----------------------------------------------------------------------------
## *tab-files ( e.g. fstab, crontab, inittab )
#
  syntax "fstab" "(\.|/|)tab$"
  color brightwhite "[0-9,\*]"
  color yellow "-([a-z])\>"
  color magenta "\<(none)\>.*$" "\<(wait)\>" "\<(respawn)\>"
  color red "/dev/hd.*$" "\<(ctrlaltdel)\>" "\<(initdefault)\>"
  color brightgreen "/dev/sr.*$" "/dev/cd.*$" "\/sbin.*$"
  color cyan "/dev/sd.*$"
  color brightcyan "^.*(nfs|smbfs|tmpfs).*$"
  color yellow "/dev/fd.*$"
  color red "root"
  color cyan "\<(rm|test)\>"
  color cyan "((\/|\/usr\/|\/usr\/local\/)(bin\/|sbin\/)[a-zA-Z_0-9,-]+)"
  color magenta "(\$|)[a-zA-Z_0-9]+( |)="
  color red "\$\{?[a-zA-Z_0-9]+\}?"
## comments
  color green "^( *|	*)#.*$"
## header
  color brightgreen "^( *|	*)[#]+ *\$[a-zA-Z_0-9]+:.*$"

## Color setup
  include "/usr/share/nano/asm.nanorc"
  include "/usr/share/nano/awk.nanorc"
  include "/usr/share/nano/cmake.nanorc"
  include "/usr/share/nano/c.nanorc"
  include "/usr/share/nano/css.nanorc"
  include "/usr/share/nano/debian.nanorc"
  include "/usr/share/nano/fortran.nanorc"
  include "/usr/share/nano/gentoo.nanorc"
  include "/usr/share/nano/groff.nanorc"
  include "/usr/share/nano/html.nanorc"
  include "/usr/share/nano/java.nanorc"
  include "/usr/share/nano/lua.nanorc"
  include "/usr/share/nano/makefile.nanorc"
  include "/usr/share/nano/man.nanorc"
  include "/usr/share/nano/mgp.nanorc"
  include "/usr/share/nano/mutt.nanorc"
  include "/usr/share/nano/nanorc.nanorc"
  include "/usr/share/nano/objc.nanorc"
  include "/usr/share/nano/ocaml.nanorc"
  include "/usr/share/nano/patch.nanorc"
  include "/usr/share/nano/perl.nanorc"
  include "/usr/share/nano/php.nanorc"
  include "/usr/share/nano/pov.nanorc"
  include "/usr/share/nano/python.nanorc"
  include "/usr/share/nano/ruby.nanorc"
  include "/usr/share/nano/sh.nanorc"
  include "/usr/share/nano/spec.nanorc"
  include "/usr/share/nano/tcl.nanorc"
  include "/usr/share/nano/tex.nanorc"
  include "/usr/share/nano/xml.nanorc"

EPEL for better living

The EPEL repository is a great convenience repo to help you get the software you may not necessarily need but definitely want. The first thing I installed on my RHEL laptop was EPEL, and I love the applications it makes available to me.

Try EPEL out, and if you package applications, consider contributing to the repository, so others can benefit from your hard work!

Установка необходимых утилит и программ

Теперь подключаем EPEL-репозиторий (Extra Packages for Enterprise Linux) и доустанавливаем необходимые пакеты, отсутствующие в базовой установке:

$ rpm -Uvh http://mirror.yandex.ru/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
$ rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
$ yum -y install bash-completion logwatch lsscsi mc mlocate mtr nfs-utils parted pciutils \
         pinfo policycoreutils-python rsync screen sysstat telnet unzip usbutils wget
$ yum -y install atop --enablerepo=epel-testing

atop

$ yum -y install atop
ATOP - centos            2014/09/14  15:12:22            ---------             12h1m4s elapsed
PRC |  sys   37.23s   |  user  12.51s   |  #proc    194  |   #zombie    0  |   #exit      0  |
CPU |  sys       0%   |  user      0%   |  irq       0%  |   idle    400%  |   wait      0%  |
cpu |  sys       0%   |  user      0%   |  irq       0%  |   idle    100%  |   cpu002 w  0%  |
cpu |  sys       0%   |  user      0%   |  irq       0%  |   idle    100%  |   cpu001 w  0%  |
cpu |  sys       0%   |  user      0%   |  irq       0%  |   idle    100%  |   cpu003 w  0%  |
cpu |  sys       0%   |  user      0%   |  irq       0%  |   idle    100%  |   cpu000 w  0%  |
CPL |  avg1    0.00   |  avg5    0.01   |  avg15   0.05  |   csw  1279901  |   intr 4020376  |
MEM |  tot   990.6M   |  free  538.6M   |  cache 198.1M  |   buff    0.7M  |   slab  136.9M  |
SWP |  tot     3.8G   |  free    3.8G   |                |   vmcom 309.8M  |   vmlim   4.3G  |
LVM |  ntos-lv_root   |  busy      0%   |  read    5419  |   write   5933  |   avio 0.65 ms  |
LVM |  ntos-lv_swap   |  busy      0%   |  read     216  |   write      0  |   avio 0.07 ms  |
DSK |           sda   |  busy      0%   |  read    6164  |   write   6056  |   avio 0.61 ms  |
NET |  transport      |  tcpi 6376629   |  tcpo 6373269  |   udpi    2957  |   udpo    2966  |
NET |  network        |  ipi  6439613   |  ipo  6376153  |   ipfrw      0  |   deliv 6380e3  |
NET |  eth0    ----   |  pcki 6443870   |  pcko 6377318  |   si   75 Kbps  |   so   77 Kbps  |
NET |  lo      ----   |  pcki       6   |  pcko       6  |   si    0 Kbps  |   so    0 Kbps  |
                        *** system and process activity since boot ***
  PID   TID  THR SYSCPU USRCPU  VGROW  RGROW  RDDSK  WRDSK ST EXC S CPUNR  CPU CMD        1/10
  704     -    5  0.76s  7.78s 537.1M 16096K  2784K    16K N-   - S     3   0% tuned
   41     -    1  7.72s  0.00s     0K     0K     0K     0K N-   - S     2   0% rcu_sched
   44     -    1  6.17s  0.00s     0K     0K     0K     0K N-   - S     3   0% rcuos/2
  467     -    1  4.50s  0.00s     0K     0K     0K     0K N-   - S     0   0% xfsaild/dm-0
  705     -    1  3.67s  0.69s 19112K  1172K   144K     0K N-   - S     3   0% irqbalance
    1     -    1  1.45s  0.54s 50028K  6624K 45321K    84K N-   - S     0   0% systemd
  549     -    1  1.36s  0.37s 54308K  6544K   584K     0K N-   - S     2   0% systemd-journa
   43     -    1  1.23s  0.00s     0K     0K     0K     0K N-   - S     3   0% rcuos/1
  709     -    2  0.33s  0.54s 34996K  2072K   612K     0K N-   - S     2   0% dbus-daemon
  712     -    1  0.78s  0.08s 123.4M  1728K 14104K 15356K N-   - S     2   0% crond
  827     -    3  0.26s  0.49s 441.1M  8900K  9640K     0K N-   - S     3   0% NetworkManager
   75     -    1  0.75s  0.00s     0K     0K     0K     0K N-   - S     1   0% watchdog/1
  698     -    2  0.37s  0.33s 319.6M 20924K 11148K     4K N-   - S     0   0% firewalld
   45     -    1  0.69s  0.00s     0K     0K     0K     0K N-   - S     2   0% rcuos/3
   74     -    1  0.67s  0.00s     0K     0K     0K     0K N-   - S     0   0% watchdog/0
   80     -    1  0.62s  0.00s     0K     0K     0K     0K N-   - S     2   0% watchdog/2
   85     -    1  0.60s  0.00s     0K     0K     0K     0K N-   - S     3   0% watchdog/3
 2373     -    1  0.41s  0.09s 130.3M  4956K   268K     4K N-   - S     3   0% sshd
  738     -    1  0.46s  0.00s     0K     0K     0K     0K N-   - S     0   0% kworker/0:3
 2378     -    1  0.14s  0.31s 113.5M  3092K 76272K 27208K N-   - S     1   0% bash
 1836     -    1  0.36s  0.06s 91528K  2200K   284K     8K N-   - S     2   0% master

Настройка утилиты screen

Я люблю работать в screen, во-первых если, вдруг отвалится связь до удалённого сервера – сеанс не завершится, а продолжит своё выполнение. Особенно это актуально если удалённо был запущен какой-нибудь длительный процесс, который не желательно прерывать.
Ну и плюс, я настроил screen таким образом, что при его запуске – у нас сразу же создаются 10 консолей, и переключаться между ними так же удобно как если бы вы сидели за рельной консолью Linux, по Alt+F1, Alt+F2 и т.д. до Alt+F10. Можно ещё нажимая клавиши Ctrl+Alt+Left/Right переключаться между консолями влево-вправо.

Читайте также:  Схема подключения Asterisk: упрощенное руководство для простого понимания

$ nano -w ~/.screenrc
#----------------------------------------------------------------------------
# ~/.screenrc: executed by screen for user settings
# $Revision: 2.10 (CentOS Edition by Wakko Warner) $
# $Comment: Any comments please send to wakko@acmelabs.spb.ru $
#----------------------------------------------------------------------------

  hardstatus string "[screen %n%?: %t%?] %h"
  defshell -bash
  shell -$SHELL

# VARIABLES
# ===============================================================
# Automatically detach on hangup. 
  autodetach on				# default: on
# Don't display the copyright page
  startup_message off			# default: on
# Affects the copying of text regions
  crlf off				# default: off
# Change default scrollback value for new windows
  defscrollback 1000			# default: 100
# Define the time that all windows monitored for silence should 
# wait before displaying a message. Default 30 seconds.
  silencewait 15			# default: 30
# UTF-8 support
  defutf8 on
# PuTTY tweaks
  termcapinfo xterm* ti@:te@
  termcapinfo xterm ti@:te@

# KEYBINDINGS
# ==============================================================
# Alt+Fn keys.
  bindkey "^[^[OC" next
  bindkey "^[^[OD" prev
  bindkey "^[^[OP" select 0
  bindkey "^[^[OQ" select 1
  bindkey "^[^[OR" select 2
  bindkey "^[^[OS" select 3
  bindkey "^[^[[15~" select 4
  bindkey "^[^[[17~" select 5
  bindkey "^[^[[18~" select 6
  bindkey "^[^[[19~" select 7
  bindkey "^[^[[20~" select 8
  bindkey "^[^[[21~" select 9

# STARTUP SCREENS
# ===============================================================
# Uncomment one/some following lines to automatically let
# SCREEN start some programs in the given window numbers:
# screen -t IRC         1 irssi
# screen -t EDIT        1 vim
# screen -t GOOGLE      2 links http://www.google.com
# screen -t NEWS        3 slrn
# screen -t WWW         4 links http://rt.com
  screen -t F1		0
  screen -t F2		1
  screen -t F3		2
  screen -t F4		3
  screen -t F5		4
  screen -t F6		5
  screen -t F7		6
  screen -t F8		7
  screen -t F9		8
  screen -t F10		9
  select 0

.screenrc

shell -$SHELL

Полезные плагины yum

Для чего нужны плагины в yum? Как и везде, упрощают нашу работу.

Некоторые популярные плагины и их описание:

yum-plugin-fastestmirror – плагин служащий для измерения скорости зеркал и предоставления самого быстрого для установки пакетов.

yum-plugin-security — плагин которые предоставляет список обновлений относящихся только к безопасности системы.

yum-plugin-keys — позволяет работать с ключами keys, keys-info, keys-data, keys-remove

Директория где хранятся все плагины /etc/yum/

yum-plugin-versionlock – позволяет блокировать обновление указанных пакетов

Чтобы вывести список доступных плагинов yum, выполните:

yum search yum-plugin

======================================================================= N/S matched: yum-plugin =======================================================================
PackageKit-yum-plugin.x86_64 : Tell PackageKit to check for updates when yum exits
fusioninventory-agent-yum-plugin.noarch : Ask FusionInventory agent to send an inventory when yum exits
kabi-yum-plugins.noarch : The CentOS Linux kernel ABI yum plugin
yum-plugin-aliases.noarch : Yum plugin to enable aliases filters
yum-plugin-auto-update-debug-info.noarch : Yum plugin to enable automatic updates to installed debuginfo packages
yum-plugin-changelog.noarch : Yum plugin for viewing package changelogs before/after updating
yum-plugin-copr.noarch : Yum plugin to add copr command
yum-plugin-fastestmirror.noarch : Yum plugin which chooses fastest repository from a mirrorlist
yum-plugin-filter-data.noarch : Yum plugin to list filter based on package data
yum-plugin-fs-snapshot.noarch : Yum plugin to automatically snapshot your filesystems during updates
yum-plugin-keys.noarch : Yum plugin to deal with signing keys
yum-plugin-list-data.noarch : Yum plugin to list aggregate package data
yum-plugin-local.noarch : Yum plugin to automatically manage a local repo. of downloaded packages
yum-plugin-merge-conf.noarch : Yum plugin to merge configuration changes when installing packages
yum-plugin-ovl.noarch : Yum plugin to work around overlayfs issues
yum-plugin-post-transaction-actions.noarch : Yum plugin to run arbitrary commands when certain pkgs are acted on
yum-plugin-pre-transaction-actions.noarch : Yum plugin to run arbitrary commands when certain pkgs are acted on
yum-plugin-priorities.noarch : plugin to give priorities to packages from different repos
yum-plugin-protectbase.noarch : Yum plugin to protect packages from certain repositories.
yum-plugin-ps.noarch : Yum plugin to look at processes, with respect to packages
yum-plugin-remove-with-leaves.noarch : Yum plugin to remove dependencies which are no longer used because of a removal
yum-plugin-rpm-warm-cache.noarch : Yum plugin to access the rpmdb files early to warm up access to the db
yum-plugin-show-leaves.noarch : Yum plugin which shows newly installed leaf packages
yum-plugin-tmprepo.noarch : Yum plugin to add temporary repositories
yum-plugin-tsflags.noarch : Yum plugin to add tsflags by a commandline option
yum-plugin-upgrade-helper.noarch : Yum plugin to help upgrades to the next distribution version
yum-plugin-verify.noarch : Yum plugin to add verify command, and options
yum-plugin-versionlock.noarch : Yum plugin to lock specified packages from being updated

Вы можете установить выбранный плагин командой yum install, как и любой другой пакет:

yum install yum-plugin-changelog

yum -y install yum-versionlock

Чтобы заблокировать обновление пакета через плагин, выполните:

yum versionlock nginx

Вывести список заблокировнных пакетов:

yum versionlock list

Убрать пакет из заблокированных:

yum versionlock delete nginx

yum versionlock - блокировка пакета от обновления

Если вам в какой-то момент времени не нужно использовать определенный плагин, вы его можете отключить, добавив префикс при вызове yum:

Или же отключить вообще все плагины, установленные в системе:

Включение репозитория EPEL в CentOS 7

Включение репозитория EPEL в CentOS 7 — довольно простая задача, поскольку пакет EPEL rpm включен в репозиторий дополнительных компонентов CentOS.

Чтобы установить пакет выпуска EPEL, введите следующую команду:

sudo yum install epel-release

Чтобы убедиться, что репозиторий EPEL включен, запустите команду yum repolist которая выведет список всех доступных репозиториев.

sudo yum repolist

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

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
...
repo id             repo name                                         status
base/7/x86_64       CentOS-7 - Base                                   10,019
epel/x86_64         Extra Packages for Enterprise Linux 7 - x86_64    12,912
extras/7/x86_64     CentOS-7 - Extras                                    371
updates/7/x86_64    CentOS-7 - Updates                                 1,098
repolist: 24,400

Вот и все. Репозиторий EPEL включен в вашей системе CentOS.

Создание установочных носителей

Для установки CentOS в виртуальной машине – достаточно указать iso-образ в качестве диска для виртуального привода. Если установка будет производиться с CD-диска – запишите iso-образ на компакт-диск любой имеющейся в наличии программой. Так же можно, записать iso-образ на USB-диск и загрузиться для установки с неё. Сделать это в Linux можно следующей командой:

$ dd if=/%filepath%/image.iso of=/dev/%devname% bs=512k

%filepath%

%devname%

https://fedorahosted.org/liveusb-creator/

Fedora LiveUSB Creator

Загрузка установки CentOS

Загружаем компьютер (или виртуальную машину) с носителя, который мы подготовили (или напрямую из iso-образа). После загрузки появится меню, которое предлагает запустить процесс установки (пункт «Install CentOS 7» или выполнить диагностику носителя и потом запустить процесс установки (пункт «Test this media & Install CentOS 7»). Выбираем второй пункт и нажимаем «Enter».

CentOS Install: Grub Menu

После проверки носителя запустится установщик CentOS 7.
В первом окне установщика выбираем русский язык и нажимаем на кнопку «Продолжить».

CentOS Install: Language Selection

Выбор часового пояса и установку времени с датой пока пропустим, всё равно до настройки сети NTP-клиент доступен не будет.

CentOS Install: Main Menu

Начнём с настроек клавиатуры, для этого нажмём на кнопку «Клавиатура» и поменяем приоритет у раскладок, передвинув английскую раскладку наверх. Так же, нажав на кнопку «Параметры» можно поменять комбинацию для переключения раскладок (например на Ctrl+Shift). После чего нажмём на кнопку «Готово».

CentOS Install: Keyboard Settings

CentOS Install: Network Settings

Во вкладке «Общий» ставим галочку напротив пункта «Автоматически подключаться к этой сети, когда она доступна».

CentOS Install: Network Settings: Common

Во вкладке «Параметры IPv4» в пункте «Способ настройки» либо оставляем выбранным «Автоматически (DHCP)», если в локальной сети используется DHCP, либо меняем на «Вручную» и заполняем все оставшиеся поля.

CentOS Install: Network Settings: IPv4

Если у нас в сети не используется IPv6, тогда во вкладке «Параметры IPv6» в пункте «Способ настройки» выбираем «Игнорировать».

CentOS Install: Network Settings: IPv6

После сохранения сетевых настроек нажимаем на кнопку «Готово» в левом верхнем углу экрана. Теперь можно вернуться к пропущенному шагу и настроить часовой пояс и дату. Для этого нажимаем на кнопку «Дата и время» в блоке «Региональные настройки». Сначала выбираем регион и город, а затем в правом верхнем углу нажимаем на переключатель «Сетевое время». После этого время должно синхронизироваться с NTP-сервером. Можно нажать на кнопку «Готово» для возвращения в главное меню установщика.

CentOS Install: TimeZone Selection

CentOS Install: Repository

Если адрес репозитория указан верно, то теперь под названием кнопки «Источник установки» появится адрес репозитория, а с иконки кнопки уберётся оранжевый треугольник. Если это произошло – нажимаем на кнопку «Выбор программ» в блоке «Программное обеспечение». Во время первоначальной установки я устанавливаю только минимальный набор программ, а все сервисы, которые будут работать на сервере устанавливаю и настраиваю позже. Так что оставляю выбранным пункт «Минимальная установка» и нажимаю на кнопку «Готово».

CentOS Install: Package Roles

Осталось настроить расположение установки, для чего нажмём на кнопку «Место установки». Смотрим что галочкой выделен нужный нам жёсткий диск, отмечаем пункт «Я настрою разделы» в блоке «Разбиение» и нажимаем на кнопку «Готово».

CentOS Install: Storage Menu

У нас откроется мастер разметки жёсткого диска. Первым делом нажмём на кнопку «Нажмите здесь для их автоматического создания».

CentOS Install: Storage Manual Formatting

Теперь чуть подправим автоматическую разбивку.

CentOS Install: Storage Manual Formatting 2

CentOS Install: Storage Root Partition

Для ровного числа заменим размер раздела /boot – вместо 500МБ укажем 512МБ. Тип устройства раздела /boot оставляем обычным, файловую систему так же оставляем xfs, после чего нажимаем на кнопку «Обновить настройки».

CentOS Install: Storage Boot Partition

И напоследок изменим настройки раздела для swap. Имя раздела заменим с swap на lv_swap, а размер увеличим до 4ГБ, после чего нажимаем на кнопку «Обновить настройки». Так как диск для установки CentOS у меня всего 16ГБ, а мы уже сделали разделов на 16,5ГБ (512МБ+12ГБ+4ГБ) – установщик автоматически подправит раздел для swap до предельно допустимых 3,864ГБ.

CentOS Install: Storage Swap Partition

Так как и корневой раздел, и раздел для swap у нас создаются в виде томов LVM, то расширить их в будущем не составит большого труда. Завершив разметку диска нажимаем на кнопку «Готово». Установщик нам покажет последовательность разметки диска, которую мы должны подтвердить нажав на кнопку «Принять изменения».

CentOS Install: Storage Operations

После того как всё подготовлено к установке CentOS – нажимаем на кнопку «Начать установку».

CentOS Install: Main Menu OK

Первым делом установщик произведёт разбиение диска на разделы, как мы указали ранее. Затем разделы будут отформатированы и начнётся установка пакетов. В минимальной установке этих пакетов 298. После установки пакетов будет произведена их первоначальная настройка.

CentOS Install: Processing

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

CentOS Install: Root Password

Последним шагом перед перазагрузкой установщик настроит загрузчик операционной системы. После чего нужно будет нажать на кнопку «Перезагрузить», для того чтобы загрузился свежеустановленный CentOS.

CentOS Install: Finish
Поздравляем! Установка CentOS завершена.

Использование yum через прокси

Если прокси-сервер требует авторизацию, добавьте строки:

Для проверки работы yum через прокси сервер воспользуйтесь командой

yum clean all && yum search nginx

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

yum через прокси сервер

Если нужно использовать прокси только для некоторых репозиториев, не нужно править файл /etc/yum.conf, а настройки прокси указать в конфигурационном файле репозитория /etc/yum.repos.d/ваш_конфиг.repo.

Итак, в этой статье мы рассмотрели базовые возможности менеджера rpm пакета yum в Linux CentOS/ RHEL. В следующей статье мы более подробно поговорим об управлении репозиториями в Yum. Знакомьтесь, пробуйте и используйте yum в своей работе.

Подготовка

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

Что нового в CentOS 8?

24 сентября 2019 года, вышел релиз 8-ой версии CentOS. CentOS — дистрибутив Linux, основанный на коммерческом Red Hat Enterprise, компании Red Hat и совместимый с ним.

Читайте также:  Ошибка 502 Bad gateway — что это и как исправить

Рассмотрим наиболее крупные изменения в релизе CentOS 8:

  • Используется ядро Linux kernel 4.18.
  • Переход с пакетного менеджера yum на dnf. В данный момент yum существует как алиас к dnf.
  • Выполнено разделение основного репозитория на 2 — это BaseOS и AppStream. Сделано это для того, чтобы у пользователя появилась возможность устанавливать разные версии пакетов на сервер. BaseOS работает как и раньше.
  • Обновилось все ПО, в том числе и ядро. В базовом репозитории теперь устанавливается php версии 7.2 (наконец-то).
  • Замена iptables на nftables. Лично я пока еще со вторым не работал напрямую, поэтому не могу сказать, хорошо это или плохо. Единственный момент, если нужно будет переносить какие-то проекты на новую ОС, придется разбираться с правилами, так как есть сервера с чистым iptables.
  • network-skripts не используются по умолчанию для настройки сети, теперь управления сетью возложено на Network Manager.
  • По умолчанию устаналивается веб-интерфейс управления сервером cockpit (удобно для новичков).
  • Для управления контейнерами используется podman (вместо docker и mobdy).
  • Новая версия стека TCP/IP 4.16 с улучшенной производительностью и поддержкой алгоритмов контроля BBR и NV.
  • Новые версии дситрибутивов:

Отключение IPv6

Есть два варианта отключения IPv6 в CentOS 7, первый вариант жёсткий:

$ sed -i --follow-symlinks 's/^GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="ipv6.disable=1 /g' \
	/etc/sysconfig/grub
$ grub2-mkconfig --output=/boot/grub2/grub.cfg
type=AVC msg=audit(1410648780.359:195): avc:  denied  { module_request } for  pid=727 comm="chronyd" kmod="net-pf-10" scontext=system_u:system_r:chronyd_t:s0 tcontext=system_u:system_r:kernel_t:s0 tclass=system
$ nano -w /etc/sysctl.d/01-disable_ipv6.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
$ systemctl restart systemd-sysctl.service
$ sed -i 's/inet_protocols = [^ ]*/inet_protocols = ipv4/g' /etc/postfix/main.cf
$ systemctl restart postfix.service
$ sed -i 's/^\(bindcmdaddress ::1\)/#\1/' /etc/chrony.conf
$ nano -w /etc/sysconfig/chronyd
OPTIONS="-4"
$ chcon -u system_u /etc/sysconfig/chronyd
$ systemctl restart chronyd.service
$ sed -i s/udp6/#udp6/ /etc/netconfig
$ sed -i s/tcp6/#tcp6/ /etc/netconfig
$ nano -w /etc/ssh/sshd_config
AddressFamily inet
ListenAddress 0.0.0.0

$ systemctl restart sshd.service

Install EPEL in 3 easy steps

  1. First, enable the CodeReady Linux Builder repository. You already have access to it; you just need to enable it.

    On CentOS Stream:

    $ sudo dnf config-manager --set-enabled crb
    $ sudo subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms
  2. Next, install the EPEL RPM.

    On CentOS Stream:

    $ sudo dnf install epel-release epel-next-release
    $ sudo dnf install \
    https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
  3. That’s it! There isn’t actually a third step, so now you can install software from EPEL. For example, here’s how to install inxi, a handy command to gather system stats:

    $ sudo dnf install inxi

Настройка различных сервисов

Так же, можно прочитать следующие заметки по настройке различных сервисов в CentOS/RHEL:

Update от 01. 2016

В связи с выходом новой версии установочных дисков CentOS 7.2.1511, данная статья потеряла актуальность. Вашему вниманию представляется новая версия http://blog.acmenet.ru/2016/01/01/centos-7-2-install/.

История и логи установки/удаления пакетов

Вы можете вывести информацию об истории установки пакетов yum (списка транзакций) с помощью команды:

yum history list

Вывод состоит из 5 столбцов, в первом выводится ID транзакции по которому можно посмотреть всю информацию (установленные пакеты, зависимости):

yum history info 10

yum history list - история установки пакетов

Более того, можно отменить данную транзакцию командой:

yum history undo 10

В моем случае удалилось бы 4 пакета:

yum history undo - удаление транзацкции установки пакета

Так же всю информацию об истории установки/удаления пакетов менеджером yum можно посмотреть в логе /var/log/yum.log:
cat /var/log/yum.log

Sep 03 11:06:38 Installed: mpfr-3.1.1-4.el7.x86_64
Sep 03 11:06:38 Installed: libmpc-1.0.1-3.el7.x86_64
Sep 03 11:06:38 Installed: libquadmath-4.8.5-36.el7_6.2.x86_64
Sep 03 11:06:38 Installed: apr-1.4.8-3.el7_4.1.x86_64
Sep 03 11:06:38 Installed: m4-1.4.16-10.el7.x86_64
Sep 03 11:06:38 Installed: apr-util-1.5.2-6.el7.x86_64
Sep 03 11:06:38 Installed: unzip-6.0-19.el7.x86_64
Sep 03 11:06:38 Installed: patch-2.7.1-10.el7_5.x86_64
Sep 03 11:06:38 Installed: 1:perl-Error-0.17020-2.el7.noarch
Sep 03 11:06:38 Installed: boost-system-1.53.0-27.el7.x86_64
Sep 03 11:06:38 Installed: perl-Thread-Queue-3.02-2.el7.noarch
Sep 03 11:06:38 Installed: avahi-libs-0.6.31-19.el7.x86_64
Sep 03 11:06:38 Installed: zip-3.0-11.el7.x86_64
Sep 03 11:06:38 Installed: boost-thread-1.53.0-27.el7.x86_64
Sep 03 11:06:38 Installed: libgfortran-4.8.5-36.el7_6.2.x86_64
Sep 03 11:06:39 Installed: cpp-4.8.5-36.el7_6.2.x86_64

Особенности временной работы с qwertz

Если, вдруг, Вы будете устанавливать CentOS на каком-нибудь немецком хостинге с раскладкой qwertz, без возможности смены её на qwerty, нужно помнить следующее:

z == y
y == z
_ == Shift + /
/ == -
- == \
: == Num Lock, Left Alt + 058 (NumPad)

Настройка демона sshd

$ nano -w /etc/ssh/sshd_config
PasswordAuthentication no
...
Match address 1.2.3.4/32
	PasswordAuthentication yes
Match address 2.3.4.5/32
	PasswordAuthentication yes

$ systemctl restart sshd.service

Загрузка образа CentOS

Для установки CentOS первым делом нужно скачать образ установочного диска в виде iso-файла. Для этого заходим в раздел Downloads на сайте CentOS – http://www.centos.org/download/, а там находим раздел «Minimal Install Images» и нажимаем на ссылку «Download the Minimal ISO» – http://isoredirect.centos.org/centos/7/isos/x86_64/. Дальше выбираем ближайшее к нам зеркало и скачиваем файл CentOS-7.0-1406-x86_64-NetInstall.iso (в моём случае до сервисов Яндекса у меня 100Мбит, поэтому качаю с его зеркала).

Веб-интерфейс управления сервером в CentOS 8

Как мы уже упоминали, в CentOS 8 предустановлен веб-интерфейс управления сервером cockpit. Он также управляется через systemctl. Вы можете запустить его и добавить в автозгрузку:

# systemctl enable cockpit.socket
# systemctl start cockpit.socket

По–умолчанию веб сервер Cockpit слушает на порту 9090. Добавьте этот порт в разрешенные:

# firewall-cmd --get-active-zones
# firewall-cmd --add-port=9090/tcp --zone=MY_ACTIVE_ZONE --permanent
# firewall-cmd --reload

Для доступа к веб-интерфейсу Cockpit, откройте в браузере URL адрес https://your-CentOS8-IP:9090 и авторизуйтесь.

Cockpit - веб интерфейс управления сервером centos 8

С помощью веб-интерфейса Cockpit вы можете смотреть загрузку своего сервера, управлять сетями и хранилищами, контейнерами, смотреть логи.

На этом моя типовая настройка CentOS сервера закончена, далее я выполняю настройки согласно технического задания по различным проектам и обычно они отличаются.

Предисловие

Пара слов, почему же всё-таки CentOS, а не что-то иное. Вообще знакомство с Linux началось в 2000-м году с какой-то версии RedHat. Потом был BlackCat Linux (из-за его лучшей поддержки русского языка). Затем появился Gentoo и я считал его идеалом за то что за счёт USE-флагов устанавливалось только то что действительно нужно. Ну и за его оптимизацию, в то время более-менее нормально смотреть фильмы на компьютере с процессором AMD K6-2-300 можно было только под Gentoo. После Gentoo на работе была Ubuntu, но она как-то сразу не пошла. Вообще после Gentoo переходить на любой другой Linux сложно. Это как после OS X обратно на Windows садиться. В Gentoo и процесс загрузки, и многие другие вещи красивы с эстетической точки зрения, в Ubuntu же по дефолту в консоли только белый цвет на чёрном фоне.

Затем были курсы по RHEL и сертификат RHCSA. Я посчитал что глупо не пользоваться полученными знаниями – поэтому решил установить CentOS на паре серверов на работе под различные сервисы. В процессе так увлёкся что даже свой личный сервер перевёл с Gentoo на CentOS. Сначала был CentOS 5, затем CentOS 6, теперь вот уже CentOS 7.

С переходом на CentOS стало намного меньше времени уходить на обслуживание сервера, т.к. по времени выполнение команды:

$ yum -y update
$ emerge sync && emerge -upvND world

Конфигурационный файл /etc/yum. conf

Конфигурационный файл yum —
/etc/yum.conf
.

Основные параметры конфигурационного файла:

cachedir
– локальный кэш пакетов (по умоланию /var/cache/yum)

logfile
— путь до файла с логами yum

obsoletes
— обновлять или нет, устаревшие пакеты(1-да,0-нет)

gpgcheck
— проверка подписи пакета перед установкой (1-да,0-нет)

keepcache
— хранение кеша (1-да,0-нет)

cachedir
— директория для хранения кеша(по умолчанию /var/cache/yum)

debuglevel
– уровень отладки от 1 до 10

plugins
— включение yum плагинов (1-да,0-нет)

bugtracker_url
– ссылка по которой будут зарегистрированы ошибки работы yum

installonly_limit
– максимальное количество версий, которые могут быть установлены для одного пакета.

Настройка рабочего окружения

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

$ nano -w ~/.bash_profile
#----------------------------------------------------------------------------
# ~/.bash_profile: executed by bash(1) for login shells.
# $Revision: 2.20 (CentOS/OS X Edition by Wakko Warner) $
# $Comment: Any comments please send to wakko@acmelabs.spb.ru $
#----------------------------------------------------------------------------

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# Test for an interactive shell. There is no need to set anything
# past this point for scp and rcp, and it's important to refrain from
# outputting anything in those cases.
if [[ $- != *i* ]] ; then
	# Shell is non-interactive.  Be done now!
	return
fi

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

# Include ~/.config/bashrc.d/* if it exists
if [ -d ~/.config/bashrc.d ]; then
	for i in `ls ~/.config/bashrc.d/` ; do
		if [[ -f ~/.config/bashrc.d/${i} ]]; then
			. ~/.config/bashrc.d/${i}
		fi
	done
	unset i
fi

$ nano -w ~/.bash_logout
#----------------------------------------------------------------------------
# ~/.bash_logout: executed by bash(1) when login shell exits.
# $Revision: 2.10 (CentOS Edition by Wakko Warner) $
# $Comment: Any comments please send to wakko@acmelabs.spb.ru $
#----------------------------------------------------------------------------
 
# When leaving the console clear the screen to increase privacy
if [ "$SHLVL" = 1 ]; then
	[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
	[ -x /usr/bin/clear ] && /usr/bin/clear -q
fi

$ mkdir -p ~/.config/bashrc.d

$ nano -w ~/.config/bashrc.d/00-aliases
#----------------------------------------------------------------------------
# ~/.config/bashrc.d/00-aliases: executed by .bash_profile for aliases
# $Revision: 2.20 (CentOS/OS X Edition by Wakko Warner) $
# $Comment: Any comments please send to wakko@acmelabs.spb.ru $
#----------------------------------------------------------------------------

# Alias definitions.
alias cp='cp -i'
alias df='df -h'
alias du='du -h'
alias flushdns='sudo discoveryutil udnsflushcaches'
alias less='less -r'
alias ll='ls -lp'
#alias ls='ls --color=auto'
alias md='mkdir'
alias mtr='mtr -o "LRSD NBAWV"'
alias mv='mv -i'
alias pman='pinfo -m'
alias px='ps xa'
alias rd='rmdir'
alias rm='rm -i'
alias scp='scp -p -r'
alias screen='[ -z "$HUSHLOGIN" ] && TERM=xterm screen -D -RR || TERM=linux screen -D -RR'
alias su='su -'
alias sudo='sudo -s'
alias showextip='curl http://ipecho.net/plain; echo'
alias watch='watch '
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
alias who='who -HuT'

$ nano -w ~/.config/bashrc.d/01-locale
#----------------------------------------------------------------------------
# ~/.config/bashrc.d/01-locale: executed by .bash_profile for locale settings
# $Revision: 2.20 (CentOS/OS X Edition by Wakko Warner) $
# $Comment: Any comments please send to wakko@acmelabs.spb.ru $
#----------------------------------------------------------------------------

# Locale definitions.
#export LC_ALL=""
#export LANG="ru_RU.UTF-8"
#export LC_NUMERIC="C"
#export LC_TIME="POSIX"

# Set english messages for root.
[ ${EUID} == 0 ] && export LC_MESSAGES="POSIX"

$ nano -w ~/.config/bashrc.d/02-terminal
#----------------------------------------------------------------------------
# ~/.config/bashrc.d/02-terminal: executed by .bash_profile for terminal settings
# $Revision: 2.20 (CentOS/OS X Edition by Wakko Warner) $
# $Comment: Any comments please send to wakko@acmelabs.spb..ru $
#----------------------------------------------------------------------------

# Set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
	debian_chroot=$(cat /etc/debian_chroot)
fi

# Set colorful PS1 only on colorful terminals.
# dircolors --print-database uses its own built-in database
# instead of using /etc/DIR_COLORS or /etc/dircolors.
# Try to use the external file first to take advantage of user additions.
use_color=false
safe_term=${TERM//[^[:alnum:]]/.}	# sanitize TERM

if [ -f /etc/DIR_COLORS ]; then
	grep -q "^TERM ${safe_term}" /etc/DIR_COLORS && use_color=true
elif [ -f /etc/dircolors ]; then
	grep -q "^TERM ${safe_term}" /etc/dircolors && use_color=true
elif type -p dircolors >/dev/null ; then
	if dircolors --print-database | grep -q "^TERM ${safe_term}" ; then
		use_color=true
	fi
fi

if ${use_color} ; then
	if [ ${EUID} == 0 ]; then
		PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
	else
		PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
	fi
#	PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
	eval "`dircolors -b`"
	alias ls='ls --color=auto'
	alias dir='ls --color=auto --format=vertical'
	alias vdir='ls --color=auto --format=long'
	alias less='less -r'
else
	if [ ${EUID} == 0 ]; then
		PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
	else
		PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
	fi
fi

$ nano -w ~/.config/bashrc.d/03-userfiles
#----------------------------------------------------------------------------
# ~/.config/bashrc.d/03-userfiles: executed by .bash_profile for user files
# $Revision: 2.00 (CentOS/OS X Edition by Wakko Warner) $
# $Comment: Any comments please send to wakko@acmelabs.spb..ru $
#----------------------------------------------------------------------------

# User specific environment and startup programs
if [ -d $HOME/bin ]; then
	PATH=$PATH:$HOME/bin
	export PATH
fi
# do the same with MANPATH
if [ -d $HOME/man ]; then
	MANPATH=${MANPATH:-:}:$HOME/man
	export MANPATH
fi

$ nano -w ~/.config/bashrc.d/99-other
#----------------------------------------------------------------------------
# ~/.config/bashrc.d/99-other: executed by .bash_profile for other settings
# $Revision: 2.20 (CentOS/OS X Edition by Wakko Warner) $
# $Comment: Any comments please send to wakko@acmelabs.spb.ru $
#----------------------------------------------------------------------------

# Don't put duplicate and garbage lines from Midnight Commander to the history.
export HISTCONTROL="ignoreboth"

# Check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# Make less more friendly for non-text input files, see lesspipe(1)
#[ -x /usr/bin/lesspipe ] && eval "$(lesspipe)"

Выводы

Для получения дополнительной информации о репозитории EPEL см. Документацию EPEL .

Оцените статью
Хостинги