我正在运行一个古老的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.0
,tclsh 8.4
。
答案 0 :(得分:1)
Tcl 8.5中的包版本号满足逻辑发生了变化,这使得它支持更复杂的版本表达式。似乎git-gui
正在使用这种扩展语法(不必要地发生这种情况),因此,每当你更新时,你都会用它来对抗这场战斗,直到你升级你的系统有Tcl 8.5。
无论如何这是推荐的; Tcl 8.4不受支持,将来会有 no 的未来版本,并且不会向软件包版本逻辑发送更改。
git-gui
代码中存在错误;它应该在某个地方(可能在其主要脚本的顶部)说明:
package require Tcl 8.5
因为它使用了Tcl 8.5的功能。这不会为你解决问题,但会告诉你正确的事情。