AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 525992
Accepted
nick_at_MHT
nick_at_MHT
Asked: 2019-06-21 01:06:04 +0800 CST2019-06-21 01:06:04 +0800 CST 2019-06-21 01:06:04 +0800 CST

Debian:当每次安装/升级都必须询问来自 dpkg 安装的问题时,最佳实践是什么?

  • 772

我有一个用于 Django 系统的 .deb 安装程序,我需要向安装该软件的人询问一些问题。我可以看到一些方法来做到这一点,我想知道什么是 Debian 软件包的最佳实践。

现在通常,debconf 将是显而易见的解决方案。但是在这种情况下,我想每次都问这个问题,而不是让 Debian 记住它们并将它们应用于每次后续升级。其原因与问题的性质有关。具体来说,问题是“您现在要应用数据库迁移吗?” 和“你想建立一个演示数据库吗?”

现在,这些都可以在安装后手动完成,但到目前为止的经验表明,这一步很容易忘记,所以我想提示一下。我会自动执行迁移步骤,除了我们偶尔需要从其他机器迁移数据库,并且在应用迁移之前更容易完成。“演示数据库”问题通常仅在首次安装时使用,因此取决于迁移情况。但是,我们不希望 Debian 记住该选择并每次都应用它,因为它可能会损坏现有的、正在使用的数据库。

所以我想知道正统的 Debian 式方法可能是什么。我可以使用 postinst 脚本中的 shell 提示符,但如果有更好的方法,我会尽快这样做。我应该补充一点,我知道“再问一次”,但这似乎只能作为一个全局设置,我会尽快为这个包做这个。

最后一件事:这是一个内部系统,永远不会托管在公共存储库上,所以我不会过度担心无人值守安装或非 bash 安装环境等考虑因素。

这已经困扰了我几个星期了。感激地收到任何帮助。

debian debconf
  • 2 2 个回答
  • 376 Views

2 个回答

  • Voted
  1. Best Answer
    Stephen Kitt
    2019-06-21T01:17:31+08:002019-06-21T01:17:31+08:00

    有一种正统的方法可以解决您的问题,它应该允许您以“类似 Debian”的方式处理您的情况。

    您可以重置 debconf 问题,以便每次都再次显示它:用于db_reset忘记之前的答案(如果需要),并db_fset ... seen false忘记之前已经显示过该问题。这应该允许您询问是否每次都应用迁移。

    为了处理演示数据库问题,我将添加一个附加的隐藏设置,它会记住是否安装了演示数据库。这样,您可以使用通常的 debconf 机制来记住问题是否已被询问,以便仅在首次安装时显示;然后,可以查看demo数据库是否已经安装,避免安装两次。

    • 2
  2. Simon Richter
    2019-06-21T05:45:25+08:002019-06-21T05:45:25+08:00

    我会将演示数据库拆分为一个单独的包。这是新手用户玩的东西,但我想将此和任何支持代码保留在生产环境之外。被问到我是否想安装演示的东西,而我想做的只是更新,这真的很烦人。

    我将作为普通 DebConf 问题处理的更新问题,但反过来:一个低优先级(通常是隐藏的)、默认无问题,询问是否需要在数据库迁移时停止更新。这允许管理员配置一个完全自动化的过程,或者一个除了迁移之外的完全自动化的过程。

    大多数更新不需要迁移,因此打扰用户是没有意义的,并且为用户提供让旧系统运行并中止更新的选项为他们提供了一个安全的选择。

    • 1

相关问题

  • GRUB 配置以识别同一 Linux 发行版的不同桌面环境(安装)

  • astyle 不会更改源文件格式

  • 接收有关全新 Debian 的电子邮件

  • Debian Stretch:libgs_plugin_systemd-updates.so 中的 gnome-software 段错误

  • 如何在拼音输入法中输入ü?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve