06. Установка программного обеспечения на Ubuntu Server и управление им: полное руководство

Управление программным обеспечением — фундаментальный навык любого администратора Ubuntu Server. Независимо от того, работаете ли вы в облачной среде, такой как Azure, AWS или GCP, или управляете локальной инфраструктурой, понимание таких инструментов управления пакетами, как APT необходимо для поддержания безопасной и оптимизированной системы.

В этом руководстве мы рассмотрим основы установки, обновления и управления программным обеспечением, изучим сценарии для облачных сред, разберём распространённые проблемы и приведём практические примеры, которые помогут вам освоить администрирование Ubuntu Server.


Предыдущая статья:

01. Введение в Ubuntu Server – SysOSX: AI & Cloud

02. Как настроить первый сервер Ubuntu: руководство для начинающих – SysOSX: AI & Cloud

03. Освоение командной строки Linux для Ubuntu Server – SysOSX: AI & Cloud

04. Управление пользователями и разрешениями на Ubuntu Server: полное руководство – SysOSX: AI & Cloud

05. Основы сетей для Ubuntu Server: полное руководство – SysOSX: AI & Cloud



1. Понимание APT и управления пакетами в Ubuntu

В Ubuntu Server используется APT (Advanced Package Tool) в качестве основного менеджера пакетов. APT упрощает управление программным обеспечением, автоматически обрабатывая зависимости и используя репозитории как доверенные источники пакетов.

Ключевые компоненты APT:

  • apt: Инструмент командной строки для управления пакетами.
  • dpkg: Низкоуровневый менеджер пакетов для .deb файлов.
  • Репозитории: Онлайн-источники, в которых хранятся и откуда получаются пакеты Ubuntu.

2. Установка программного обеспечения с помощью APT

Чтобы установить программное обеспечение на Ubuntu Server, используйте команду apt install .

Пример: установка веб-сервера Apache

  • Обновите список пакетов:
sudo apt update 

Вывод:

Hit:1 http://azure.archive.ubuntu.com/ubuntu noble InRelease
Get:2 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
Get:3 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB]
Get:4 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Get:5 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [922 kB]
Get:6 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [151 kB]
Get:7 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [364 kB]
Get:8 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Components [212 B]
Get:9 http://azure.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B]
Get:10 http://azure.archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [7076 B]
Get:11 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [21.3 kB]
Get:12 http://azure.archive.ubuntu.com/ubuntu noble-backports/restricted amd64 Components [212 B]
Get:13 http://azure.archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Components [212 B]
Get:14 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Components [9024 B]
Get:15 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Components [51.9 kB]
Get:16 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted amd64 Components [208 B]
Get:17 http://azure.archive.ubuntu.com/ubuntu noble-security/multiverse amd64 Components [208 B]
Fetched 1907 kB in 1s (2778 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
15 packages can be upgraded. Run 'apt list --upgradable' to see them.
  • Установите Apache:
sudo apt install apache2

3. Удаление программного обеспечения

Если пакет больше не нужен, его можно удалить с помощью команд apt remove или apt purge .

Пример: удаление Apache

sudo apt remove apache2

Вывод:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  apache2
...
After this operation, 2 MB disk space will be freed.
Do you want to continue? [Y/n]

Чтобы удалить его полностью, включая файлы конфигурации:

sudo apt purge apache2


4. Обновление и модернизация пакетов

Регулярные обновления критически важны для безопасности и стабильности системы.

Команды:

  • Обновление списка пакетов
sudo apt update 
  • Модернизация установленных пакетов
sudo apt upgrade
  • Полное обновление (включая обновления ядра)
sudo apt full-upgrade

Вывод:

The following packages will be upgraded:
  linux-image-5.4.0-91-generic linux-headers-5.4.0-91-generic ...
Do you want to continue? [Y/n]

5. Управление репозиториями

Репозитории необходимы для управления пакетами. По умолчанию Ubuntu использует официальные репозитории, но при необходимости можно добавлять, изменять или удалять дополнительные репозитории.

Управление репозиториями в формате Deb822

Недавние версии Ubuntu перешли на формат Deb822 для управления репозиториями. Вместо традиционного файла /etc/apt/sources.list репозитории теперь управляются через .sources файлов, расположенных в /etc/apt/sources.list.d/ каталоге.

Просмотр текущих репозиториев

Чтобы просмотреть текущие репозитории, проверьте файлы .sources в /etc/apt/sources.list.d/:

ls /etc/apt/sources.list.d/

Например:

cat /etc/apt/sources.list.d/ubuntu.sources

Файл .sources в формате Deb822 выглядит так:

Types: deb
URIs: http://archive.ubuntu.com/ubuntu/
Suites: noble-security
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Добавление репозитория

Чтобы добавить новый репозиторий в формате Deb822, создайте файл .sources в /etc/apt/sources.list.d/. Например, чтобы добавить пользовательский репозиторий PPA:

sudo nano /etc/apt/sources.list.d/custom.sources

Добавьте нужное настроенное содержимое:

Types: deb
URIs: http://customizedurl/
Suites: noble
Components: main
Signed-By: /usr/share/keyrings/repository-name.gpg

Сохраните файл и обновите список пакетов:

sudo apt update

Удаление репозитория

Чтобы удалить репозиторий, удалите соответствующий файл .sources из /etc/apt/sources.list.d/:

sudo rm /etc/apt/sources.list.d/custom.sources
sudo apt update

Преимущества формата Deb822

  • Структурированная конфигурация: Чётко разделяет типы репозиториев, URI, наборы и компоненты.
  • Повышенная безопасность: Позволяет указывать ключи GPG для подписи репозиториев с помощью поля Signed-By .
  • Улучшенная совместимость: Упрощает управление несколькими репозиториями в облачных и контейнеризированных средах.

Подробнее см. страницу руководства sources.list(5).


6. Управление кешем пакетов

APT использует систему кеша для локального хранения скачанных файлов пакетов и метаданных. Этот кеш ускоряет такие операции, как установка и обновление программного обеспечения, но со временем может разрастаться и занимать место на диске. Понимание того, как управлять кешем, необходимо для поддержания производительности системы и освобождения ресурсов.

Проверка размера кеша

Чтобы проверить, сколько места занимает кеш:

sudo du -sh /var/cache/apt/

Пример вывода:

126M    /var/cache/apt/

Очистка кеша

  1. Очистка кеша пакетов
    Используйте apt clean команду для удаления всех кешированных файлов пакетов:sudo apt clean Это очищает /var/cache/apt/archives каталог, в котором хранятся скачанные .deb файлы.
  2. Удаление частичных загрузок
    Если загрузка была прервана или повреждена, удалите частичные файлы с помощью:sudo apt autoclean При этом удаляются только устаревшие файлы и частичные загрузки.

Пример вывода при очистке кеша

sudo apt clean
sudo apt autoclean

Вывод:

Cleaning up /var/cache/apt/archives...
Removing unused files...
Done.

Перестроение кеша

Если вы подозреваете, что метаданные кеша повреждены, перестройте кеш, обновив список пакетов:

sudo apt update 

При этом локальный кеш обновляется новейшими метаданными из репозиториев.


7. Облачные сценарии: управление программным обеспечением в Azure, AWS и GCP

В облачных средах управление программным обеспечением на Ubuntu Server работает так же, как и в локальных установках. Однако есть дополнительные соображения:

Azure

  • Azure предоставляет пользовательские расширения скриптов для автоматизации установки программного обеспечения при развёртывании виртуальных машин.
  • Пример: использование скрипта для установки Nginx:
az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name CustomScript \
  --publisher Microsoft.Azure.Extensions \
  --settings '{"commandToExecute":"sudo apt update && sudo apt install -y nginx"}'

AWS

  • Используйте скрипты пользовательских данных для установки программного обеспечения при запуске экземпляра.
  • Пример: установка Docker на экземпляре EC2:
#!/bin/bash
sudo apt update
sudo apt install -y docker.io

GCP

  • Используйте скрипты запуска для управления установкой программного обеспечения на экземплярах виртуальных машин.
  • Пример: установка MySQL:
#!/bin/bash
sudo apt update
sudo apt install -y mysql-server

8. Устранение распространённых проблем при установке или удалении

1. Пакет не найден

Если пакет не найден, убедитесь, что репозиторий включён:

sudo apt update 
sudo apt update

2. Ошибки зависимостей

Исправьте отсутствующие зависимости:

sudo apt --fix-broken install

3. Проблемы с репозиториями

Проверьте наличие ошибок репозиториев:

sudo apt update 

Пример вывода:

Err:1 http://ppa.launchpad.net/repository-name/ubuntu noble Release
  404 Not Found

Решение: удалите или исправьте запись репозитория в /etc/apt/sources.list.

4. После удаления остаются остаточные файлы

Удалите оставшиеся файлы:

sudo apt autoremove
sudo apt purge package-name

5. Доступ запрещён

Убедитесь, что у вас есть права root:

sudo apt install package-name


9. Рекомендации по управлению пакетами

  • Всегда обновляйте систему перед установкой программного обеспечения
sudo apt update 
  • Регулярно обновляйте систему
    Используйте apt upgrade или apt full-upgrade  чтобы обеспечить безопасность системы.
  • Удаляйте ненужные пакеты
sudo apt autoremove
  • Используйте доверенные репозитории
    Избегайте сторонних репозиториев, если в них нет необходимости.
  • Отслеживайте изменения пакетов в облачных средах
    Автоматизируйте обновления с помощью скриптов или инструментов управления конфигурацией, таких как Ansible.
  • Периодически очищайте кеш
    Регулярно очищайте кеш, чтобы освободить место на диске:
sudo apt clean

Заключение

Независимо от того, управляете ли вы локальным сервером или работаете в облаке, освоение установки программного обеспечения и управления им на Ubuntu Server критически важно для поддержания безопасной и эффективной системы. Следуя рекомендациям, изложенным в этом руководстве, вы сможете обеспечить оптимальную работу сервера и его готовность к любой нагрузке.

Дополнительную информацию см. в официальной документации Ubuntu по APT.

Что дальше?

В следующей статье мы подробнее рассмотрим установку исправлений и обновление Ubuntu Server— критически важную задачу для поддержания безопасности и стабильности. Вы узнаете:

  • Почему установка исправлений критически важна для безопасности и стабильности и как это предотвращает уязвимости.
  • Как использовать apt для эффективного обновления и модернизации сервера.
  • Различия между apt update, apt upgrade, и apt full-upgrade чтобы избежать распространённых ошибок.
  • Автоматизация обновлений с помощью unattended-upgrades для экономии времени и обеспечения согласованности.
  • Как обрабатывать обновления ядра и корректно перезагружать сервер с помощью уведомлений reboot-required .

Следите за практическими советами о том, как обеспечить безопасность и актуальность вашего Ubuntu Server!

4 thoughts on “06. Installing and Managing Software on Ubuntu Server: A Complete Guide”

Оставить комментарий