Как перевести пользователей PPA из одного PPA в другой?

8

Мне нужно перевести существующих пользователей из одного PPA в другой PPA, так что это вопрос, как автоматизировать переход без как можно меньшего влияния на пользователей.

Точнее:

У меня есть PPA для PHP 5.5 и PHP 5.6, которые используют упаковку PHP старого стиля, которая использовалась до Xenial, и у них довольно много пользователей.

Теперь я сделал новый PPA, который включает PHP 5.5, PHP 5.6 и PHP 7.0, и я бы хотел, чтобы пользователи старых PPA переключились на этот новый PPA. У меня есть пара идей, как это сделать, но я хотел бы получить больше информации от сообщества AskUbuntu.

Пожалуйста, поделитесь своими мыслями в комментариях, отредактируйте ответы ниже или добавьте свое собственное предложение.

oerdnj
источник
Хорошие ответы ...
simhumileco

Ответы:

3

Вариант 3 - Автоматически добавлять новый PPA

Это как 2, но php5-commonавтоматически добавит новый PPA, так что новые пакеты будут доступны после следующего apt-get updateзапуска. При желании может возникнуть вопрос Debconf о том, хотят ли пользователи автоматически добавлять PPA или они сами это сделают.

  • Плюсы:
    1. Один репозиторий для обработки
    2. Нет автоматического перехода
    3. Пользователи могут подготовить свой план перехода
    4. Пакеты готовы к установке сразу
    5. Добавление PPA из одного пространства имен может работать без сбоев
  • Минусы:
    1. Некоторые пользователи пропустят объявление, как бы вы ни старались
    2. Добавление дополнительного PPA автоматически кажется угрозой безопасности
    3. Добавление дополнительного PPA из другого пространства имен требует добавления дополнительных ключей GPG, /etc/apt/trusted.gpg.d/что также представляет угрозу безопасности
oerdnj
источник
Там же php-ppaпакет в старом ppa:ondrej/php5и ppa:ondrej/php5-5.6, таким образом , вы можете попробовать это уже.
oerdnj
Я не вижу угрозы безопасности при добавлении ppa (либо они доверяют вам, и все в порядке, либо нет, и тогда они не должны использовать ваши пакеты для начала)?
JanC
@JanC Спасибо за отзыв. Тем не менее, мне было бы неудобно, если бы пакеты добавляли дополнительные PPA, не спрашивая сначала, но я уже реализовал вопрос debconf для этого, так что я думаю, что все должно быть в порядке.
oerdnj
Да, конечно, предупреждение пользователей заранее и / или когда это произойдет, а также документирование их в файле CHANGES или около того - хорошая идея.
JanC
Кстати: может быть, в какой-то момент вы также захотите делать регулярные пересборки без изменений с добавочными номерами версий в старых PPA, чтобы те, кто игнорирует изменение PPA, получали регулярные напоминания от debconf… :)
JanC
2

Вариант 2 - Составьте план амортизации и известите пользователей

  • Плюсы:
    1. Один репозиторий для обработки
    2. Нет автоматического перехода
    3. Пользователи могут подготовить свой план перехода
  • Минусы:
    1. Некоторые пользователи пропустят объявление, как бы вы ни старались
    2. Будут люди, которые скажут: «Пожалуйста, не делай этого»
    3. Нет автоматического перехода
oerdnj
источник
1

Вариант 1 - ничего не делать

  • Плюсы:
    1. Пользователи счастливы
  • Минусы:
    1. Каждый дублированный исходный пакет должен иметь две версии сценария сборки
    2. Перегруженный и несчастный сопровождающий PPA
oerdnj
источник
1

Вариант 4 - Полностью автоматизированный переход

Это похоже на вариант 3, но добавляет фиктивные пакеты, которые заменят старые php5*и вытащат новыеphp5.6*

  • Плюсы (включая плюсы из Варианта 3):
    1. Если все работает как положено, это может быть лучшим вариантом, так как пользователи получат новые пакеты без какой-либо работы на их стороне
  • Минусы (включая минусы из варианта 3):
    1. Переключатель удалит изменения, сделанные людьми в старые файлы конфигурации, или для перехода понадобятся сложные сценарии сопровождающего, чтобы перенести старую конфигурацию в новые места.
    2. Пакет-пустышка должен будет нести хотя бы некоторую конфигурацию для настройки сокета FPM и старых имен, чтобы не нарушить совместимость со старыми настройками (используйте альтернативы обновления, /usr/bin/php5чтобы указать на них /usr/bin/php5.6)
oerdnj
источник