我得到我的手一起去脏,虽然我理解和欣赏的原理 简单 说离开是在建,我想把握原理背后放弃一个 内置的封装版本的方法 在他们的依赖,获取工具go get
和该import
html" target="_blank">声明。
如果我正确理解,go get
然后import
从中获取软件包HEAD
,他们将无法引用分支或标签。虽然有诸如gopkg.in之类的工具可以绕过此限制,但官方工具链:
说实话,事情并不是那么容易,因为软件包版本控制需要一种策略来处理相互冲突的传递依赖关系,例如,X
依赖于A
和B
,每个依赖于的不同版本C
。
从Java的背景来看,这种限制确实带来了一些风险和问题,其中包括:
产品/包装的发展以及第三方部门公共API的破坏是不可避免的,因此版本控制必须是IMHO工具链中的一等公民。
在 Git的回购每版 的政策是非常低效的:
鉴于以下原因,企业采用可能会受到阻碍,并且开发团队可能会回避使用该语言:
始终拖入HEAD
意味着他们无法控制或冻结他们的第三方部门,从而导致潜在的不可预测的最终产品。
HEAD
(世界上并非每个公司都是Google :))。虽然我确实知道,通过持续集成可以(并且必须)减轻后一种风险,但它并不能解决问题的根本原因。
我缺少什么信息?在人力有限的企业中部署Go时,如何处理软件包的上游更改?
这是正在解决由vendoring这是围棋1.5作为一个实验性功能的一部分,它可以在合格命令与运行启用GO15VENDOREXPERIMENT=1
在其环境中,并会在Go
1.6“全”功能。另请参阅供应商目录。
可以在此处找到导致Go 1.5 Vedor实验的原始讨论。
供应的本质是创建一个名为的文件夹vendor
,并放置代码所依赖的软件包的确切版本。vendor
文件夹内的代码只能由以父文件夹为根的目录树中的代码导入vendor
,并且您可以vendor
使用导入路径vendor
从workspace/src
文件包导入文件,就好像是文件夹一样(也就是说,导入路径会省略前缀为并包括vendor元素)。
例:
/home/user/goworkspace/
src/
mymath/
mymath.go
vendor/
github.com/somebob/math
math.go
在此示例中,github.com/somebob/math
是包使用的外部mymath
包(来自mymath.go
)。可以从以下方式使用mymath.go
它:
import "github.com/somebob/math"
(不是那样import mymath/vendor/github.com/somebob/math
不好。)
软件包的版本号是个奇怪的东西。它们看起来像十进制的数字,但它们不是。 例如,一个版本号通常的形式为 2.6.4。如果你需要比较两个版本号, 不能做简单的字符串比较,因为 2.6.4 会比 2.6.12 大;也不能进行数字比较, 因为它们不是有效地数字。 Puppet 的 versioncmp 函数会帮我们解决这个问题。 若你给它传递两个版本号,它会比较它们,并返回一个值,指出谁是更大的: ve
安装 要在集群主机上安装 Ceph 软件包,在管理主机上打开命令行并执行下列命令: ceph-deploy install {hostname [hostname] ...} 没提供额外选项的话 ceph-deploy 默认会把最新稳定版安装到集群主机,要指定某个软件包可以用下列参数: --release <code-name> --testing --dev <branch-or-tag> 例如
我想将以新的swift包管理器格式编写的swift代码编译成高度优化的二进制代码。这在当前使用swiftc-O somefile时是可能的。swift
有时你或许不想升级某些软件包,这时我们可“pin”住这些软件包,使它们不能被升级。我们可很容易实现该功能,只要编辑/etc/apt/preferences配置文件。该文件的格式如下: Package: <package> Pin: <pin definition> Pin-Priori
apt-show-versions可显示已安装软件包的版本,它提供了一种安全的方法从混合版本环境中升级指定版本的软件包。如以下命令只升级unstable的软件包: # apt-get install `apt-show-versions -u -b | grep unstable`
问题内容: 我想使用conda在当前的活动环境中安装“ rope”软件包。当前,以下“绳索”版本可用: 我想安装以下软件: 我已经尝试过各种“ conda install”的排列方式,因为它们都不正确,所以这里不再列出。 我也不确定 py35_0 是什么(我假设这是针对其构建软件包的python版本?),我也不知道’defaults’是什么意思? 问题答案: 没有适用于的版本。指包装。的最高可用版