- Аналог статьи про Ubuntu, Gentoo
- Поиск драйверов для ядра (напр. bnx2)
- CentOS работает с .rpm пакетами (так же как и RHEL, Fedora, Suse, Mandriva).
- Вот тут есть очень хорошая шапаргалка. Ниже только самое используемое, остальное проще взять оттуда.
Обновление всех приложений (сразу и обновляем данные из репозиториев о пакетах и ставим эти пакеты)
sudo yum update
Так же может понадобиться добавление репозитория epel (оффициальный репо fedora). Приложения из репозиториев ставятся через аналогичную команду.
sudo yum install epel-release sudo yum install python36
Установка приложения из .rpm пакета делается с помощью утилиты rpm. Можно отключить проверку на зависимости, в случае с tcpdump работает. Если не использовать этот подход, то можно получить dependency hell (tcpdump -> libpcap -> glibc…).
sudo rpm --force --nodeps -i tcpdump-4.9.2-3.el7.x86_64.rpm
Если в списке обновлений было ядро – без перезагрузки не обойтись (если нужно проверить что код нового ядра запустится корректно прямо сейчас).
(37/37): kernel-3.10.0-957.10.1.el7.x86_64.rpm uname -a
Обновление конкретного приложения
sudo yum update certbot
Список всех приложений
sudo yum list installed
Список установленных приложений
sudo yum list installed
Поиск приложения
yum search python36
Просмотр информации о приложении
yum info python36u-pip
Удаление ненужных приложений
sudo yum autoremove
Удаление конкретного приложения
sudo yum -y remove vsftpd
Проблемы
Если ни одно из приложений при обновлении не устанавливается с ошибкой невозможности аллоцировать память – скорей всего память утекла, поможет перезагрузка. Так же имеет смысл в будущем:
- разобраться с тем, какое приложение послужило проблемой (напр. sql, apache)
- нарастить память RAM или
- как минимум создать SWAP файл, чтобы система могла в случае необходимости использовать память на ЖД как RAM
[Errno 5] [Errno 12] Невозможно выделить память Пример OOM из-за mysql (сервис mysql падает в activating до перезагрузки) ~$ dmesg [Fri Mar 27 11:16:03 2020] Out of memory: Kill process 20533 (mysqld) score 62 or sacrifice child
[Fri Mar 27 11:16:03 2020] Killed process 20533 (mysqld), UID 27, total-vm:1433124kB, anon-rss:116248kB, file-rss:0kB, shmem-rss:0kB
[Fri Mar 27 11:16:03 2020] httpd invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0 ~$ sudo service mysql status ● mysqld.service - MySQL Community Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: activating (start-post) since Пт 2020-03-27 11:16:06 MSK; 6min ago
Если жалуется на недостаток места в разделе /boot – удаляем старые ядра через утилиту package-cleanup из пакета yum-utils.
Transaction check error: installing package kernel-3.10.0-957.5.1.el7.x86_64 needs 15MB on the /boot filesystem Error Summary ------------- Disk Requirements: At least 15MB more space needed on the /boot filesystem. ~$ df -h /boot Filesystem Size Used Avail Use% Mounted on /dev/vda1 240M 206M 18M 93% /boot ~$ rpm -q kernel kernel-3.10.0-327.28.2.el7.x86_64 kernel-3.10.0-327.28.3.el7.x86_64 kernel-3.10.0-862.14.4.el7.x86_64 kernel-3.10.0-957.1.3.el7.x86_64 ~$ sudo yum install yum-utils ~$ sudo package-cleanup --oldkernels --count=2
Чтобы в будущем не возникало таких же проблем можно по умолчанию оставлять только одно или два старых ядра в системе (при установке нового будут удалятся старые, если количество старых превышает лимит).
sudo vi /etc/yum.conf installonly_limit=2 # меняем с 5 до 1 или 2
Если возникли проблемы с совместимостью пакетов и в целом работе пакетного менеджера yum, то возможно поможет чистка кеша пакетов.
sudo yum clean all