Настройка системы управления пакетами yum-apt: различия между версиями
Admin (обсуждение | вклад) Нет описания правки |
Починка разметки: ссылки и жирный шрифт из Markdown, лишние обратные косые черты в коде, заголовки — проверка вики 13.11.2026 |
||
| (не показана 1 промежуточная версия этого же участника) | |||
| Строка 26: | Строка 26: | ||
2. '''Добавление PPA репозиториев''': | 2. '''Добавление PPA репозиториев''': | ||
<pre>sudo add-apt-repository ppa:ondrej/php</pre> | <pre>sudo add-apt-repository ppa:ondrej/php</pre> | ||
Перед добавлением PPA проверьте на его странице в Launchpad, что в нём есть сборки для вашего выпуска Ubuntu. Например, в <code>ppa:nginx/stable</code> сборок для Ubuntu 22.04 и 24.04 нет. | |||
3. '''Добавление сторонних репозиториев''': | 3. '''Добавление сторонних репозиториев''': | ||
| Строка 35: | Строка 36: | ||
=== Настройка источников пакетов === | === Настройка источников пакетов === | ||
'''Внимание:''' кодовое имя в строках репозиториев должно совпадать с вашим выпуском Ubuntu (24.04 — <code>noble</code>, 22.04 — <code>jammy</code>). Узнать его можно командой <code>lsb_release -cs</code>. Репозитории другого выпуска (например, <code>focal</code> на 24.04) подключать нельзя: apt начнёт смешивать пакеты разных выпусков и может сломать систему. | |||
< | |||
1. В Ubuntu 24.04 системные репозитории описаны в файле <code>/etc/apt/sources.list.d/ubuntu.sources</code>, и менять его обычно не требуется. Посмотреть содержимое: | |||
< | <pre>cat /etc/apt/sources.list.d/ubuntu.sources</pre> | ||
2. Стандартное содержимое для Ubuntu 24.04 выглядит так: | |||
deb http:// | <pre>Types: deb | ||
deb http:// | URIs: http://archive.ubuntu.com/ubuntu/ | ||
Suites: noble noble-updates noble-backports | |||
Components: main restricted universe multiverse | |||
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg | |||
Types: deb | |||
URIs: http://security.ubuntu.com/ubuntu/ | |||
Suites: noble-security | |||
Components: main restricted universe multiverse | |||
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg | |||
</pre> | </pre> | ||
Сторонние репозитории и PPA добавляйте отдельными файлами в <code>/etc/apt/sources.list.d/</code> (команда <code>add-apt-repository</code> делает это сама), а не дописывайте в системный файл. | |||
=== Настройка приоритетов пакетов === | === Настройка приоритетов пакетов === | ||
| Строка 56: | Строка 63: | ||
2. Добавьте настройки: | 2. Добавьте настройки: | ||
<pre>Package: * | <pre>Package: php* | ||
Pin: release | Pin: release o=LP-PPA-ondrej-php | ||
Pin-Priority: | Pin-Priority: 900 | ||
</pre> | |||
Этот пример отдаёт предпочтение пакетам PHP из подключённого PPA. Приоритет 1000 и выше без необходимости не ставьте: он разрешает apt понижать версии уже установленных пакетов. Не указывайте в <code>Pin</code> кодовое имя другого выпуска Ubuntu. | |||
Pin | |||
</ | |||
== 3. Настройка YUM (CentOS/RHEL) == | == 3. Настройка YUM (CentOS/RHEL) == | ||
| Строка 209: | Строка 210: | ||
set _tilde 0 | set _tilde 0 | ||
deb http://archive.ubuntu.com/ubuntu | deb http://archive.ubuntu.com/ubuntu noble main restricted universe multiverse | ||
deb http://archive.ubuntu.com/ubuntu | deb http://archive.ubuntu.com/ubuntu noble-updates main restricted universe multiverse | ||
deb http://archive.ubuntu.com/ubuntu | deb http://archive.ubuntu.com/ubuntu noble-backports main restricted universe multiverse | ||
deb http://security.ubuntu.com/ubuntu | deb http://security.ubuntu.com/ubuntu noble-security main restricted universe multiverse | ||
</pre> | </pre> | ||
| Строка 227: | Строка 228: | ||
3. Добавьте содержимое: | 3. Добавьте содержимое: | ||
<pre> | <pre>#!/bin/bash | ||
MIRROR_DIR="/var/repos" | MIRROR_DIR="/var/repos" | ||
| Строка 328: | Строка 329: | ||
2. Добавьте содержимое: | 2. Добавьте содержимое: | ||
<pre> | <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: | Строка 344: | ||
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) | ||
| Строка 395: | Строка 396: | ||
2. Добавьте содержимое: | 2. Добавьте содержимое: | ||
<pre> | <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 конфигурации | |||
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 конфигурации | |||
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: | Строка 423: | ||
fi | fi | ||
# Удаление старых бэкапов (старше 7 дней) | |||
find $BACKUP_DIR -name "*-$DATE*" -mtime +7 -delete | find $BACKUP_DIR -name "*-$DATE*" -mtime +7 -delete | ||
| Строка 485: | Строка 486: | ||
Система управления пакетами успешно настроена! Теперь у вас есть оптимизированная система управления пакетами с возможностями кэширования, зеркалирования и автоматических обновлений. | Система управления пакетами успешно настроена! Теперь у вас есть оптимизированная система управления пакетами с возможностями кэширования, зеркалирования и автоматических обновлений. | ||
'''Для размещения ваших серверов с настроенными системами управления пакетами на надежном хостинге рекомендуем воспользоваться услугами [ | '''Для размещения ваших серверов с настроенными системами управления пакетами на надежном хостинге рекомендуем воспользоваться услугами [https://ark-hoster.ru ARK-HOSTER.RU]:''' | ||
* '''[ | * '''[https://ark-hoster.ru/dedicated/ Выделенные серверы]''' - для критически важных серверов с оптимизированными системами управления пакетами | ||
* '''[ | * '''[https://ark-hoster.ru/vpsgame/ VPS/VDS серверы]''' - для небольших и средних проектов | ||
Наши специалисты помогут с настройкой систем управления пакетами и оптимизацией производительности ваших серверов! | Наши специалисты помогут с настройкой систем управления пакетами и оптимизацией производительности ваших серверов! | ||
Текущая версия от 08:11, 14 ноября 2026
Настройка системы управления пакетами (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:ondrej/php
Перед добавлением PPA проверьте на его странице в Launchpad, что в нём есть сборки для вашего выпуска Ubuntu. Например, в ppa:nginx/stable сборок для Ubuntu 22.04 и 24.04 нет.
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
Настройка источников пакетов
Внимание: кодовое имя в строках репозиториев должно совпадать с вашим выпуском Ubuntu (24.04 — noble, 22.04 — jammy). Узнать его можно командой lsb_release -cs. Репозитории другого выпуска (например, focal на 24.04) подключать нельзя: apt начнёт смешивать пакеты разных выпусков и может сломать систему.
1. В Ubuntu 24.04 системные репозитории описаны в файле /etc/apt/sources.list.d/ubuntu.sources, и менять его обычно не требуется. Посмотреть содержимое:
cat /etc/apt/sources.list.d/ubuntu.sources
2. Стандартное содержимое для Ubuntu 24.04 выглядит так:
Types: deb URIs: http://archive.ubuntu.com/ubuntu/ Suites: noble noble-updates noble-backports Components: main restricted universe multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg Types: deb URIs: http://security.ubuntu.com/ubuntu/ Suites: noble-security Components: main restricted universe multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Сторонние репозитории и PPA добавляйте отдельными файлами в /etc/apt/sources.list.d/ (команда add-apt-repository делает это сама), а не дописывайте в системный файл.
Настройка приоритетов пакетов
1. Создайте файл приоритетов:
sudo nano /etc/apt/preferences.d/99-custom
2. Добавьте настройки:
Package: php* Pin: release o=LP-PPA-ondrej-php Pin-Priority: 900
Этот пример отдаёт предпочтение пакетам PHP из подключённого PPA. Приоритет 1000 и выше без необходимости не ставьте: он разрешает apt понижать версии уже установленных пакетов. Не указывайте в Pin кодовое имя другого выпуска Ubuntu.
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 noble main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu noble-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu noble-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu noble-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:
- Выделенные серверы - для критически важных серверов с оптимизированными системами управления пакетами
- VPS/VDS серверы - для небольших и средних проектов
Наши специалисты помогут с настройкой систем управления пакетами и оптимизацией производительности ваших серверов!