问题标签 [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.
bash - 在 RPM 规范文件中使用脚本定义版本
我有一个 RPM Spec 文件,使用 rpmbuild 在 rhel7 上构建,我想在其中使用脚本定义版本。
我在这里读到http://www.techrepublic.com/article/rpmproc-spec-file/,我可以这样做:
这里是 RPM 规范文件 - 是否可以动态填充规范文件变量,我可以用脚本定义:
所以我试图在我的规范文件中这样做:
但我得到一个
到目前为止我测试过的东西:
这些工作得很好,所以我不知道是什么导致它失败。当我在规范文件的定义标签中调用相同的东西时,有什么想法可能导致它失败?
更新
我尝试用实际值替换文件名,所以它看起来像这样
这在终端中调用时有效,但作为
但我仍然得到
更新 2
然后我测试了一个不同的更复杂的命令echo "12"
:
这也可以!使版本成为提交哈希的前 7 个数字。
更新 3
谜团还在继续,我做了一个测试来检查它是否是 sed 命令导致的,但是下面的命令给了我 1.2 作为版本
如果这个命令有效但不是我的第一个命令,那么它必须与我的第一个命令中的某些内容有关,该命令仅在终端中直接调用时才有效,而不是在 %(cmd) 中。越来越近!
更新 4
好的,所以我似乎已经隔离了它必须是什么,好奇,看起来它可能是rpmbuild 不喜欢-n
的语法。s| | \1 |p
我制作了一个更简单的原始版本。一探究竟:
不幸的是,尽管我认为我无法再隔离并找出问题所在。以第二个命令的样式使用 sed 没有任何问题,但对于为什么第一个命令不起作用仍然非常有趣。
更新 5
我发现在 %() 中使用规范文件和 rpmbuild 处理任何脚本时,这里存在一些深层问题。我尝试使用 awk 只是为了看看会发生什么,它也坏了!这比我最初想象的要深入得多,就像发现一个阴谋:
更新 6
对每个人来说都是好消息和坏消息,我发现 rpm 似乎在后台做了一些自己的工作,并没有显示它在做什么,我终于找到了一个通过 rpm 调用时给出不同值的命令:
所以现在我做了一个调整并称之为:
所以从这个角度来看,我认为可能有一种类似的幕后解析我的第一个 sed 命令从 rpm 的结果。我们将有自己的方式 rpm!
最终更新
使用 rpm 进行了休战,我将使用以下命令:
它与我的第一个命令执行相同的操作,并在 specfile 中正确设置版本号。如果有人对为什么第一个命令不会运行有任何猜测,我会很高兴阅读它。和平!
python - 打包和部署一个独立的 Python 应用程序
我有一堆想要部署到其他机器的 Python 脚本。问题是,我希望所有东西都是独立的,而不是依赖于其他机器的库。例如,我不想要求用户安装虚拟环境和 pip 以使我的应用程序正常工作。
在我的本地机器上,我使用虚拟环境--no-site-packages
来pip install -r requirements.txt
完成一切。坏消息是virtualenvironment
's 的activate
脚本将我的本地路径硬编码到其中,使用该--relocatable
选项对这种情况没有帮助,所以我想这是不可能virtualenvironment
的?
我想要的是与此类似的东西:
这样我就可以指示最终用户 cd intobase_app_dir
并执行 a./bin/python -m my_init_script.py
但这意味着我现在需要指示 Python./lib
在导入包时查看我的文件夹。
我已经尝试过设置os.path.insert(1, 'base_app_dir/lib/site-packages')
,但是这个工作基于每个模块。
另外如何查找默认的 Python 模块?现在,例如,当import hashlib
它试图从/usr/lib/python2.7/hashlib.py
. 我也想部署这些默认的 Python 模块,并指示应用程序从我的自定义位置导入它们。
Py2exe
或创建.deb
文件现在不是一个选项,所以请尝试解决我的具体问题。
python - 如何在我的系统上安装第二个/第三个/python?
如何安装(在 Linux 上)一个普通的 Python 发行版到例如/opt/myPythonProject/python
?当我之后安装包(例如pip
)时,所有包都应该进入/opt/myPythonProject
. 它应该简单地忽略系统 python 及其包。
我的最终目标是将我自己的代码放入/opt/myPythonProject/mycode
,然后压缩整个项目根目录,将其部署到客户机器上。这在一般情况下是否有效(假设我自己的架构/操作系统/等是相同的)。
所以更大的问题是:我可以在 1 个大 zip 中交付 python/包/我自己的代码吗?如果是,我需要考虑什么?
如果不是:将 Python 应用程序与运行时/包一起分发并将其部署为应用程序用户(非 root)的最简单解决方案是什么。
postgresql - 在软件打包时删除 Postgresql 作为依赖项
我用Python编写了一个代码,我想把它变成一个 Ubuntu PPA,这样每个人都可以下载并使用它。
为了存储数据,我使用了postgresql而不是文件,因为它为我提供了表的结构。
现在如果我把我的代码变成一个包,我想我需要把 postgresql 作为一个依赖项(仍然不确定,但很可能)。如果是,我不想这样做,因为我的应用程序非常小,而且我不希望有人安装我的软件,安装他不使用的 postgresql。
所以我的问题是无论如何我可以避免将 postgresql 作为依赖项。可能是 Ubuntu 默认的任何其他数据库工具,或者将其存储在系统中并访问它。
欢迎所有意见。:)
感谢你。
java - 如何使用 maven 发布 .rar?
我有一个非常简单的项目,我想将其打包为 .rar。现在,我正在使用 maven-rar-plugin,它在本地工作得很好。当我打包时,我得到了我的 .rar,这就是我想要的。但是,我有这样的<distributionManagement>
部分:
然后当我运行时deploy -DperformRelease='true'
,我得到一个发布到我的关系的 .jar。然后,当我将此项目作为依赖项包含在另一个项目中时:
它进入 mynexus 并尝试下载它但找不到它。当我浏览 nexus 时,该项目在发布目录中,但它是一个 .jar 并且 maven 依赖项失败,说 .rar 不存在
selenium - 是否可以将 Selenium 测试用例打包成可运行的应用程序
我正在创建 selenium 测试来测试 Web 应用程序。我还希望能够使用这些测试用例作为非技术用户自动化流程前几个步骤的一种方式。~这可能吗?
macos - 如何从苹果 macOS 更新包中的“有效负载”文件中提取内容?
我正在提取 macOS sierra 更新包 -macOSUpd10.12.1.pkg
使用以下命令到 /tmp/macosupd 目录。
我可以看到以下包捆绑在元包中。
我无法提取有效负载文件的内容。例如,当我尝试提取 macOSUpd10.12.1.pkg 的有效负载时,我收到以下错误消息:
用焦油:
与 xar:
当我在有效负载文件上运行文件命令时,我收到如下消息:
通过使用命令查看有效负载文件的初始位xxd
,我可以看到文件类型看起来像pbzx
请提出一种如何提取Payload
文件内容的方法。我已经尝试了link1和link2中建议的所有方法,包括此外部链接中建议的方法 仍然没有成功。似乎小牛队之前的苹果更新是纯 xar 和 tar 包。在 Mavericks 及以上版本中,苹果将文件格式从 tar 更改为 pbzx(lzma)。
请建议一种简单的命令行方法来提取Payload
文件的内容,因为我必须在我的自动化设置中使用。
python - SSL:在 pypitest 中注册时出现 CERTIFICATE_VERIFY_FAILED
我在http://peterdowns.com/posts/first-time-with-pypi.html上按照 Peter Down 的指示将包推送到 PyPI
我在 PyPI Live 和 PyPI Test 上有一个帐户,我可以登录并通过电子邮件验证了这些帐户。
但是当我试图在我的仓库中运行它时:
我得到:
知道出了什么问题吗?我的~/.pypirc
文件也根据我的用户名和密码写入。
如何解决这个问题,以便我可以在 PyPI 上注册包?
python - 如何使用 pyinstaller 将包转换为 exe?
我有一个在 Python 2.7、Python3+ 上运行并且是跨平台的开源 Python 命令行程序。
我正在尝试更轻松地将其打包为我的 Windows 用户的可执行文件。这个包的源代码在 Github 上:https ://github.com/stormpath/stormpath-cli
我正在尝试使用pyinstaller打包我的 Python 程序,但遇到了问题。
我正在从 Windows 8 框中运行以下命令:
这成功地为我生成了一个 EXE 文件,但是当我运行它时,我收到以下错误:
出于测试目的,为了帮助缩小问题范围,我创建了一个test.py
包含以下代码的脚本:
然后也将其打包成一个exe:
当我运行这个生成的 exe 时,一切正常!Hello world 按预期输出。
我相信正在发生的事情是我没有告诉 pyinstaller 如何正确“检测”我的项目是 python 包,而不是单个文件脚本。
我已经阅读了很多文档,并在谷歌上搜索过,但还没有找到一种方法来指定一个包供 pyinstaller 分析。
我错过了什么?
python - 如何编辑车轮包(.whl)?
我有一个 python wheel 包,提取后我找到了一些 python 代码,我想编辑此代码并再次重新生成相同的 .whl 包并对其进行测试以查看编辑内容。我该怎么做?