问题标签 [package-management]
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.
validation - 防止在团队环境中更新 NuGet 包
我们有一个包含许多项目的大型解决方案,并且有许多开发人员一起工作。
我们需要一种验证 Nuget 包版本的方法,以确保没有开发人员意外地通过包更新破坏构建。
理想情况下,如果它是已知的不兼容包,是否有办法在 Nuget 包安装期间验证和中断/停止?我们知道我们可以在构建时进行验证,但理想情况下,我希望能够真正停止/通知开发人员构建中不支持较新版本,以防止他们退出并使用较新的包进行构建,仅在构建时发现他们在可能有不同调用等的新包上浪费了时间。
如果这是不可能的,那么在构建时执行此操作的最简单方法是什么?我正在考虑一个预构建脚本,但对其他想法感兴趣。实际上,该脚本将查看其他项目包版本以比较并通知版本是否不正确(并在构建期间停止发布到共享位置)。
python - 更改 python pip 默认安装目录
我按照本指南更改了我的默认安装目录:
~/.pip/pip.conf:
这样pip
就不干扰了pacman
。但是,我需要能够分离 python2 和 python3。那么有没有办法pip2
指向~/.python-global/python2
和pip3
指向~/.python-global/python3
?
prolog - 将 aleph 与 SWI-prolog 一起使用:source_sink `library(aleph)' 不存在
我正在尝试使用 SWI-Prolog 导入 Aleph。当我运行我的程序时,我收到以下错误。我需要做什么才能导入library(aleph)
?顺便说一句,我已经aleph.pl
为我的程序下载了。这是我的测试程序,我知道库 aleph 一定有问题。
我得到了错误:
debian - 使用 apt_pkg 包(python-apt)以编程方式安装 debian 包
我已经构建了一些 debian 软件包并将它们放在我的主机上。我想在 python 脚本中安装这些包。因此,我使用 apt_pkg 编写了安装函数,如下所示:
如果我使用 apt-get install,安装包没有任何问题,但是使用这个脚本会出现以下错误:
res = self.pkg_manager.do_install(log_file.fileno()) apt_pkg.Error: E:Internal Error, Pathname to install is not absolute 'myPackage_1.0.0_all.deb'
我已将 .deb 文件和 Packages.gz 放在主机中名为“debian”的目录中,并将以下行添加到我的 sources.list :
我不知道我的脚本有什么问题?
nuget - 如何使用 NuGet 的内置 PackageManagement 提供程序进行 nuget 还原?
(我有一种强烈的感觉,这里有一些我不理解的基本内容,所以请多多包涵……)
我在一个包含一些包的网络共享上有一个本地 NuGet 包源,并且我有一个NuGet.Config
指向该网络共享的用户文件作为包源。在项目文件夹(git 存储库)中,我有一个packages.config
文件,该文件按名称引用此本地提要中的包。我想将此包恢复到此项目文件夹中。
我认为,让这件事变得困难的原因在于这不是一个 Visual Studio 项目。我在常规文本编辑器中使用它,并且有一些 PowerShell 构建脚本。
我知道我可以下载 nuget.exe 二进制文件并将其放在我的路径或工作目录中,然后nuget restore
从命令行执行,但我在这里试图解决的问题是哲学纯洁性问题之一。即:
- 我的存储库应该是可移植的,具有最少的先决条件依赖项
- 我的存储库不得包含无关的二进制文件或不属于它的代码
因此,我无法将nuget.exe
二进制文件提交到我的存储库以使其可移植;相反,我想依赖“现代 Windows 10 环境”的先决条件依赖项,它为我提供了 PowerShell 和内置的 PackageManagement 工具,这些工具能够引导包括 PowerShellGet 和 NuGet 在内的各种提供程序。
这感觉是正确的道路,因为 PackageManagement 被设计为任何包管理解决方案的内置统一接口。(但我是否误解了这一点,它实际上只是为了将软件安装到您的操作系统或用户帐户?我找不到任何可以清楚地描述这一点的东西。)
那么,是否可以利用内置的 PackageManagement 在Visual Studio 范围之外nuget restore
从文件中执行(或等效)操作?packages.config
或者如果不是直接的,是否有一个明显/简单的解决方案可以从 PackageManagement 引导到可以完成这种恢复的东西?
tfs - Azure Artifacts 代码存储在本地解决方案中的什么位置?
我们有 TFS 2018 的本地版本。我有兴趣在 TFS 中使用包(现在是 Azure Artifacts)功能。我想知道构建和部署的包的源代码存储在哪里。例如,如果我构建了一个 NPM 包的版本,该源代码是存在于我们的本地服务器上还是存在于云中的某个地方?
installation - Gentoo 软件包掩码不适用于确切的版本号
我在 Gentoo 系统上安装了 mysql-5.6.42。有一个更新的版本 5.7.24,但我不想升级那个版本。所以我屏蔽了 /etc/portage/package.mask 下的包
=dev-db/mysql-5.6.42
例如,当我想升级 php portage 时,想将 mysql 升级到 5.7.24。
为什么 package.mask 不起作用?
我试过 <=dev-db/mysql-5.7.0 结果是一样的。
python - 有没有办法将 python 依赖项添加到柯南包
我正在使用 C/C++ 和 Python 中的多个库和包设置一个项目。
我想为 C/C++ 包设置一个二进制存储库,为 python 包设置一个 python 包索引服务器。
我偶然发现了 conan 和 artefactory 来处理 C/C++ 库之间的依赖关系,但我找不到添加标准 python 包依赖关系的明确解决方案。
例如,我的项目“ A ”(C/C++)依赖于“ B ”(C/C++),其中包含使用“ C ”工具(Python)生成的代码。
我想将“ B ”的要求设置为“ C ”作为我的“ C ”工具包的特定分发的 pip 要求。
到目前为止,我看到的解决方案是:
- 为我的“ C ”工具创建一个柯南包并在“ B ”中添加要求
- 手动处理在“ B ”conanfile.py中安装的“ C ”包
我想避免为 python 包添加柯南包,因为 python 已经有一个包管理系统,我的包将在 python 索引服务器上可用。
我也会避免添加代码来处理 python 包依赖项。
有没有人知道柯南是否可以在一个简单的问题上做到这一点?
谢谢
亚历克斯
package - 我可以为不同的环境使用不同版本的包吗?
我有一个项目,我需要在本地环境中使用 SQLite,但在普通服务器上使用 Postgres。
不幸的是,目前还没有适用于 Ecto 3 的 SQLite 适配器,这迫使我将 Ecto 和一些相关包保留在2.x
,这导致了一些问题,例如:Ecto 2.0 SQL Sandbox Error on tests
我想知道是否可以指定 Ecto 的两个不同版本,从而指定环境:local
和:prod
. 目前这似乎是不可能的,因为每个项目只有一个锁文件。实现它的唯一方法似乎是在项目目录中存储两个不同的锁定文件?例如https://elixirforum.com/t/only-fetch-deps-compatible-for-a-specific-version-of-elixir/16213
elm - 发布 Elm19 包,第一个版本一次发布 18 个包 Elm19 已经发布
在 Elm19 发布后的一段时间,我发布了一个库,我需要一个 Elm18 代码库:thought2/elm-wikimedia-commons
. 这很好用,它在社区驱动的 Elm18 包数据库中列出:https://dmy.github.io/elm-0.18-packages/,可以安装并且一切正常。除了文档没有显示在包详细信息中,但我听说那里是一个已知的错误。(但我仍然认为这很糟糕)
但现在的主要问题是,如何将库迁移到 Elm 19:实际迁移步骤已完成并位于 repo 的主分支:http: //github.com/thought2/elm-wikimedia-commons
Elm18 版本1.1.0
同时进行,迁移后必须进行 API 更改,所以我假设最新版本变为2.0.0
. 如果我将它添加到elm.json
,命令elm publish
会告诉我这将是第一个版本,我应该更改它。这是不对的。
经过一番研究,我发现这个包(在同一时间段发布的其他 18 个包中)没有列在这个 json 中:https ://package.elm-lang.org/all-packages这个无论版本如何,都应该包含所有包。
有什么想法该怎么做?这真的阻碍了我的发展,因为我现在被困在两个国家:18 岁和 19 岁。如果有人对我有一些提示或解决方案,将不胜感激!