我最近开始打包我的一些软件并在 Launchpad 上发布。安装和删除工作正常,但将包从一个版本升级到下一个版本是有问题的。
问题是有一些脚本只需要在第一次安装包时运行。这些脚本填充数据库、创建用户等。它们当前在 package.postinstconfigure)部分中调用。然而,这导致他们在升级过程中被称为以及所示的图。
有没有办法将维护者脚本包含在 .deb 包中,该脚本仅在第一次安装包而不是在升级期间执行?或者在 .deb 包中包含一些初始设置脚本的优雅方式是什么?
我最近开始在 Launchpad 上为我的软件构建 Ubuntu 软件包。它们非常简单;它们中的大多数只包含一些通过 .install .preinst .postinst .prerm 和 .postrm 文件触发的文件和脚本。安装和删除似乎工作正常。但是,从一个版本升级到下一个版本很棘手。
升级包时到底发生了什么?和卸载旧版本安装新版本一样吗?是否删除了先前软件包中的所有文件,并替换为新软件包中 .install 列表中的文件?是否所有 .prerm、postrm、preinst、postinst 脚本都被执行?我如何区分应该只在“新安装”和升级期间发生的事情?
如何更改 Ubuntu 在启动时连接的默认 wifi 网络?我的范围内有一个不安全的公共 wifi 网络,以及我想默认使用的我自己的家庭 WPA 安全 wifi。然而,在启动时 Ubuntu 总是连接到不安全的。有时我忘记重新连接到另一个,这是非常危险的。
我正在使用 Gnome 3 运行 Ubuntu Destkop 11.10 的默认设置。我查看了网络设置,但找不到“默认”选项。
我正在维护一个 debian 包,其中包含一些安装在/etc/. 有没有一种方法可以让我--purge在用户执行常规操作时以某种方式使包始终自动自动运行apt-get remove mypackage?
原因是我在 /etc 中有一些配置文件,当二进制文件被删除时,这些文件应该被删除,否则会导致奇怪的行为。但是我仍然想将它们视为 conf 文件,即确保 apt 不会在每次升级包时擦除它们。但是当卸载包时它们应该被删除。
目前我正在我的 postrm 脚本中手动删除 /etc conf 文件。但是我刚刚发现这有一个不幸的副作用:如果用户卸载然后重新安装软件包,则不会重新安装 conf 文件,因为 apt 认为它们仍然存在。那么有没有一种方法可以在我的 postrm 中手动触发一个完整的“清除”,这样 apt 就知道 conf 文件已经消失了?