linux - 由于版本号错误,git gui 无法启动

标签 linux git tcl 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 不再受支持,没有它的 future 版本,并且不会向后移植对包版本逻辑的更改。


git-gui 代码中存在错误;它本身应该在某处(可能在其主脚本的顶部)准确地说:

package require Tcl 8.5

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

关于linux - 由于版本号错误,git gui 无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24315854/

相关文章:

regex - TCL 正则表达式从特定特殊字符中修剪字符串

linux - 存储在变量中的 ssh 输出以测试其值

linux - 我在 linux 上用 perf 读取计数器的值,它的值总是 0

git - 在Visual Studio 2017中,通过SSH进行Git Push提交失败

mysql - 我们可以在不连接服务器的情况下用perl生成mysql数据库吗?

regex - gitk中正则表达式的格式是什么?

linux - 如何在Linux中跟踪在安装APP期间在哪里安装文件?

linux - 如何自动调整QTableView的大小

git - Jenkins 和 Git 配置问题

git - 如何更改 Bitbucket 中的 git 提交消息?