我有一个应用程序,.deb
其中包含一个安装包。如果用户在线,则一切正常。但是,我需要支持在离线我只能从 CD-ROM 中下载并安装到计算机上,并且我只能假设已安装默认应用程序,即我不能告诉他们,“首先下载 XYZ,然后它才能工作。”我的 CD-ROM 必须是自包含的。(用户几乎没有或根本没有互联网连接……想想“巴布亚新几内亚的丛林”。)假设操作系统已稳定安装,则 CD-ROM 包含所有必要的依赖包。
这是针对 11.10 的。(希望在 12.04 中不会再次发生改变。)
我努力了:
- Ubuntu 软件中心- 如果您处于离线状态,“安装”按钮将被禁用。即使您将 CD 添加为软件源,情况也是如此。
- 使用 dpkg 目录- 这并不能解决依赖关系。我永远无法向我们的用户解释如何在命令行中手动解决依赖关系。
一些有用的工具(keryx、gdebi、aptoncd、synaptic)没有包含在 11.10 的默认安装中。
有什么方法aptitude
可以在离线时获取并解析 CD-ROM 中的软件包吗?
基本上,如果一个用户在偏僻的地方从普通的桌面 CD 安装 Ubuntu,那么他应该能够从另一张 CD 安装我的应用程序。那张 CD 上需要有什么才能实现这一点?
答案1
您必须使用 dpkg 安装 .deb 和依赖项。只要您拥有所有依赖项,您就应该能够使用 dpkg 安装它们。
如果您遇到问题,请将您收到的命令和输出粘贴到 pastebin 中。
更自动化的方法是使用 Aptoncd
答案2
在一台可以上网的新电脑上,用 Synaptic 包管理器创建一个脚本,下载 .deb 文件并把它们刻录到 CD 上。
在其他计算机上,将所有 .deb 文件放在一个文件夹中,然后
sudo dpkg -i *.deb
将工作。
答案3
好吧,考虑到你想让这一切变得非常简单,不需要额外的下载,不需要额外的应用程序,你只剩下一个选择(而且它不是那坏的):
- 将所有 deb 及其依赖项放入 CD 中
将其插入目标计算机,使用 cd 插入并运行:
sudo dpkg -i *.deb
是的,没有选择,没有聪明才智,但如果你想以最少的麻烦来部署某些东西,一切都相当简单。
或者你整理你的包然后玩弄dpkg-scanpackages
(AFAICS 的默认应用程序)创建索引文件。
答案4
如果它是一个 .deb 文件,你可以使用此命令安装它
sudo dpkg -i filename.deb
如果您所有必需的依赖项都已存在,则将所有那些 .deb 文件放在 /var/cache/apt/archives 中,然后使用 aptitude 安装它们。
一切顺利。
有关详细信息,请参阅 https://help.ubuntu.com/community/InstallingSoftware