【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】v7.1.5
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
新用户,新装的tiup,执行tiup tiup list就相当于安装了tiup tiup,然后升级self 就不好用了
默认就变成了升级tiup tiup而不再升级tiup
官方是把tiup本身也变成了一个组件,但这样容易误导人,还麻烦了~ 建议禁用
【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】v7.1.5
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
新用户,新装的tiup,执行tiup tiup list就相当于安装了tiup tiup,然后升级self 就不好用了
默认就变成了升级tiup tiup而不再升级tiup
官方是把tiup本身也变成了一个组件,但这样容易误导人,还麻烦了~ 建议禁用
在tiup server 里 tiup 和 playground、tidb 一样都是作为 coponent 存储没有特殊处理
老版本 tiup 按字符串匹配,禁止 tiup install tiup 等 操作,并且 tiup update --self 是更新 ~/.tiup/bin/tiup
新版本 tiup (也没那么新,感觉改了快一年了)因为用户有升级 tiup 到指定版本需求,加上当时的一些其他需求。所以最终实现方式是放开2提到的限制并增加 tiup link xxx 命令来将 component 的软链接添加到 $PATH. 就是保留源方式下保留了另一种安装升级方式(~/.tiup/bin/tiup → ~/.tiup/components/tiup/vx.x.x/tiup)
回到这个用户问题,其实是因为 tiup update --self, tiup update xxx 和 tiup xxx 都复用了一个安装 component 的函数,在第一种场景下跳过检测是否已安装就可以了
fix tiup cannot update itself when tiup comonent exist by kaaaaaaang · Pull Request #2443 · pingcap/