[Jammy]: puppet-agent не имеет кандидата на установку, несмотря на следование инструкциям.

Вопрос или проблема

Цель: установить агент Puppet 6 в контейнере Docker на базе ubuntu:jammy для тестирования сценариев Puppet.

Я добавил репозитории Puppetlabs, выполнил apt-get update и apt-get upgrade, но команда apt-get install puppet-agent по-прежнему завершается ошибкой ‘нет кандидата на установку`.

Инструкции, которых я придерживался: инструкции Puppet

Что я делаю не так?

Инструкции по воспроизведению

Dockerfile

FROM ubuntu:jammy

EXPOSE 80

RUN apt-get update
RUN apt-get upgrade -y
RUN yes| unminimize
RUN apt-get install apt-utils -y

# необходимые пакеты
RUN apt-get install unzip -y
RUN apt-get install wget -y
RUN apt-get install puppet -y

Команды в терминале контейнера Docker

root@6d2e2ea018b6:/# history 
    1  wget https://apt.puppet.com/puppet6-release-jammy.deb
    2  dpkg -i puppet6-release-jammy.deb 
    3  apt-get update -y
    4  apt-get upgrade -y
    5  apt-get install puppet-agent

Вывод команды

root@6d2e2ea018b6:/# wget https://apt.puppet.com/puppet6-release-jammy.deb
--2023-06-07 11:59:24--  https://apt.puppet.com/puppet6-release-jammy.deb
Разрешение apt.puppet.com (apt.puppet.com)... 52.222.139.62, 52.222.139.78, 52.222.139.20, ...
Подключение к apt.puppet.com (apt.puppet.com)|52.222.139.62|:443... подключено.
HTTP-запрос отправлен, ожидается ответ... 200 OK
Размер: 11702 (11K) [application/x-debian-package]
Сохранение в: 'puppet6-release-jammy.deb'

puppet6-release-jammy.deb                       100%[=====================================================================================================>]  11.43K  --.-KB/s    за 0s      

2023-06-07 11:59:24 (127 MB/s) - 'puppet6-release-jammy.deb' сохранен [11702/11702]

root@6d2e2ea018b6:/# dpkg -i puppet6-release-jammy.deb 
Выбор ранее не выбранного пакета puppet6-release.
(Чтение базы данных ... 10920 файлов и каталогов в настоящее время установлено.)
Подготовка к распаковке puppet6-release-jammy.deb ...
Распаковка puppet6-release (6.0.0-23jammy) ...
Настройка puppet6-release (6.0.0-23jammy) ...
root@6d2e2ea018b6:/# apt-get update -y
Обновлено: 1 http://ports.ubuntu.com/ubuntu-ports jammy InRelease
Получение: 2 http://ports.ubuntu.com/ubuntu-ports jammy-updates InRelease [119 kB]
Получение: 3 http://ports.ubuntu.com/ubuntu-ports jammy-backports InRelease [108 kB]
Получение: 4 http://ports.ubuntu.com/ubuntu-ports jammy-security InRelease [110 kB]
Получение: 5 http://apt.puppetlabs.com jammy InRelease [113 kB]
Получение: 6 http://apt.puppetlabs.com jammy/puppet6 все пакеты [1316 B]
Получение: 7 http://apt.puppetlabs.com jammy/puppet6 arm64 пакеты [1316 B]
Загружено 452 kB за 1s (417 kB/s)    
Чтение списков пакетов... Готово
root@6d2e2ea018b6:/# apt-get upgrade -y
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Расчет обновления... Готово
0 обновлено, 0 новых установлено, 0 удалено и 0 не обновлено.
root@6d2e2ea018b6:/# apt-get install puppet-agent
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Пакет puppet-agent недоступен, но ссылается на другой пакет.
Это может означать, что пакет отсутствует, устарел или
доступен только из другого источника

E: Пакет 'puppet-agent' не имеет кандидата на установку

Что идет не так?

Возможно важная деталь: я работаю на Macbook Pro с M1.

puppet6-release-jammy.deb не содержит puppet-agent, но требует его.

Поэтому скачайте и установите puppet-agent откуда вы получили puppet6-release-jammy.deb. Пакет доступен ТОЛЬКО для 23.04 и 23.10, как видно из списка пакетов. Поэтому обновление до 23.04 также является вариантом. Не знаю, можно ли установить версию 23.04 в 20.04 (список зависимостей, похоже, в порядке).

Вам обязательно нужно использовать Puppet 6, или можно использовать другие версии? Рассматривали ли вы возможность использования виртуализации вместо Docker? Я недавно тестировал Puppet 8 с актуальной версией Ubuntu 22.04 без проблем, используя Vagrant:

wget https://apt.puppetlabs.com/puppet8-release-$(lsb_release -cs).deb
sudo dpkg -i puppet8-release-$(lsb_release -cs).deb
sudo apt-get -qq update
sudo apt-get install -y puppet-agent

Источник: https://medium.com/@joachim8675309/puppetry-with-vagrant-1b5e0613672a

Ответ или решение

Проблема, с которой вы столкнулись, связана с тем, что пакет puppet-agent недоступен в репозиториях для версии Ubuntu Jammy (22.04). При попытке установить пакет, сообщение об ошибке указывает на то, что пакет отсутствует или был заменен.

Возможные решения:

  1. Проверьте наличие пакета для вашей версии:
    Как вы заметили, puppet-agent может отсутствовать для версии 22.04 (Jammy). Вы можете попробовать установить Puppet 8 или другую доступную версию для Ubuntu Jammy.

    Чтобы установить Puppet 8, выполните следующие команды:

    wget https://apt.puppet.com/puppet8-release-jammy.deb
    dpkg -i puppet8-release-jammy.deb
    apt-get update
    apt-get install puppet-agent -y
  2. Переход на другую версию Ubuntu:
    Если возможность использования Puppet 6 критична, вы можете рассмотреть вариант использования версии Ubuntu 22.04 или 23.04, для которых доступны нужные пакеты. Также вы можете изучить возможность установки Puppet в рамках других дистрибутивов.

  3. Использование Ubuntu 20.04:
    Если ваш проект не зависит от Jammy, возможно, стоит попробовать создать контейнер на базе Ubuntu 20.04, в котором puppet-agent может быть доступен.

    С изменением Dockerfile:

    FROM ubuntu:20.04
    
    RUN apt-get update && \
       apt-get install -y wget && \
       wget https://apt.puppet.com/puppet6-release-focal.deb && \
       dpkg -i puppet6-release-focal.deb && \
       apt-get update && \
       apt-get install -y puppet-agent
  4. Используйте виртуализацию:
    Если вы не привязаны к Docker, рассмотрите использование виртуализации, такой как Vagrant. Это может помочь избежать проблем с совместимостью пакетов. Пример команды для установки Puppet 8 в Vagrant:

    wget https://apt.puppet.com/puppet8-release-$(lsb_release -cs).deb
    sudo dpkg -i puppet8-release-$(lsb_release -cs).deb
    sudo apt-get -qq update
    sudo apt-get install -y puppet-agent

Заключение:

Убедитесь, что репозитории правильно настроены, и используйте доступные версии пакетов для вашей версии Ubuntu. Если вам строго необходимо использовать Puppet 6, переход на другую версию Ubuntu может быть наилучшим решением. А для более новых версий рассмотрите возможности использования виртуализации или перехода на более актуальные версии Puppet.

Оцените материал
Добавить комментарий

Капча загружается...