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

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к: навигация, поиск
(Новая страница: «= Настройка системы управления пакетами (yum/apt) = == 1. Подготовка системы == * Войдите в сист…»)
(нет различий)

Версия 08:34, 15 октября 2025

Содержание

Настройка системы управления пакетами (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

  1. Дополнительные репозитории

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

  1. Проверка доступности репозиториев

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

  1. Проверка доступных обновлений

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)

  1. Создание директории для бэкапа

mkdir -p $BACKUP_DIR

  1. Резервное копирование APT конфигурации

if [ -d "/etc/apt" ]; then

   tar -czf $BACKUP_DIR/apt-config-$DATE.tar.gz -C /etc apt

fi

  1. Резервное копирование YUM конфигурации

if [ -d "/etc/yum.repos.d" ]; then

   tar -czf $BACKUP_DIR/yum-config-$DATE.tar.gz -C /etc yum.repos.d

fi

  1. Резервное копирование списка установленных пакетов

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

  1. Удаление старых бэкапов (старше 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/) - для небольших и средних проектов

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