Я создаю пакет Linux для приложения, которое я разработал. У меня есть он проверяющий на обновления, когда это запускается, и устанавливающие обновления через инициирование sudo apt-get install <package>
, который, конечно, предлагает пользователю разрешение.
Какова лучшая практика / соответствующий способ пойти о выполнении этого? Моя текущая методология распространена или идеальна? В противном случае, что я должен сделать?
Я не ищу кого-то, чтобы сделать работу для меня; я просто хочу быть указанным в правильном направлении так, чтобы мое приложение следовало за ожидаемым поведением. Благодарит тонну!
Необходимо обеспечить общедоступный репозиторий, как PPA, и полагаться на диспетчер пакетов для обнаружения об и обновления установки вместо того, чтобы делать это из программы:
apt-get
, необходимо работать apt-get update
сначала для загрузки обновленной информации о пакете. Это может занять некоторое время и вызвать большой сетевой трафик. apt-get
команда вообще. apt-get
вызовы могут быть заблокированы, потому что другой процесс получает доступ к диспетчеру пакетов, или он может заблокировать другие процессы от выполнения так. При использовании репозитория можно, вероятно, зависеть от 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
.