我正在开发一些 Linux 应用程序。现在是开始考虑部署的正确时机。所以我的问题是:
如何创建一个文件安装程序,例如有时可以在互联网上找到的 *.run 或 *.sh 文件(例如 nVidia 驱动程序或 Wolfram Mathematica CDF)。
与一位同事在工作中进行讨论,他声称 *nix 环境的图形安装程序仅在最近几年才可用,但我找不到关于该主题的任何可靠信息,所以我想我会问。
参考文献将不胜感激,但对任何使用 Linux 多年的人来说,从记忆中回忆都可以。
更新:抱歉,不是 Linux 的安装程序,而是 Linux 内部应用程序的安装程序。
现在可安装的大多数 Linux 发行版都以符合 El Torito 标准并包含引导加载程序的单个 ISO 文件的形式分发,以便可以使用ddCD 和 USB 记忆棒将ISO 映像复制到 BIOS 中/EFI。但是,有一些系统,例如树莓派的 NOOBS 和其他主要用于嵌入式设备的系统,它们不是作为 ISO 文件分发,而是作为一组文件,可以立即使用普通cp命令直接复制到 SD 卡等外部存储设备. 例如,以下文件分布在 NOOBS 中:
BUILD-DATA
INSTRUCTIONS-README.txt
RECOVERY_FILES_DO_NOT_EDIT
bootcode.bin
defaults
os
recovery.cmdline
recovery.elf
recovery.img
recovery.rfs
recovery7.img
riscos-boot.bin
Run Code Online (Sandbox Code Playgroud)
对于最终用户来说,这看起来是一种更方便的方式,因为它不需要使用 ,dd因此不会导致擦除外部存储上的所有数据。为什么不是所有的 Linux 发行版都这样分发而不是 ISO 文件?可以存档一组文件,因此分发单个文件与多个文件不是问题。
我有以下 ubuntu 安装脚本:
#!/bin/bash
sudo apt update
sudo apt full-upgrade -y
sudo apt install jq
sudo apt autoclean -y
sudo apt autoremove
Run Code Online (Sandbox Code Playgroud)
以下是否可以在 fedora、red hat、mageia 或其他基于 rpm 的发行版下工作
...或者语法是否必须更改更多?
#!/bin/bash
sudo rpm update
sudo rpm full-upgrade -y
sudo rpm install jq
sudo rpm autoclean -y
sudo rpm autoremove
Run Code Online (Sandbox Code Playgroud)
我也可以做些什么来达到以下效果吗?:
#!/bin/bash
if [ $(command -v yum) ]
then
sudo yum update
sudo yum full-upgrade -y
sudo yum install jq
sudo yum autoclean -y
sudo yum autoremove
else
sudo rpm update
sudo …Run Code Online (Sandbox Code Playgroud) 对于特定版本和风格的 Ubuntu,存储库的不同分支之间有什么区别?比如main/universe/restricted等等?
我制作了一个 deb 包,其中包含我的软件的二进制文件。此外,我制作了一个 repo 并对其进行了配置,以便用户可以使用sudo apt-get update mypackage && sudo apt-get install mypackage. 安装后,我的应用程序的二进制文件将被解压缩到/opt/mypackage.desktop 文件中,/usr/share/applications以便用户可以毫无问题地启动应用程序。
我想知道的是,当我的应用程序在用户系统中可用时,如何从代码安装我的应用程序更新,就像在其他应用程序中一样?我问是因为它在运行apt-get install或sudo gdebi mypackage.
在我想要推送新更新的那一刻 - 我构建了新的 .deb 包并将其放入存储库。我应该以其他方式做吗?或者也许我决定将二进制文件放在 /opt 目录中是错误的?
任何帮助将不胜感激。如果你知道一些开源项目实现了这部分功能,可以分享一下吗?此外,我可以创建一个简单的存储库来重现我在此处尝试解释的内容。
repository ×2
apt ×1
cinnamon ×1
deb ×1
history ×1
iso ×1
licenses ×1
linux ×1
linux-mint ×1
rpm ×1
shell-script ×1
ubuntu ×1
yum ×1