问题标签 [software-packaging]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何使用 rc.d 脚本从 python 应用程序构建 FreeBSD pkg?
我有一个 python 应用程序,它setup.py
可以通过setuptools安装它。然后我使用出色的 Effing包管理将它打包到 DEB 和 PKGNG 中。我还使用setuptools-pkg进行了一些快速测试,这似乎也有效。
现在我需要分发包含初始化脚本的包来启动/停止/管理服务。我在源代码库中有我的初始化脚本,根据似乎是最佳实践,我没有在 setuptools 中对它们做任何事情,而是在特定于操作系统的包装中处理它们:对于我使用的基于 debian 的系统和FPM选项(根据需要)--deb-init
。--deb-upstart
--deb-systemd
如何rc.d
使用 FPM 或通过任何其他方式构建包含正确脚本的 FreeBSD 软件包?
我见过的所有示例都是在通过端口集合rc.d
构建包时添加脚本,但这是一个内部应用程序,不会发布到端口或 PyPi 上。我希望能够检查 FreeBSD 系统上的存储库,启动一个给我一个包的命令,将它分发到其他 FreeBSD 系统,使用安装它并将我的 init 脚本正确部署到. 没有必要为此继续使用 FPM,只要它给我一个格式良好的包,任何东西都可以。pkg
/usr/local/etc/rc.d/<myappname>
python - Distribute Django App in portable file (windows .exe file for example)
I have a Django App and I would like to distribute my App for Windows, Mac and Linux users.
I have read that Pyinstaller can help me to package my App but I dont know how to create portable App which starts local server on local user `s desktop.
Can someone help me?
Thanks!
linux - 如何为依赖不支持版本的官方包的项目创建deb二进制包
我想为应用程序创建一个 deb 包,以便可以在 Debian 和 Ubuntu 系统上方便地安装和更新它。但是,该应用程序依赖于一些公共库的较新版本,尽管这些库本身由 Debian 和 Ubuntu 打包,但我的应用程序所依赖的特定版本尚未得到任何发行版的正式支持,也不能作为 deb 包提供。它们仅作为源包提供,我必须自己构建才能让我的应用程序链接到它们。
此外,deb 包计划仅在内部分发,并且没有向公众发布 deb 的计划或期望。如果要遵守发行版的包装指南并支持官方软件包,则将是一项要求。
IIRC 与 Windows 操作系统系列通过将依赖项与应用程序一起发送并将它们存储在存储应用程序可执行文件的同一文件夹中来缓解此问题。但是,我不知道应该如何在一般的 linux 中处理这个问题,特别是在 Debian 和 Ubuntu 中。
有谁知道创建 deb 包的最佳策略是什么,该包还捆绑了 Debian 和 Ubuntu 中预装的较新版本的库?
deb - makefile 到 debian 包中,递归复制文件和目录
我意识到debian/rules
使用命令无法将文件复制到 debian 包的目录结构中cp
,但是使用install
yes。所以我理解或解释说,在任何过程中安装它们之前,只有install
命令被命令解释为dpkg-buildpackage -us -uc -ui -i
将文件临时复制到 .deb 文件中。dpkg -i
问题是,当我想复制许多文件和整个目录结构时,我无法使用诸如find
command for ex 之类的技巧在网络上的各个地方提到它。
所以我现在遇到的问题是如何从 Makefile 中指定我希望将其转换为真实世界的 debian 包??!!!
两者都被误解了dpkg-buildpackage
cmake - 为什么 foo-config.cmake 和 foo-config-version.cmake 应该分开?
在 Daniel Pfeiffer ( Effective CMake ) 和 Deniz Bahadir ( More Modern CMake ) 的会谈中,甚至在CMake 文档中,建议(至少).cmake
生成文件以在其他项目中使用带有 CMake 的存储库:foo-config.cmake
和foo-config-version.cmake
(对于包foo
;另一种可能的命名方案是FooConfig.cmake
和FooConfigVersion.cmake
)。
这对我来说已经很奇怪了。为什么不应该foo-config.cmake
有关于已安装版本的信息/命令?这两个单独的文件存在是否有一些客观原因,或者它只是 CMake 设计的“失态”?
编辑:剪掉了这个问题的其余部分,为了集中注意力,因为我出了点问题。
windows-installer - setup.exe 安装程序使用 setup.exe 的答案文件捕获到 msi
完全是 msi 包装的新手,只是玩了一点 orca 和一些重新包装器进行测试,这样就可以了。
我有一个安装程序,我将它捕获到一个 msi 包中。
然而,我想在 msi 内部或作为 msi 的外部参数提供设置的答案文件/参数,以便 msi 将这些传递给 setup.exe。
我不知道什么是最好的方法,甚至不知道如何实现,所以我正在征求意见。也许你可以指出我正确的方向。
先感谢您。
debian - debuild - 依赖集但没有版本
可以说我有以下包:zs-boost_1.71.0_armhf.deb
. 这是将 boost 1.71 安装到某个自定义位置(假设/opt/deps
)的自定义包。
我也有使用这个库的项目。它构建并运行良好。现在我正在包装它。我在debian/control
文件中有以下内容:
我使用以下方法构建包:debuild -b -us -uc -aarmhf
. 可以构建包并按预期工作。我唯一的问题是它Depends
在debcontrol
文件中的条目如下:
请注意,zs-boost 没有版本。我该如何解决?是安装到自定义目录引起的吗?我假设如果包被正确识别,那么它的版本也应该被使用?
debian/package.substvars
包含以下行shlibs
:
我应该怎么做才能正确地对依赖项进行版本控制?请注意,我对手动提供版本号不感兴趣,这只是一个包,我们有 20 多个包,它们会不断更新和重建,手动完成是不可能的。
提前致谢。
amazon-web-services - 从 JAR 为 AWS Lambda 运行二进制可执行文件
我需要wdiff
从 JAR 文件运行。在本地,我通过调用一个进程来执行此操作,该进程运行wdiff
手动安装在 Linux 服务器上或wdiff.exe
位于 Windows 上方便的附近文件夹中的二进制文件。
现在,我需要部署到 AWS Lambda,并且不能依赖wdiff
(或其依赖项diff
)来安装。那么我怎样才能wdiff
在 Lambda 上运行呢?
我想这里有两个可能的问题/解决方案:
- 是否可以在 AWS Lambda 容器中包含第三方二进制文件?
- 是否可以在 JAR 文件中捆绑可执行二进制文件并从代码中执行它?
linux - 打包软件时临时保存文件的最佳位置
我正在寻找在生成 AppImage 或打包软件时临时存储文件和/或目录时的最佳实践。我正在寻找不受用户权限限制但不明显可见的位置。我目前已经创建了一个 AppImage,它为一组可以轻松分发的特定应用程序生成其他 AppImage。到目前为止,我一直将 AppDir 存储在桌面上,以便我可以轻松检查目录并解决错误。它目前按预期工作,我想将此位置重新定位到用户看不到的地方。让这个临时目录出现在桌面上只是在不久之后被删除似乎是一种不好的做法。我只是希望整个过程尽可能干净。
python - 在一个大应用程序中捆绑多个独立但相关的 Python 工具
我一直在寻找实现这一目标的方法,但找不到。
我有多个 python 脚本,其中一些是预处理实用工具,一些执行数据分析,一些创建可视化。它们都是相关的,但可能依赖也可能不依赖,并且可能具有单独的输入参数。我正在尝试在一个包中创建一套工具,并希望用户根据需要选择和运行工具/模块。
例如:这是一个名为 GATK 的基于 java 的软件。“gatk”是一个包含多个工具的 .jar,其中一个是“AnnotateIntervals”,它有一组输入要求。用户这样运行
gatk AnnotateIntervals \
-R reference.fa \
-L intervals.interval_list \
--interval-merging-rule OVERLAPPING_ONLY \
-O annotated_intervals.tsv
https://gatk.broadinstitute.org/hc/en-us/articles/360040098252-AnnotateIntervals
我想在python中开发完全一样的东西,
main_app.py first_module -l <> -m <>
这甚至可能吗?如果是这样,我怎么能做到这一点?