由于版本号不正确,git gui无法启动

我正在运行一个古老的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-]} { 

可悲的是,在下次更新之后,它又一次发生了。 这个问题似乎是罕见的,从今年我发现唯一相关的链接是这个SO删除的问题。 我使用的是git 2.0.0tclsh 8.4

Tcl 8.5中的软件包版本号满意度逻辑发生了变化,它允许它支持更复杂的版本表达式。 看来, git-gui正在使用这个扩展语法(不必要的,因为它发生),因此, 每当你更新它,直到你升级你的系统使用Tcl 8.5,你将会与它斗争。

无论如何,这是推荐的。 Tcl 8.4不受支持,将不会有将来的版本,并且包版本逻辑的更改将不会被反向移植。


git-gui代码中有一个错误; 它应该在其本身(可能在其主要脚本的顶部)本身说:

 package require Tcl 8.5 

因为它使用了Tcl 8.5的功能。 这不会为你解决问题,但会告诉你正确的事情,你需要做的。