Лучшая практика для самообновления пакета?

Я создаю пакет Linux для приложения, которое я разработал. У меня есть он проверяющий на обновления, когда это запускается, и устанавливающие обновления через инициирование sudo apt-get install <package>, который, конечно, предлагает пользователю разрешение.

Какова лучшая практика / соответствующий способ пойти о выполнении этого? Моя текущая методология распространена или идеальна? В противном случае, что я должен сделать?

Я не ищу кого-то, чтобы сделать работу для меня; я просто хочу быть указанным в правильном направлении так, чтобы мое приложение следовало за ожидаемым поведением. Благодарит тонну!

0
задан 24 January 2016 в 22:56

2 ответа

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

  • Для создания способности обновления, которая будет установлена через apt-get, необходимо работать apt-get update сначала для загрузки обновленной информации о пакете. Это может занять некоторое время и вызвать большой сетевой трафик.
  • обычный пользователь А не может использовать любой apt-get команда вообще.
  • Ваш apt-get вызовы могут быть заблокированы, потому что другой процесс получает доступ к диспетчеру пакетов, или он может заблокировать другие процессы от выполнения так.
1
ответ дан 29 September 2019 в 13:39

При использовании репозитория можно, вероятно, зависеть от unattended-upgrades и добавьте конфигурационный файл, чтобы автоматически загрузить и установить обновления из Вашего репозитория. Например, файл в /etc/apt/apt.conf.d именованный 60my-repo-upgrade, содержа:

Unattended-Upgrade::Allowed-Origins {
    "<origin>:<archive>";
};

Где <origin> и <archive> от Release файл Вашего репозитория. может быть получен из вывода apt-cache policy. Например, репозиторий Google Chrome имеет <origin> как Google, Inc. и <archive> как stable:

$ apt-cache policy | grep -i google
 500 http://dl.google.com/linux/chrome/deb/ stable/main i386 Packages
     release v=1.0,o=Google, Inc.,a=stable,n=stable,l=Google,c=main
     origin dl.google.com
 500 http://dl.google.com/linux/chrome/deb/ stable/main amd64 Packages
     release v=1.0,o=Google, Inc.,a=stable,n=stable,l=Google,c=main
     origin dl.google.com

Тем путем пользователь может изменить конфигурацию, если они должны и решают расписание для unattended-upgrades.

1
ответ дан 29 September 2019 в 13:39

Другие вопросы по тегам:

Похожие вопросы: