Настройка системы управления пакетами yum-apt

Материал из ARK-HOSTER.RU | Документация хостинга
Версия от 10:39, 15 октября 2025; Admin (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

Настройка системы управления пакетами (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/) - для небольших и средних проектов

Наши специалисты помогут с настройкой систем управления пакетами и оптимизацией производительности ваших серверов!