Git GUI无法启动,因为版本号不正确。

3

我正在使用一个古老的Ubuntu系统,在自动更新后,git-gui停止工作并显示以下错误信息:

Error in startup script: expected version number but got "1.7.0-"
    while executing
"package vsatisfies $_git_version 1.7.0-"
    (file "/usr/local/libexec/git-core/git-gui" line 1)

我的“修复”是将/usr/lib/git-core/git-gui还原如下
1286c1286
< if {[package vsatisfies $_git_version 1.7.0]} {
---
> if {[package vsatisfies $_git_version 1.7.0-]} {
1542c1542
<   if {[package vsatisfies $::_git_version 1.6.3]} {
---
>   if {[package vsatisfies $::_git_version 1.6.3-]} {

令人遗憾的是,在下一次更新后,这个问题又出现了。这个问题似乎很少见,今年我找到的唯一相关链接是stackoverflow上的一个已删除的问题。我正在使用git 2.0.0tclsh 8.4


package vsatisfies 语法在8.5中被扩展,因此您受到不兼容的语法影响。没错,难怪很少使用,Tcl 8.4.自相当长时间以来已经停止支持。 - schlenk
1个回答

1
在Tcl 8.5中,软件包版本编号满意度逻辑发生了变化,使其能够支持更复杂的版本表达式。似乎git-gui使用了这种扩展语法(虽然是不必要的),因此每次更新都需要与之斗争,除非将系统升级到Tcl 8.5。无论如何,这是推荐的做法;Tcl 8.4已经停止支持,在将来也不会有任何发布,并且软件包版本逻辑的更改不会被移植。

git-gui的代码中存在一个bug; 它应该在自己的某个地方(可能是在主脚本的顶部)明确说明:

package require Tcl 8.5

因为它使用了来自Tcl 8.5的功能。这并不能为您解决问题,但会告诉您需要采取正确的措施。


我仍在使用Ubuntu 10.04,看起来Tcl 8.4是适合我古老操作系统的正确版本。我已经习惯了还原/usr/lib/git-core/git-gui。如果新的Linux中有更好的东西能激励我去升级就好了。 - maaartinus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接