【问题标题】:How to make Cmake globally available如何使 Cmake 全球可用
【发布时间】:2017-06-14 14:08:05
【问题描述】:

我刚刚从 git clone wget http://www.cmake.org/files/v2.8/cmake-2.8.3.tar.gz 在 Linux 服务器上的一个新文件夹中安装了 Cmake。编译成功,但无法从其他路径识别 cmake 命令。我应该将 cmake-2.8.0 文件夹的全部内容复制到 usr/local/bin 吗?还是需要复制bin文件夹的内容?

谢谢

【问题讨论】:

  • 不要从源代码安装软件,使用你的包管理器。如果做不到这一点(只有在你知道自己在做什么的情况下)以通常的 GNU-ish 方式(配置、全部制作、安装)从源代码构建的软件通常会将二进制文件安装到 /usr/local/bin
  • 我不是管理员,但我有 sudo 权限。我不确定我应该尝试什么,并且管理员没有响应。
  • 因此,这将返回 /opt/cmake/bin/cmake -version cmake 版本 2.8.3。我只需要使用一次 cmake 来安装另一个软件。有没有办法访问它?谢谢
  • 你应该从你的包管理器安装 cmake。

标签: linux cmake


【解决方案1】:

在 Linux 和其他基于 Unix 的系统上,常见的安排是将软件包安装到 /opt 并将相关条目添加到 PATH 环境变量以使其可用。这适用于本机包管理器或发行版未提供的包。通过选择合适的目录结构,可以同时安装不同的版本,用户可以通过将相关目录添加到PATH来选择他们想要的版本。

对于问题中询问的 CMake 的具体情况,您可以使用 /opt/cmake/<version> 之类的目录结构,然后将相关的 /opt/cmake/<version>/bin 目录添加到您的 PATH(例如 /opt/cmake/3.8.2/bin 用于 3.8.2 CMake释放)。您甚至可以只 download 官方预构建的 CMake tarball,解压缩它们并将顶级目录移动到 /opt/cmake 区域作为您下载的特定版本。我已经在 Linux、MacOS 和 Solaris 上成功使用了它,我相信还有很多其他的。

请注意,在特定源代码树上运行 CMake 后,cmake 可执行文件不再需要位于 PATH 上。如果需要重新运行cmake,则构建将自己执行此操作,并将cmake 可执行文件的完整路径记录在自己的缓存中,因此甚至不咨询PATH(这对于确保无论PATH如何,所有构建都继续使用相同版本的CMake,因为PATH可以在登录会话之间更改等)。如果您打算手动调用cmake 或第一次在源代码树上运行它,您只需要PATH 上的cmake,但在这两种情况下,您始终可以只使用完整路径cmake 如果您愿意,可以执行。

我还应该补充一点,CMake 包中提供的整套文件都是必需的,而不仅仅是bin 目录。 CMake 广泛使用其其他目录中的文件,例如它附带的各种模块。如果您从源代码构建 CMake,您可能需要构建 package 目标,以便获得可重定位的 tarball 或类似内容,其中包含您在系统上提供 CMake 包时应包含的所有内容。

【讨论】:

    【解决方案2】:

    构建后,使用“sudo make install”。这将确保将正确的库和二进制文件复制到适当的位置。

    通常这会将二进制文件安装到 /usr/local/bin。

    确保 PATH 变量包含此内容。

    【讨论】:

      【解决方案3】:

      sudo make install 由于某种原因没有复制到/usr/local/bin/,所以我复制了CMAKE /bin的内容。到 usr/local/bin 一个它的工作。

      cp –a bin/. /usr/local/bin/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-02
        • 2021-08-28
        • 1970-01-01
        • 2016-07-28
        • 1970-01-01
        • 1970-01-01
        • 2016-09-30
        • 2018-03-03
        相关资源
        最近更新 更多