为 Linux 应用程序创建安装程序 [关闭]

2024-01-03

我正在开发一个小型跨平台应用程序,我需要一些有关如何在 Linux 中安装它的建议。我在 Windows 中使用 InnoSetup,在 OSX 中使用应用程序包,但我不知道如何在 Linux 中安装我的应用程序,是否有适用于 Linux 的开源安装程序创建器?

Thanks.


The standard*nix 系统(不仅如此)上所有强大的通用安装程序都是自动工具 http://en.wikipedia.org/wiki/GNU_build_system.

# the user will install like so:
./configure --with-stuff
make # if package is from source
make install

您还可以提供特定于发行版的安装程序,例如RPM http://en.wikipedia.org/wiki/RPM_Package_Manager在 RedHat 或 CentOS 上或deb http://en.wikipedia.org/wiki/Deb_%28file_format%29对于 Debian、Ubuntu,尽管一旦你有了 Autotools 生成的 Makefile,制作这些文件就变得轻而易举了。

# the user will install like so:
yum install your-package-1.0.rpm # on redhat or
apt-get install your-package-1.0.deb # on debian

Autotools 也被称为“GNU 构建系统”,乍一看有点吓人,而新用户在遇到像古老的 m4 宏系统等这样的东西时会感到困惑。但诺塔贝内这是大多数人的做法,一旦掌握了窍门,就会很容易。

学习资源 http://www.lrde.epita.fr/~adl/autotools.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为 Linux 应用程序创建安装程序 [关闭] 的相关文章

  • 为什么 Linux 没有 DirectX API?

    在考虑现代显卡的 Windows 系统上 DirectX API 的驱动程序端实现时 我想知道为什么此实现在非 Windows 系统 尤其是 Linux 上不可用 由于明显缺乏此功能 我只能假设有一个我无视的充分理由 但在我的原始理解中 我
  • linux下无法创建僵尸进程

    嗯 我有一个奇怪的问题 我无法在我的项目中创建僵尸进程 但我可以在其他文件中创建僵尸进程 有简单的说明 int main if fork 0 printf Some instructions n else sleep 10 wait 0 r
  • 哈德逊依赖项

    我已经设置了我的 hudson 工作 A 工作 A 取决于工作 B 和 C 我已经将它们设置为 构建其他项目 尽管每个作业都位于我的工作区中的单独目录中 默认结构 但效果很好 但我需要作业 A 工作区 根文件夹 中的作业 B 和 C 我考虑
  • 通过 Visual Studio 2017 使用远程调试时 Linux 控制台输出在哪里?

    我的Visual Studio 2017 VS2017 成功连接Linux系统 代码如下 include
  • 在 Linux 上以编程方式设置 DNS 名称服务器

    我希望能够通过我的 C C 程序为 Linux 上的 DNS 名称服务器添加 IP 地址 我在一个带有只读 etc resolv conf 的嵌入式平台上 这意味着我不能简单地将 nameserver xxx xxx xxx xxx 行添加
  • Tensorflow 导入错误:没有名为“tensorflow”的模块

    我在 Windows Python 3 5 Anaconda 环境中安装了 TensorFlow 验证成功 有警告 tensorflow C gt python Python 3 5 3 英特尔公司 默认 2017 年 4 月 27 日 1
  • GMail 421 4.7.0 稍后重试,关闭连接

    我试图找出为什么它无法使用 GMail 从我的服务器发送邮件 为此 我使用 SwiftMailer 但我可以将问题包含在以下独立代码中
  • Mac OS X - 使钥匙串证书可供 Atlassian Bamboo 使用

    我有一个构建包的 Bamboo 计划 我想用我的开发者证书签署该包 在我的构建脚本中 我有这个 productsign sign Name of my certificate input pkg output pkg 从命令行运行此脚本可以
  • 并行运行 shell 脚本

    我有一个 shell 脚本 打乱大型文本文件 600 万行和 6 列 根据第一列对文件进行排序 输出 1000 个文件 所以伪代码看起来像这样 file1 sh bin bash for i in seq 1 1000 do Generat
  • 使用 shell 脚本将行附加到 /etc/hosts 文件

    我有一个新的 Ubuntu 12 04 VPS 我正在尝试编写一个安装脚本来完成整个 LAMP 安装 我遇到问题的地方是在 etc hosts文件 我当前的主机文件如下所示 127 0 0 1 localhost Venus The fol
  • .net-core:ILDASM / ILASM 的等效项

    net core 是否有相当于 ILDASM ILASM 的功能 具体来说 我正在寻找在 Linux 上运行的东西 因此为什么是 net core ildasm 和 ilasm 工具都是使用此存储库中的 CoreCLR 构建的 https
  • 与 pthread 的进程间互斥

    我想使用一个互斥体 它将用于同步对两个不同进程共享的内存中驻留的某些变量的访问 我怎样才能做到这一点 执行该操作的代码示例将非常感激 以下示例演示了 Pthread 进程间互斥体的创建 使用和销毁 将示例推广到多个进程作为读者的练习 inc
  • 通过命令行安装“Compass”收到错误“extconf 失败,退出代码 1”

    找不到这个问题的答案 运行 OS X Yosemite Beta v2 遵循指南针安装指南时 请确保您的 gem 是最新的 gem update system Then run gem install compass 假设您的安装因与我相同
  • Mac OS X 上的 /proc/self/cmdline / GetCommandLine 等效项是什么?

    如何在不使用 argc argv 的情况下访问 Mac OS X 上的命令行 在 Linux 上 我会简单地阅读 proc self cmdline or use GetCommandLine在 Windows 上 但我找不到 Mac OS
  • 如何使用Android获取Linux内核的版本?

    如何在 Android 应用程序中获取 Linux 内核的版本 不是 100 确定 但我认为调用 uname r 需要 root 访问权限 无论如何 有一种不太肮脏的方法可以做到这一点 那就是 System getProperty os v
  • Apache 访问 Linux 中的 NTFS 链接文件夹

    在 Debian jessie 中使用 Apache2 PHP 当我想在 Apache 的文档文件夹 var www 中创建一个新的小节时 我只需创建一个指向我的 php 文件所在的外部文件夹的链接 然后只需更改该文件夹的所有者和权限文件夹
  • MAMP Pro 3“安装失败。”

    我刚刚购买了 MAMP Pro 3 的升级版 下载了文件 MAMP MAMP PRO 3 0 5 pkg 并继续安装 不幸的是 经过三次尝试 我无法完成安装 文件被写入 最后我收到一条错误消息 安装失败 安装程序遇到错误 导致安装失败 请联
  • 为什么同一个curl命令在windows和linux下输出不同的东西?

    为什么同样的curl o file https www link com 命令输出不同的东西 例如 如果我运行命令curl o source txt https www youtube com playlist list PLIx6Fwnp
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • ansible unarchive 模块如何查找 tar 二进制文件?

    我正在尝试执行一个 ansible 剧本 该剧本的任务是利用unarchive模块 因为我是在 OSX 上执行此操作 所以我需要使用它gnu tar 而不是bsd tar通常与 OSX 一起提供 因为BSD tar 不受官方支持 https

随机推荐

  • 流式 pyspark 应用程序中的连接池

    在流式 pyspark 应用程序中使用连接池的正确方法是什么 我通读了https forums databricks com questions 3057 how to reuse database session object creat
  • Python中OpenCV的grabcut()背景颜色和轮廓

    我正在使用 Python 和 OpenCV 我现在正在使用grabcut 裁剪出我想要的对象 这是我的代码 img cv2 imread test jpg img cv2 cvtColor img cv2 COLOR BGR2RGB mas
  • Hmisc 之后加载 tidyverse 时评估错误

    我正在使用 r 3 3 3 dplyr 0 7 4 和 Hmisc 4 1 1 我注意到加载包的顺序会影响 dplyr summaries 函数是否工作 我知道以不同的顺序加载包会屏蔽某些函数 但我使用 package function 语
  • 检测数据网格视图中哪一列显示编辑控件

    我有一个 DataGridView 负责显示一些数据 我的两列允许用户使用组合框输入 问题在于 一列只需要在其列表中显示预设值 但另一列需要显示预设并允许用户输入自己的值 我通过使用以下代码显示组合框的编辑控件来实现此目的 Private
  • XCode 自动停用断点

    我在 C 中使用 xcode 我正在尝试调试我的项目 但在随机的时间间隔 它似乎忽略了我的断点 它做了三件事 1 有时 当我运行时 它会自动切换到 停用断点 模式 相关按钮亮起并显示 激活 2 有时 当我运行时 所有断点都会进入 找不到 模
  • C# 如何计算包含赋值的表达式?

    我有 C C 背景 我遇到了一种在 C 中交换两个值的奇怪方法 int n1 10 n2 20 n2 n1 n1 n2 0 在 C 中 上面两行在之间交换值n1 and n2 这对我来说是一个惊喜 因为在 C C 中 结果应该是n1 n2
  • C++ char*[] 到 char** 转换

    我有这个简单的代码 编译时没有错误 警告 void f int char int main int argc char argv f argc argv return 0 接下来是无法编译的类似代码 void f int char int
  • 如何在弹性搜索中强制执行必填字段?

    我正在后端使用弹性搜索构建一个CMS 我的团队决定使用弹性搜索 我对此很陌生 我主要使用以前项目中的 mongoose 和 mongodb 在 mongodb 中 如果我错误地分配了一个字段或完全跳过了必填字段 mongodb 会抛出错误
  • 为什么IEEE754单精度浮点数只有7位精度?

    为什么单精度浮点数具有 7 位精度 或双倍 15 16 位精度 谁能解释一下我们如何根据分配给 float Sign 32 Exponent 30 23 Fraction 22 0 的 32 位得出这一点 尾数的 23 个小数位 22 0
  • word插件中弹出对话框

    我正在使用 C 创建一个 MS Office Word 插件 我有一条带有几个按钮的丝带 单击其中一个按钮时 我需要一个带有几个文本框的弹出窗口 问题 如何在word插件中创建弹出对话框 将新表单添加到您的加载项项目并根据需要进行设计 在按
  • mysql - 今天位于两个列值之间

    id first datetime last datetime 1 2013 04 15 00 00 00 2013 04 21 23 59 00 2 2013 04 08 00 00 00 2013 04 14 23 59 00 3 20
  • IIS URL 重写 {R:N} 说明

    我一直无法理解 R N 的目的 谁能澄清一下何时使用 R 0 vs R 1 用法示例
  • 如何减少 Blazor WebAssembly 的加载时间

    我正在开发 Blazor WebAssembly 应用程序 加载时间超过30s 这是正常的吗 我的临时链接 http chhinsras 001 site1 itemurl com http chhinsras 001 site1 item
  • Python/Selenium/Chrome 不同错误的冲突解决方案

    一周左右的时间里 我遇到了一系列令人讨厌的 Selenium Chrome 错误 一段时间内一切正常 但突然间就不行了 我有适合我的 Google Chrome 版本 89 0 4389 114 的 Chromedriver 版本 89 0
  • 复制省略可以在synchronize-with 语句之间发生吗?

    在下面的示例中 如果我们暂时忽略互斥锁 复制省略可能会消除对复制构造函数的两次调用 user type foo unique lock lock global mutex return user type user type result
  • 将锚点向右对齐

    考虑以下 a a a a b a 如何将第二个锚点 b 向右对齐 PS 在这种情况下浮动是一种滥用 它不是为此而设计的 它会导致一些问题 所以我需要其他更合理的解决方案 只需这样做 style float right Like div a
  • IpOverUsbSvc 错误 Windows Phone 开发人员注册 [重复]

    这个问题在这里已经有答案了 当我尝试注册我的 Windows Phone 设备时Windows Phone 开发者注册 I get 无法连接到手机 该消息还指出 对于 Windows Phone 8 手机 请确保 Windows 手机 IP
  • Python-Flask 不接受自定义字体

    文件夹蓝图 模板 文件 html Static Fonts Style 在CSS文件中 我尝试过 font face font family
  • 获取上季度的结束日期

    对于给定日期 如何获取上季度的结束日期 我需要运行一项工作 其中考虑到了这一点 编辑 第一季度是一月 二月 三月 2号是四月 五月 六月等 任何帮助表示赞赏 谢谢 基本上 找出当前季度是哪个 返回上一季度的最后日期 3月31日 6月30日
  • 为 Linux 应用程序创建安装程序 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一个小型跨平台应用程序 我需要一些有关如何在 Linux 中安装它的建议 我在 Window