Настройка системы управления пакетами yum-apt — различия между версиями
Admin (обсуждение | вклад) (Новая страница: «= Настройка системы управления пакетами (yum/apt) = == 1. Подготовка системы == * Войдите в сист…») |
Admin (обсуждение | вклад) |
||
Строка 6: | Строка 6: | ||
* Убедитесь, что у вас есть доступ к серверу через SSH или консоль. | * Убедитесь, что у вас есть доступ к серверу через SSH или консоль. | ||
− | == 2. Настройка APT (Debian/Ubuntu) | + | == 2. Настройка APT (Debian/Ubuntu) == |
=== Обновление системы === | === Обновление системы === | ||
1. Обновите систему: | 1. Обновите систему: | ||
− | < | + | <pre>sudo apt update</pre> |
− | < | + | <pre>sudo apt upgrade</pre> |
2. Установите необходимые пакеты: | 2. Установите необходимые пакеты: | ||
− | < | + | <pre>sudo apt install -y wget curl gnupg2 software-properties-common</pre> |
=== Настройка репозиториев === | === Настройка репозиториев === | ||
1. '''Добавление официальных репозиториев''': | 1. '''Добавление официальных репозиториев''': | ||
− | < | + | <pre>sudo add-apt-repository main</pre> |
− | < | + | <pre>sudo add-apt-repository universe</pre> |
− | < | + | <pre>sudo add-apt-repository multiverse</pre> |
− | < | + | <pre>sudo add-apt-repository restricted</pre> |
2. '''Добавление PPA репозиториев''': | 2. '''Добавление PPA репозиториев''': | ||
− | < | + | <pre>sudo add-apt-repository ppa:nginx/stable</pre> |
− | < | + | <pre>sudo add-apt-repository ppa:ondrej/php</pre> |
3. '''Добавление сторонних репозиториев''': | 3. '''Добавление сторонних репозиториев''': | ||
− | < | + | <pre>wget -qO - https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -</pre> |
− | < | + | <pre>echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list</pre> |
=== Настройка источников пакетов === | === Настройка источников пакетов === | ||
1. Отредактируйте файл sources.list: | 1. Отредактируйте файл sources.list: | ||
− | < | + | <pre>sudo nano /etc/apt/sources.list</pre> |
2. Добавьте репозитории: | 2. Добавьте репозитории: | ||
− | < | + | <pre>\# Основные репозитории Ubuntu |
deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse | deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse | ||
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse | deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse | ||
Строка 45: | Строка 45: | ||
deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse | deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse | ||
− | # Дополнительные репозитории | + | \# Дополнительные репозитории |
deb http://ppa.launchpad.net/nginx/stable/ubuntu focal main | deb http://ppa.launchpad.net/nginx/stable/ubuntu focal main | ||
deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main | deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main | ||
− | </ | + | </pre> |
=== Настройка приоритетов пакетов === | === Настройка приоритетов пакетов === | ||
1. Создайте файл приоритетов: | 1. Создайте файл приоритетов: | ||
− | < | + | <pre>sudo nano /etc/apt/preferences.d/99-custom</pre> |
2. Добавьте настройки: | 2. Добавьте настройки: | ||
− | < | + | <pre>Package: * |
Pin: release a=focal | Pin: release a=focal | ||
Pin-Priority: 500 | Pin-Priority: 500 | ||
Строка 67: | Строка 67: | ||
Pin: release a=focal | Pin: release a=focal | ||
Pin-Priority: 1000 | Pin-Priority: 1000 | ||
− | </ | + | </pre> |
− | == 3. Настройка YUM (CentOS/RHEL) | + | == 3. Настройка YUM (CentOS/RHEL) == |
=== Обновление системы === | === Обновление системы === | ||
1. Обновите систему: | 1. Обновите систему: | ||
− | < | + | <pre>sudo yum update</pre> |
2. Установите необходимые пакеты: | 2. Установите необходимые пакеты: | ||
− | < | + | <pre>sudo yum install -y wget curl yum-utils</pre> |
=== Настройка репозиториев === | === Настройка репозиториев === | ||
1. '''Добавление EPEL репозитория''': | 1. '''Добавление EPEL репозитория''': | ||
− | < | + | <pre>sudo yum install -y epel-release</pre> |
2. '''Добавление Remi репозитория''': | 2. '''Добавление Remi репозитория''': | ||
− | < | + | <pre>sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm</pre> |
3. '''Добавление Nginx репозитория''': | 3. '''Добавление Nginx репозитория''': | ||
− | < | + | <pre>sudo yum install -y https://nginx.org/packages/centos/8/noarch/RPMS/nginx-release-centos-8-0.el8.ngx.noarch.rpm</pre> |
=== Настройка источников пакетов === | === Настройка источников пакетов === | ||
1. Создайте файл репозитория: | 1. Создайте файл репозитория: | ||
− | < | + | <pre>sudo nano /etc/yum.repos.d/custom.repo</pre> |
2. Добавьте конфигурацию: | 2. Добавьте конфигурацию: | ||
− | < | + | <pre>[custom] |
name=Custom Repository | name=Custom Repository | ||
baseurl=http://example.com/repo/ | baseurl=http://example.com/repo/ | ||
Строка 102: | Строка 102: | ||
gpgcheck=1 | gpgcheck=1 | ||
gpgkey=http://example.com/repo/RPM-GPG-KEY | gpgkey=http://example.com/repo/RPM-GPG-KEY | ||
− | </ | + | </pre> |
=== Настройка приоритетов пакетов === | === Настройка приоритетов пакетов === | ||
1. Установите yum-priorities: | 1. Установите yum-priorities: | ||
− | < | + | <pre>sudo yum install -y yum-priorities</pre> |
2. Настройте приоритеты: | 2. Настройте приоритеты: | ||
− | < | + | <pre>sudo nano /etc/yum.repos.d/centos-base.repo</pre> |
3. Добавьте настройки: | 3. Добавьте настройки: | ||
− | < | + | <pre>[base] |
name=CentOS-$releasever - Base | name=CentOS-$releasever - Base | ||
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ | baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ | ||
Строка 119: | Строка 119: | ||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8 | gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8 | ||
priority=1 | priority=1 | ||
− | </ | + | </pre> |
− | == 4. Настройка DNF (Fedora) | + | == 4. Настройка DNF (Fedora) == |
=== Обновление системы === | === Обновление системы === | ||
1. Обновите систему: | 1. Обновите систему: | ||
− | < | + | <pre>sudo dnf update</pre> |
2. Установите необходимые пакеты: | 2. Установите необходимые пакеты: | ||
− | < | + | <pre>sudo dnf install -y wget curl dnf-plugins-core</pre> |
=== Настройка репозиториев === | === Настройка репозиториев === | ||
1. '''Добавление RPM Fusion''': | 1. '''Добавление RPM Fusion''': | ||
− | < | + | <pre>sudo dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm</pre> |
− | < | + | <pre>sudo dnf install -y https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm</pre> |
2. '''Добавление Flatpak''': | 2. '''Добавление Flatpak''': | ||
− | < | + | <pre>sudo dnf install -y flatpak</pre> |
=== Настройка источников пакетов === | === Настройка источников пакетов === | ||
1. Создайте файл репозитория: | 1. Создайте файл репозитория: | ||
− | < | + | <pre>sudo nano /etc/yum.repos.d/custom.repo</pre> |
2. Добавьте конфигурацию: | 2. Добавьте конфигурацию: | ||
− | < | + | <pre>[custom] |
name=Custom Repository | name=Custom Repository | ||
baseurl=http://example.com/repo/ | baseurl=http://example.com/repo/ | ||
Строка 152: | Строка 152: | ||
gpgcheck=1 | gpgcheck=1 | ||
gpgkey=http://example.com/repo/RPM-GPG-KEY | gpgkey=http://example.com/repo/RPM-GPG-KEY | ||
− | </ | + | </pre> |
− | == 5. Настройка кэширования | + | == 5. Настройка кэширования == |
=== Настройка APT кэша === | === Настройка APT кэша === | ||
1. Установите apt-cacher-ng: | 1. Установите apt-cacher-ng: | ||
− | < | + | <pre>sudo apt install -y apt-cacher-ng</pre> |
2. Настройте кэш: | 2. Настройте кэш: | ||
− | < | + | <pre>sudo nano /etc/apt-cacher-ng/acng.conf</pre> |
3. Добавьте настройки: | 3. Добавьте настройки: | ||
− | < | + | <pre>CacheDir: /var/cache/apt-cacher-ng |
LogDir: /var/log/apt-cacher-ng | LogDir: /var/log/apt-cacher-ng | ||
Port: 3142 | Port: 3142 | ||
BindAddress: 0.0.0.0 | BindAddress: 0.0.0.0 | ||
− | </ | + | </pre> |
4. Запустите кэш: | 4. Запустите кэш: | ||
− | < | + | <pre>sudo systemctl start apt-cacher-ng</pre> |
− | < | + | <pre>sudo systemctl enable apt-cacher-ng</pre> |
=== Настройка YUM кэша === | === Настройка YUM кэша === | ||
1. Установите yum-cron: | 1. Установите yum-cron: | ||
− | < | + | <pre>sudo yum install -y yum-cron</pre> |
2. Настройте автоматическое обновление: | 2. Настройте автоматическое обновление: | ||
− | < | + | <pre>sudo nano /etc/yum/yum-cron.conf</pre> |
3. Измените настройки: | 3. Измените настройки: | ||
− | < | + | <pre>update_cmd = security |
update_messages = yes | update_messages = yes | ||
download_updates = yes | download_updates = yes | ||
apply_updates = no | apply_updates = no | ||
− | </ | + | </pre> |
4. Запустите yum-cron: | 4. Запустите yum-cron: | ||
− | < | + | <pre>sudo systemctl start yum-cron</pre> |
− | < | + | <pre>sudo systemctl enable yum-cron</pre> |
− | == 6. Настройка зеркал | + | == 6. Настройка зеркал == |
=== Настройка APT зеркал === | === Настройка APT зеркал === | ||
1. Установите apt-mirror: | 1. Установите apt-mirror: | ||
− | < | + | <pre>sudo apt install -y apt-mirror</pre> |
2. Настройте зеркало: | 2. Настройте зеркало: | ||
− | < | + | <pre>sudo nano /etc/apt/mirror.list</pre> |
3. Добавьте настройки: | 3. Добавьте настройки: | ||
− | < | + | <pre>set base_path /var/spool/apt-mirror |
set nthreads 20 | set nthreads 20 | ||
set _tilde 0 | set _tilde 0 | ||
Строка 213: | Строка 213: | ||
deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse | deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse | ||
deb http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse | deb http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse | ||
− | </ | + | </pre> |
4. Запустите зеркалирование: | 4. Запустите зеркалирование: | ||
− | < | + | <pre>sudo apt-mirror</pre> |
=== Настройка YUM зеркал === | === Настройка YUM зеркал === | ||
1. Установите reposync: | 1. Установите reposync: | ||
− | < | + | <pre>sudo yum install -y yum-utils</pre> |
2. Создайте скрипт зеркалирования: | 2. Создайте скрипт зеркалирования: | ||
− | < | + | <pre>sudo nano /usr/local/bin/yum-mirror.sh</pre> |
3. Добавьте содержимое: | 3. Добавьте содержимое: | ||
− | < | + | <pre>\#!/bin/bash |
MIRROR_DIR="/var/repos" | MIRROR_DIR="/var/repos" | ||
Строка 236: | Строка 236: | ||
createrepo $MIRROR_DIR/$repo | createrepo $MIRROR_DIR/$repo | ||
done | done | ||
− | </ | + | </pre> |
4. Сделайте скрипт исполняемым: | 4. Сделайте скрипт исполняемым: | ||
− | < | + | <pre>sudo chmod +x /usr/local/bin/yum-mirror.sh</pre> |
− | == 7. Настройка автоматических обновлений | + | == 7. Настройка автоматических обновлений == |
=== Настройка APT автоматических обновлений === | === Настройка APT автоматических обновлений === | ||
1. Установите unattended-upgrades: | 1. Установите unattended-upgrades: | ||
− | < | + | <pre>sudo apt install -y unattended-upgrades</pre> |
2. Настройте автоматические обновления: | 2. Настройте автоматические обновления: | ||
− | < | + | <pre>sudo nano /etc/apt/apt.conf.d/50unattended-upgrades</pre> |
3. Добавьте настройки: | 3. Добавьте настройки: | ||
− | < | + | <pre>Unattended-Upgrade::Allowed-Origins { |
"${distro_id}:${distro_codename}-security"; | "${distro_id}:${distro_codename}-security"; | ||
"${distro_id}:${distro_codename}-updates"; | "${distro_id}:${distro_codename}-updates"; | ||
Строка 261: | Строка 261: | ||
Unattended-Upgrade::Remove-Unused-Dependencies "true"; | Unattended-Upgrade::Remove-Unused-Dependencies "true"; | ||
Unattended-Upgrade::Automatic-Reboot "false"; | Unattended-Upgrade::Automatic-Reboot "false"; | ||
− | </ | + | </pre> |
4. Включите автоматические обновления: | 4. Включите автоматические обновления: | ||
− | < | + | <pre>sudo nano /etc/apt/apt.conf.d/20auto-upgrades</pre> |
5. Добавьте настройки: | 5. Добавьте настройки: | ||
− | < | + | <pre>APT::Periodic::Update-Package-Lists "1"; |
APT::Periodic::Unattended-Upgrade "1"; | APT::Periodic::Unattended-Upgrade "1"; | ||
− | </ | + | </pre> |
=== Настройка YUM автоматических обновлений === | === Настройка YUM автоматических обновлений === | ||
1. Установите yum-cron: | 1. Установите yum-cron: | ||
− | < | + | <pre>sudo yum install -y yum-cron</pre> |
2. Настройте yum-cron: | 2. Настройте yum-cron: | ||
− | < | + | <pre>sudo nano /etc/yum/yum-cron.conf</pre> |
3. Измените настройки: | 3. Измените настройки: | ||
− | < | + | <pre>update_cmd = security |
update_messages = yes | update_messages = yes | ||
download_updates = yes | download_updates = yes | ||
apply_updates = yes | apply_updates = yes | ||
− | </ | + | </pre> |
4. Запустите yum-cron: | 4. Запустите yum-cron: | ||
− | < | + | <pre>sudo systemctl start yum-cron</pre> |
− | < | + | <pre>sudo systemctl enable yum-cron</pre> |
− | == 8. Настройка безопасности | + | == 8. Настройка безопасности == |
=== Настройка GPG ключей === | === Настройка GPG ключей === | ||
1. '''Добавление GPG ключей APT''': | 1. '''Добавление GPG ключей APT''': | ||
− | < | + | <pre>wget -qO - https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -</pre> |
− | < | + | <pre>curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg</pre> |
2. '''Добавление GPG ключей YUM''': | 2. '''Добавление GPG ключей YUM''': | ||
− | < | + | <pre>sudo rpm --import https://download.docker.com/linux/centos/gpg</pre> |
− | < | + | <pre>sudo rpm --import https://nginx.org/keys/nginx_signing.key</pre> |
=== Настройка проверки подписей === | === Настройка проверки подписей === | ||
1. '''Настройка APT проверки''': | 1. '''Настройка APT проверки''': | ||
− | < | + | <pre>sudo nano /etc/apt/apt.conf.d/99verify</pre> |
2. Добавьте настройки: | 2. Добавьте настройки: | ||
− | < | + | <pre>APT::Get::AllowUnauthenticated "false"; |
APT::Get::AllowDowngradeToInsecureRepositories "false"; | APT::Get::AllowDowngradeToInsecureRepositories "false"; | ||
− | </ | + | </pre> |
3. '''Настройка YUM проверки''': | 3. '''Настройка YUM проверки''': | ||
− | < | + | <pre>sudo nano /etc/yum.conf</pre> |
4. Измените настройки: | 4. Измените настройки: | ||
− | < | + | <pre>gpgcheck=1 |
repo_gpgcheck=1 | repo_gpgcheck=1 | ||
− | </ | + | </pre> |
− | == 9. Мониторинг и обслуживание | + | == 9. Мониторинг и обслуживание == |
=== Создание скрипта мониторинга === | === Создание скрипта мониторинга === | ||
1. Создайте скрипт мониторинга: | 1. Создайте скрипт мониторинга: | ||
− | < | + | <pre>sudo nano /usr/local/bin/package-monitor.sh</pre> |
2. Добавьте содержимое: | 2. Добавьте содержимое: | ||
− | < | + | <pre>\#!/bin/bash |
− | # Проверка доступности репозиториев | + | \# Проверка доступности репозиториев |
if command -v apt &> /dev/null; then | if command -v apt &> /dev/null; then | ||
if ! apt update &> /dev/null; then | if ! apt update &> /dev/null; then | ||
Строка 343: | Строка 343: | ||
fi | fi | ||
− | # Проверка доступных обновлений | + | \# Проверка доступных обновлений |
if command -v apt &> /dev/null; then | if command -v apt &> /dev/null; then | ||
UPDATES=$(apt list --upgradable 2>/dev/null | wc -l) | UPDATES=$(apt list --upgradable 2>/dev/null | wc -l) | ||
Строка 357: | Строка 357: | ||
fi | fi | ||
fi | fi | ||
− | </ | + | </pre> |
3. Сделайте скрипт исполняемым: | 3. Сделайте скрипт исполняемым: | ||
− | < | + | <pre>sudo chmod +x /usr/local/bin/package-monitor.sh</pre> |
4. Добавьте в crontab: | 4. Добавьте в crontab: | ||
− | < | + | <pre>sudo crontab -e</pre> |
5. Добавьте задачу: | 5. Добавьте задачу: | ||
− | < | + | <pre>0 6 * * * /usr/local/bin/package-monitor.sh</pre> |
=== Настройка логирования === | === Настройка логирования === | ||
1. '''Настройка APT логирования''': | 1. '''Настройка APT логирования''': | ||
− | < | + | <pre>sudo nano /etc/apt/apt.conf.d/99logging</pre> |
2. Добавьте настройки: | 2. Добавьте настройки: | ||
− | < | + | <pre>APT::Get::List-Cleanup "true"; |
APT::Get::Show-User-Simulation-Note "false"; | APT::Get::Show-User-Simulation-Note "false"; | ||
APT::Get::Show-User-Simulation-Warning "false"; | APT::Get::Show-User-Simulation-Warning "false"; | ||
− | </ | + | </pre> |
3. '''Настройка YUM логирования''': | 3. '''Настройка YUM логирования''': | ||
− | < | + | <pre>sudo nano /etc/yum.conf</pre> |
4. Добавьте настройки: | 4. Добавьте настройки: | ||
− | < | + | <pre>debuglevel=2 |
logfile=/var/log/yum.log | logfile=/var/log/yum.log | ||
− | </ | + | </pre> |
− | == 10. Резервное копирование | + | == 10. Резервное копирование == |
=== Создание скрипта резервного копирования === | === Создание скрипта резервного копирования === | ||
1. Создайте скрипт резервного копирования: | 1. Создайте скрипт резервного копирования: | ||
− | < | + | <pre>sudo nano /usr/local/bin/package-backup.sh</pre> |
2. Добавьте содержимое: | 2. Добавьте содержимое: | ||
− | < | + | <pre>\#!/bin/bash |
BACKUP_DIR="/backup/packages" | BACKUP_DIR="/backup/packages" | ||
DATE=$(date +%Y%m%d_%H%M%S) | DATE=$(date +%Y%m%d_%H%M%S) | ||
− | # Создание директории для бэкапа | + | \# Создание директории для бэкапа |
mkdir -p $BACKUP_DIR | mkdir -p $BACKUP_DIR | ||
− | # Резервное копирование APT конфигурации | + | \# Резервное копирование APT конфигурации |
if [ -d "/etc/apt" ]; then | if [ -d "/etc/apt" ]; then | ||
tar -czf $BACKUP_DIR/apt-config-$DATE.tar.gz -C /etc apt | tar -czf $BACKUP_DIR/apt-config-$DATE.tar.gz -C /etc apt | ||
fi | fi | ||
− | # Резервное копирование YUM конфигурации | + | \# Резервное копирование YUM конфигурации |
if [ -d "/etc/yum.repos.d" ]; then | if [ -d "/etc/yum.repos.d" ]; then | ||
tar -czf $BACKUP_DIR/yum-config-$DATE.tar.gz -C /etc yum.repos.d | tar -czf $BACKUP_DIR/yum-config-$DATE.tar.gz -C /etc yum.repos.d | ||
fi | fi | ||
− | # Резервное копирование списка установленных пакетов | + | \# Резервное копирование списка установленных пакетов |
if command -v dpkg &> /dev/null; then | if command -v dpkg &> /dev/null; then | ||
dpkg --get-selections > $BACKUP_DIR/installed-packages-$DATE.txt | dpkg --get-selections > $BACKUP_DIR/installed-packages-$DATE.txt | ||
Строка 422: | Строка 422: | ||
fi | fi | ||
− | # Удаление старых бэкапов (старше 7 дней) | + | \# Удаление старых бэкапов (старше 7 дней) |
find $BACKUP_DIR -name "*-$DATE*" -mtime +7 -delete | find $BACKUP_DIR -name "*-$DATE*" -mtime +7 -delete | ||
echo "Package manager backup completed: $DATE" | echo "Package manager backup completed: $DATE" | ||
− | </ | + | </pre> |
3. Сделайте скрипт исполняемым: | 3. Сделайте скрипт исполняемым: | ||
− | < | + | <pre>sudo chmod +x /usr/local/bin/package-backup.sh</pre> |
4. Добавьте в crontab: | 4. Добавьте в crontab: | ||
− | < | + | <pre>sudo crontab -e</pre> |
5. Добавьте задачу: | 5. Добавьте задачу: | ||
− | < | + | <pre>0 2 * * * /usr/local/bin/package-backup.sh</pre> |
− | == 11. Устранение неполадок | + | == 11. Устранение неполадок == |
=== Частые проблемы === | === Частые проблемы === | ||
Строка 459: | Строка 459: | ||
1. '''Проверка APT''': | 1. '''Проверка APT''': | ||
− | < | + | <pre>sudo apt update</pre> |
− | < | + | <pre>sudo apt list --upgradable</pre> |
− | < | + | <pre>sudo apt autoremove</pre> |
2. '''Проверка YUM''': | 2. '''Проверка YUM''': | ||
− | < | + | <pre>sudo yum check-update</pre> |
− | < | + | <pre>sudo yum list updates</pre> |
− | < | + | <pre>sudo yum clean all</pre> |
3. '''Проверка DNF''': | 3. '''Проверка DNF''': | ||
− | < | + | <pre>sudo dnf check-update</pre> |
− | < | + | <pre>sudo dnf list updates</pre> |
− | < | + | <pre>sudo dnf clean all</pre> |
4. '''Проверка репозиториев''': | 4. '''Проверка репозиториев''': | ||
− | < | + | <pre>curl -I http://archive.ubuntu.com/ubuntu/</pre> |
− | < | + | <pre>curl -I http://mirror.centos.org/centos/</pre> |
5. '''Проверка GPG ключей''': | 5. '''Проверка GPG ключей''': | ||
− | < | + | <pre>apt-key list</pre> |
− | < | + | <pre>rpm -qa gpg-pubkey</pre> |
== Заключение == | == Заключение == |
Текущая версия на 10:39, 15 октября 2025
Содержание
- 1 Настройка системы управления пакетами (yum/apt)
- 1.1 1. Подготовка системы
- 1.2 2. Настройка APT (Debian/Ubuntu)
- 1.3 3. Настройка YUM (CentOS/RHEL)
- 1.4 4. Настройка DNF (Fedora)
- 1.5 5. Настройка кэширования
- 1.6 6. Настройка зеркал
- 1.7 7. Настройка автоматических обновлений
- 1.8 8. Настройка безопасности
- 1.9 9. Мониторинг и обслуживание
- 1.10 10. Резервное копирование
- 1.11 11. Устранение неполадок
- 1.12 Заключение
Настройка системы управления пакетами (yum/apt)
1. Подготовка системы
- Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
- Убедитесь, что у вас есть доступ к серверу через SSH или консоль.
2. Настройка APT (Debian/Ubuntu)
Обновление системы
1. Обновите систему:
sudo apt update
sudo apt upgrade
2. Установите необходимые пакеты:
sudo apt install -y wget curl gnupg2 software-properties-common
Настройка репозиториев
1. Добавление официальных репозиториев:
sudo add-apt-repository main
sudo add-apt-repository universe
sudo add-apt-repository multiverse
sudo add-apt-repository restricted
2. Добавление PPA репозиториев:
sudo add-apt-repository ppa:nginx/stable
sudo add-apt-repository ppa:ondrej/php
3. Добавление сторонних репозиториев:
wget -qO - https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
Настройка источников пакетов
1. Отредактируйте файл sources.list:
sudo nano /etc/apt/sources.list
2. Добавьте репозитории:
\# Основные репозитории Ubuntu deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse \# Дополнительные репозитории deb http://ppa.launchpad.net/nginx/stable/ubuntu focal main deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main
Настройка приоритетов пакетов
1. Создайте файл приоритетов:
sudo nano /etc/apt/preferences.d/99-custom
2. Добавьте настройки:
Package: * Pin: release a=focal Pin-Priority: 500 Package: nginx Pin: release a=focal Pin-Priority: 1000 Package: php* Pin: release a=focal Pin-Priority: 1000
3. Настройка YUM (CentOS/RHEL)
Обновление системы
1. Обновите систему:
sudo yum update
2. Установите необходимые пакеты:
sudo yum install -y wget curl yum-utils
Настройка репозиториев
1. Добавление EPEL репозитория:
sudo yum install -y epel-release
2. Добавление Remi репозитория:
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
3. Добавление Nginx репозитория:
sudo yum install -y https://nginx.org/packages/centos/8/noarch/RPMS/nginx-release-centos-8-0.el8.ngx.noarch.rpm
Настройка источников пакетов
1. Создайте файл репозитория:
sudo nano /etc/yum.repos.d/custom.repo
2. Добавьте конфигурацию:
[custom] name=Custom Repository baseurl=http://example.com/repo/ enabled=1 gpgcheck=1 gpgkey=http://example.com/repo/RPM-GPG-KEY
Настройка приоритетов пакетов
1. Установите yum-priorities:
sudo yum install -y yum-priorities
2. Настройте приоритеты:
sudo nano /etc/yum.repos.d/centos-base.repo
3. Добавьте настройки:
[base] name=CentOS-$releasever - Base baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8 priority=1
4. Настройка DNF (Fedora)
Обновление системы
1. Обновите систему:
sudo dnf update
2. Установите необходимые пакеты:
sudo dnf install -y wget curl dnf-plugins-core
Настройка репозиториев
1. Добавление RPM Fusion:
sudo dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install -y https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
2. Добавление Flatpak:
sudo dnf install -y flatpak
Настройка источников пакетов
1. Создайте файл репозитория:
sudo nano /etc/yum.repos.d/custom.repo
2. Добавьте конфигурацию:
[custom] name=Custom Repository baseurl=http://example.com/repo/ enabled=1 gpgcheck=1 gpgkey=http://example.com/repo/RPM-GPG-KEY
5. Настройка кэширования
Настройка APT кэша
1. Установите apt-cacher-ng:
sudo apt install -y apt-cacher-ng
2. Настройте кэш:
sudo nano /etc/apt-cacher-ng/acng.conf
3. Добавьте настройки:
CacheDir: /var/cache/apt-cacher-ng LogDir: /var/log/apt-cacher-ng Port: 3142 BindAddress: 0.0.0.0
4. Запустите кэш:
sudo systemctl start apt-cacher-ng
sudo systemctl enable apt-cacher-ng
Настройка YUM кэша
1. Установите yum-cron:
sudo yum install -y yum-cron
2. Настройте автоматическое обновление:
sudo nano /etc/yum/yum-cron.conf
3. Измените настройки:
update_cmd = security update_messages = yes download_updates = yes apply_updates = no
4. Запустите yum-cron:
sudo systemctl start yum-cron
sudo systemctl enable yum-cron
6. Настройка зеркал
Настройка APT зеркал
1. Установите apt-mirror:
sudo apt install -y apt-mirror
2. Настройте зеркало:
sudo nano /etc/apt/mirror.list
3. Добавьте настройки:
set base_path /var/spool/apt-mirror set nthreads 20 set _tilde 0 deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse
4. Запустите зеркалирование:
sudo apt-mirror
Настройка YUM зеркал
1. Установите reposync:
sudo yum install -y yum-utils
2. Создайте скрипт зеркалирования:
sudo nano /usr/local/bin/yum-mirror.sh
3. Добавьте содержимое:
\#!/bin/bash MIRROR_DIR="/var/repos" REPOS="base updates extras centosplus" for repo in $REPOS; do reposync --gpgcheck -l --repoid=$repo --download_path=$MIRROR_DIR createrepo $MIRROR_DIR/$repo done
4. Сделайте скрипт исполняемым:
sudo chmod +x /usr/local/bin/yum-mirror.sh
7. Настройка автоматических обновлений
Настройка APT автоматических обновлений
1. Установите unattended-upgrades:
sudo apt install -y unattended-upgrades
2. Настройте автоматические обновления:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
3. Добавьте настройки:
Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}-security"; "${distro_id}:${distro_codename}-updates"; }; Unattended-Upgrade::AutoFixInterruptedDpkg "true"; Unattended-Upgrade::MinimalSteps "true"; Unattended-Upgrade::Remove-Unused-Dependencies "true"; Unattended-Upgrade::Automatic-Reboot "false";
4. Включите автоматические обновления:
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
5. Добавьте настройки:
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1";
Настройка YUM автоматических обновлений
1. Установите yum-cron:
sudo yum install -y yum-cron
2. Настройте yum-cron:
sudo nano /etc/yum/yum-cron.conf
3. Измените настройки:
update_cmd = security update_messages = yes download_updates = yes apply_updates = yes
4. Запустите yum-cron:
sudo systemctl start yum-cron
sudo systemctl enable yum-cron
8. Настройка безопасности
Настройка GPG ключей
1. Добавление GPG ключей APT:
wget -qO - https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
2. Добавление GPG ключей YUM:
sudo rpm --import https://download.docker.com/linux/centos/gpg
sudo rpm --import https://nginx.org/keys/nginx_signing.key
Настройка проверки подписей
1. Настройка APT проверки:
sudo nano /etc/apt/apt.conf.d/99verify
2. Добавьте настройки:
APT::Get::AllowUnauthenticated "false"; APT::Get::AllowDowngradeToInsecureRepositories "false";
3. Настройка YUM проверки:
sudo nano /etc/yum.conf
4. Измените настройки:
gpgcheck=1 repo_gpgcheck=1
9. Мониторинг и обслуживание
Создание скрипта мониторинга
1. Создайте скрипт мониторинга:
sudo nano /usr/local/bin/package-monitor.sh
2. Добавьте содержимое:
\#!/bin/bash \# Проверка доступности репозиториев if command -v apt &> /dev/null; then if ! apt update &> /dev/null; then echo "APT repositories are not accessible!" | mail -s "Package Manager Alert" admin@example.com fi fi if command -v yum &> /dev/null; then if ! yum check-update &> /dev/null; then echo "YUM repositories are not accessible!" | mail -s "Package Manager Alert" admin@example.com fi fi \# Проверка доступных обновлений if command -v apt &> /dev/null; then UPDATES=$(apt list --upgradable 2>/dev/null | wc -l) if [ $UPDATES -gt 1 ]; then echo "APT: $UPDATES packages available for update" | mail -s "Package Manager Report" admin@example.com fi fi if command -v yum &> /dev/null; then UPDATES=$(yum check-update 2>/dev/null | wc -l) if [ $UPDATES -gt 0 ]; then echo "YUM: $UPDATES packages available for update" | mail -s "Package Manager Report" admin@example.com fi fi
3. Сделайте скрипт исполняемым:
sudo chmod +x /usr/local/bin/package-monitor.sh
4. Добавьте в crontab:
sudo crontab -e
5. Добавьте задачу:
0 6 * * * /usr/local/bin/package-monitor.sh
Настройка логирования
1. Настройка APT логирования:
sudo nano /etc/apt/apt.conf.d/99logging
2. Добавьте настройки:
APT::Get::List-Cleanup "true"; APT::Get::Show-User-Simulation-Note "false"; APT::Get::Show-User-Simulation-Warning "false";
3. Настройка YUM логирования:
sudo nano /etc/yum.conf
4. Добавьте настройки:
debuglevel=2 logfile=/var/log/yum.log
10. Резервное копирование
Создание скрипта резервного копирования
1. Создайте скрипт резервного копирования:
sudo nano /usr/local/bin/package-backup.sh
2. Добавьте содержимое:
\#!/bin/bash BACKUP_DIR="/backup/packages" DATE=$(date +%Y%m%d_%H%M%S) \# Создание директории для бэкапа mkdir -p $BACKUP_DIR \# Резервное копирование APT конфигурации if [ -d "/etc/apt" ]; then tar -czf $BACKUP_DIR/apt-config-$DATE.tar.gz -C /etc apt fi \# Резервное копирование YUM конфигурации if [ -d "/etc/yum.repos.d" ]; then tar -czf $BACKUP_DIR/yum-config-$DATE.tar.gz -C /etc yum.repos.d fi \# Резервное копирование списка установленных пакетов if command -v dpkg &> /dev/null; then dpkg --get-selections > $BACKUP_DIR/installed-packages-$DATE.txt fi if command -v rpm &> /dev/null; then rpm -qa > $BACKUP_DIR/installed-packages-$DATE.txt fi \# Удаление старых бэкапов (старше 7 дней) find $BACKUP_DIR -name "*-$DATE*" -mtime +7 -delete echo "Package manager backup completed: $DATE"
3. Сделайте скрипт исполняемым:
sudo chmod +x /usr/local/bin/package-backup.sh
4. Добавьте в crontab:
sudo crontab -e
5. Добавьте задачу:
0 2 * * * /usr/local/bin/package-backup.sh
11. Устранение неполадок
Частые проблемы
1. Проблемы с репозиториями:
- Проверьте доступность репозиториев
- Проверьте GPG ключи
- Очистите кэш пакетов
2. Проблемы с зависимостями:
- Используйте --fix-broken для APT
- Используйте --skip-broken для YUM
- Проверьте конфликты пакетов
3. Проблемы с производительностью:
- Настройте зеркала
- Используйте кэширование
- Оптимизируйте репозитории
Диагностика
1. Проверка APT:
sudo apt update
sudo apt list --upgradable
sudo apt autoremove
2. Проверка YUM:
sudo yum check-update
sudo yum list updates
sudo yum clean all
3. Проверка DNF:
sudo dnf check-update
sudo dnf list updates
sudo dnf clean all
4. Проверка репозиториев:
curl -I http://archive.ubuntu.com/ubuntu/
curl -I http://mirror.centos.org/centos/
5. Проверка GPG ключей:
apt-key list
rpm -qa gpg-pubkey
Заключение
Система управления пакетами успешно настроена! Теперь у вас есть оптимизированная система управления пакетами с возможностями кэширования, зеркалирования и автоматических обновлений.
Для размещения ваших серверов с настроенными системами управления пакетами на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):
- [Выделенные серверы](https://ark-hoster.ru/dedicated/) - для критически важных серверов с оптимизированными системами управления пакетами
- [VPS/VDS серверы](https://ark-hoster.ru/vpsgame/) - для небольших и средних проектов
Наши специалисты помогут с настройкой систем управления пакетами и оптимизацией производительности ваших серверов!