【问题标题】:Creating a 'graphical' command line install for a Linux based OS package为基于 Linux 的操作系统包创建“图形”命令行安装
【发布时间】:2016-05-31 02:57:46
【问题描述】:

虽然我对使用 Linux 比较陌生,但我想了解更多关于部署包的工作原理。我试过搜索这个,但没有运气。我见过无数的包和安装脚本,它们使用相同的“图形”命令行安装,供用户选择包的选项。以 Debian 网络安装为例。 [1]

由于我有很多东西要学,我只想总结一下这是如何实现的,以及任何人都拥有的关于开发人员如何做到这一点的任何资源。

提前致谢。

[1]http://doudoulinux.org/blog/public/screenshots/install/install-selected-tasks.png

【问题讨论】:

  • 一个合适的 linux 发行版包应该可以从包管理器中获得。将包放入包管理器通常并非易事,它涉及将您的包放入项目团队的一些审查队列中。更多情况下,您可以将非存储库包分发为.deb.rpm(有很多关于如何创建这些的文档)。就个人而言,我认为arch linux's AUR 是最简单的创建包。此外,图形安装程序,甚至是基于终端的安装程序,在 Linux 发行版中也不受欢迎。
  • 感谢您阐明软件包是如何向公众提供的,但我认为您的最后陈述是错误的,因为许多发行版确实使用图形安装程序。我知道像 gentoo 和 Arch 这样的发行版因为他们的目标受众而没有图形安装程序,但即便如此,人们仍然为他们开发安装程序以使事情变得更容易。我只是在问如何制作它们,因为似乎所有命令行图形安装程序都使用相同的基础。
  • 为我的混乱短语道歉。我的意思是包本身永远不会包含任何图形安装。至于安装人员本身,他们只是互相调用。以debian为例,它使用dpkg,但大多数人使用apt-get,它在后台调用dpkg。有一个“诅咒图形”aptitude(可能是有史以来第一个图形包管理器),它只调用apt-get。还有完全图形化的synaptic,它也在幕后调用apt-get。换句话说,当构建一个包时,只关心dpkg/apt-get info。
  • 嗯,好的,谢谢你的澄清。但是我仍然对我可以使用我想要的包的安装程序屏幕感到困惑,doudoulinux.org/blog/public/screenshots/install/… 这张图片显示了我想了解如何使用的格式。对不起,如果我是愚蠢的。

标签: linux command-line debian package


【解决方案1】:

好的,现在,我相信,我明白你在追求什么。我仍然坚持认为包的交互配置是发行版特有的,不应成为包配置的主要形式。

最好以默认工作配置发布,然后记录用户如何更改配置文件(通常在/etc)以重新配置包。提供几个默认配置通常很有用(示例包:wpa_supplicant 附带几个网络配置示例,默认情况下全部禁用)并允许用户通过取消注释行进行选择。


Debian

debian 配置包的具体方法是debconf,它的配置是一个简单的shell 脚本(或perl 脚本,或任何其他可以讨论STDIN/STDOUT 的脚本)和一个模板文件.模板文件将在aptitude/apt-get 界面中提供选项,如您问题中的屏幕截图所示。

值得阅读debian guidelines on package configuration 了解哪种配置过多。

他们还有一个thorough tutorial。既然你说你没有打包经验,我也推荐阅读the introduction to packaging,它会告诉你文件应该放在哪里。此外,dbhelper 是一个很好的工具,可以将文件放置在包目录中的正确位置。


在其他发行版上

每个发行版都有自己的向软件包添加配置的方式。 Debian 以其debconf 着称,因为它是用于配置软件包的功能最丰富的工具之一(与dpkg-reconfigure 一起)。

发行版软件包中的软件开发人员通常与打包人员不同。开发人员留下的配置选项通常比包中的更彻底(例如,包含或排除某些库)。

您最熟悉debian 发行版(这是基于您的问题标签的假设)这一事实可能会让您对包配置产生误导性的想法。只有基于 debian 的发行版有这么多可配置的软件包,其他发行版经常使用软件包依赖项来安装不同配置的软件包。例如:

  • 基于 RedHat 的发行版(.rpm 软件包)没有诸如 debconf 之类的工具(据我所知),它们使用不同的(冲突的)软件包名称来安装不同配置的软件包。
  • 基于 Arch Linux 的发行版强制执行用户配置。从本质上讲,arch 强制用户通过进入他们的配置文件并更改配置来配置他们的包(如果你想学习,这是一件非常好的事情)。

有趣的是,基于 RPM 和 Arch 的发行版都经常发布 po-debconf,这是该发行版的改编版 debconf。然而,我不能说太多,因为我从未尝试过。

【讨论】:

  • 谢谢,这回答了我的问题。在我有包装经验之前,我似乎不应该问这种问题。
  • 真的,包装经验就是尝试去做。如果您按照教程并花两天时间将您自己的软件打包成发行版包,那么您将获得足够的经验。制作包并不难,一路上有工具可以帮助您。将包包含到官方存储库中是另一回事,但几乎没有必要这样做。
猜你喜欢
  • 2019-10-27
  • 1970-01-01
  • 2021-12-06
  • 2017-01-19
  • 2019-08-05
  • 2020-01-15
  • 2011-06-17
  • 2017-08-14
  • 2014-03-03
相关资源
最近更新 更多