Иногда в Linux необходимо обновить только один пакет, а не всю систему целиком. Эта статья покажет, как сделать это с помощью apt на примере пакета curl, используя параметр --only-upgrade.
Почему стоит использовать apt install —only-upgrade
- Массовое обновление занимает больше времени и может нарушить стабильность системы.
- Обновление всех пакетов иногда приводит к конфликтам зависимостей.
- Необходимо протестировать новую версию конкретного пакета без влияния на другие компоненты.
- Экономия трафика и ресурсов — особенно на серверах с ограниченной пропускной способностью.
Пошаговое решение
Шаг 1. Обновите индекс пакетов
sudo apt updateКоманда обновляет список пакетов в системе. Пример вывода:
Get:1 http://archive.ubuntu.com/ubuntu focal InRelease [265 kB]
Fetched 2,345 kB in 2s (1,050 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.Шаг 2. Проверьте доступные версии пакета
apt policy curlКоманда показывает текущую установленную версию и версии, доступные в репозиториях:
curl:
Installed: 7.68.0-1ubuntu2.18
Candidate: 7.68.0-1ubuntu2.19
Version table:
7.68.0-1ubuntu2.19 500
500 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
*** 7.68.0-1ubuntu2.18 100
100 /var/lib/dpkg/statusЗдесь видно, что доступна новая версия 7.68.0-1ubuntu2.19.
Шаг 3. Обновите только этот пакет
sudo apt install --only-upgrade curlПараметр --only-upgrade заставляет apt обновить только установленный пакет, не устанавливая новые. Пример вывода:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
curl
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 234 kB of archives.
After this operation, 2,048 B of additional disk space will be used.
Do you want to continue? [Y/n]Шаг 4. Проверьте результат обновления
dpkg -s curl | grep VersionВывод покажет обновлённую версию пакета, например:
Version: 7.68.0-1ubuntu2.19Шаг 5. Очистите кэш (по желанию)
sudo apt cleanЭта команда удаляет скачанные .deb файлы из /var/cache/apt/archives, освобождая место и предотвращая конфликты при будущих обновлениях.
Альтернативные методы
Если по какой-то причине параметр --only-upgrade не работает, можно использовать аналогичные команды:
sudo apt-get install --only-upgrade curlили, если установлен aptitude:
sudo aptitude install curl --target-release stableДля систем с RPM (Fedora, CentOS, AlmaLinux) аналог — sudo dnf upgrade curl или sudo yum update curl.
Проверка результата
- Убедитесь, что пакет обновлён:
dpkg -l | grep curl - Проверьте версию программы:
curl --versionПример вывода:
curl 7.68.0 (x86_64-pc-linux-gnu) libcurl/7.68.0 OpenSSL/1.1.1f - Если это сервис, перезапустите его:
sudo systemctl restart service_name
Как избежать проблем в будущем
- Регулярно обновляйте индекс пакетов (
sudo apt update). - Перед важными обновлениями делайте резервные копии.
- Используйте
--only-upgradeдля избирательного обновления важных компонентов. - Перед обновлением проверяйте доступные версии с помощью
apt policy.
FAQ
Почему apt install без —only-upgrade может установить новые пакеты?
Без этого параметра apt может добавить недостающие зависимости или установить пакет, если он отсутствует.
Можно ли обновить вручную через .deb файл?
Да, но это повышает риск конфликтов зависимостей. Лучше использовать apt с официальных репозиториев.
Что делать, если обновление вызывает ошибки?
Проверьте логи (/var/log/apt/), выполните sudo apt install --reinstall curl или откатите пакет к предыдущей версии.
Смотрите также: Как откатить пакет до предыдущей версии в apt.