我想在我的Ubuntu Linux环境中更新我的CMake版本(从3.16.3到3.27.7),而不影响当前的ROS2 Galaxy安装.我从以下链接安装了最新的CMake版本:https://cmake.org/download/,从最新版本3.27.7安装,从Linux x86_64安装.sh版本.但由于ROS2银河有一个预装的CMake发行版,删除3.16.3版意味着整个ROS2发行版也将被删除.因此,我需要一种在不丢失ROS2的情况下将3.27.7版本应用到我的系统的方法.

我在网上搜索了一下,但没有找到类似的东西.

我找到的唯一链接是这个:https://answers.ros.org/question/293119/how-can-i-updateremove-cmake-without-partially-deleting-my-ros-distribution/但它使用./bootstrap这个命令,而这个文件不存在,以便执行它.所以这个解决方案不工作.

我也问了ChatGPT同样的问题,但它给我的答案要么是无法应用最新版本,要么是它应用了CMake的不完整版本,而没有应用它的所有功能,当我应用cmake --version时,我得到了这个错误:CMake Error: Could not find CMAKE_ROOT !!! CMake has most likely not been installed correctly. Modules directory not found in.

所以我的问题是,我如何才能在不影响ROS2星系分布的情况下拥有最新的CMake版本(3.27.7).

谢谢!

推荐答案

修改路径.以下是如何使用bash实现这一点的示例:

PATH="~/Downloads/cmake/3.27.3/bin:$PATH"
export PATH

重要的是,我是pre-pending%到PATH%的,以确保我的CMake版本第一个被找到.

如果您需要更改以使其持久化,请将上面的代码添加到.bashrc.bash_aliases.bash_profile,无论您喜欢哪一个.

Linux相关问答推荐

awk:try 将时间戳字符串转换为unix纪元时间

如何在Linux上获取clang中的模板实例化统计?

如何判断程序是在终端上运行还是在后台运行?

使用来自 yocto build 而不是主机系统的 protoc

需要获取文件名、行号、模式在文件中的匹配位置

使用 bash 命令将文件从子文件夹复制到另一个

如何为命令的所有选项启用无密码 sudo?

如何在Linux中将文件的特定行号中的数字乘以2(双)?

如何使用 sed debug调试正则表达式?

增加 mysql docker 中的 max_allowed_pa​​cket 大小

未找到框架.NETFramework,Version=v4.7.1的参考程序集

使用 AWS cli 从 AWS 机密管理器解析机密

在 Python 上模拟鼠标点击

低功耗蓝牙:在 linux 中监听通知/指示

如何通过 ssh 判断 ubuntu 服务器上是否存在 php 和 apache

如何让 GNU 屏幕读取 .bash_profile/.bash_rc 更改?

为什么`du`的输出通常与`du -b`如此不同

比较两个图像的 python/linux 方式

计算每个进程打开的文件

Linux:删除多个文件的文件扩展名