跳到主要内容

Spack快速上手与应用

Spack是一个开源的软件包管理工具,专为科研和工程计算设计,支持Linux、macOS和Windows,广泛应用于超算(HPC)环境,主要优势是支持多种版本和配置共存,采用非破坏性安装,避免依赖冲突。用户可在同一系统中自由切换软件的不同版本、编译器和构建选项。

本指南帮助开发者、管理员和科研人员快速上手Spack,通过简单示例介绍环境配置、软件安装与验证,助你高效搭建可复现、可扩展的软件环境。

前提条件

  • 用户已经获取LLaMA Factory Online平台账户和密码,如果需要帮助或尚未注册,可参考注册账户完成注册。
  • 当前账号的余额充裕,可满足启动实例的需要。点击可了解最新的活动费用信息,或前往充值,如需了解更多请联系我们

操作步骤

系统已预装并配置了Spack包管理器,您只需激活相应环境,即可使用Spack安装所需的自定义系统工具。本文将以安装和使用curl为例,演示如何在LLaMA Factory Online实例使用Spack安装并使用自定义工具。

  1. 使用已注册的LLaMA Factory Online账号登录平台,选择[实例空间]菜单项,进入实例空间页面,例如下图所示。

    image

  2. 单击上图“开始微调”按钮,进入[配置资源]页面,选择CPU资源,其他参数保持为默认值,例如下图所示。

    image

  3. 单击“启动”按钮,待实例启动后,点击[JupyterLab处理专属数据]页签,进入JupyterLab数据处理目录。在Launcher页面中选择“Terminal”菜单项,打开终端页面,例如下图所示。

    image

  4. 在终端运行如下所示的命令,创建一个名称为“my_curl_env”的软件环境,用于隔离软件依赖,如下图高亮①所示。

    spack env create my_curl_env
  5. 在终端运行如下所示的命令,激活上步创建的名称为“my_curl_env”的软件环境,然后查看当前环境名称,如下图高亮②所示。

    spack env activate my_curl_env
    spack env status
  6. 在终端运行如下所示的命令,在已激活的环境中将curl加入到“待安装”的root specs列表中,如下图高亮③所示。

    spack add curl
  7. 添加完成后,在终端运行如下命令,查看已添加但尚未安装的包,如下图高亮⑤所示。

    spack find -c
  8. 然后在终端运行如下所示的命令,开始下载、编译并安装curl及其依赖项,例如下图高亮⑤所示。

    spack install

    image

    安装过程中,终端将实时显示Spack的安装日志,您可据此了解当前工具的安装进度。当工具成功编译并安装至您指定的自定义路径后,页面显示例如下图所示。

    image

  9. curl安装完成后,运行如下所示的命令验证工具安装情况,并使用自定义路径下的curl

    which curl
  10. 运行如下所示的命令,使用Spack加载已安装的curl包到当前环境,Spack会查找已安装的curl包,并将其所在的bin目录添加到当前shell环境的PATH变量中,观察日志输出,可以看到自定义的curl已被加载。

    spack load curl
    which curl
    curl --version
  11. 使用完自定义的curl工具后,可在终端执行以下命令,退出当前环境。

    spack env deactivate
  12. 若需再次使用自定义的my_curl_env软件环境,只需在终端执行以下命令,即可激活该Spack环境。

    spack env activate my_curl_env

总结

本实践展示了Spack在云平台环境下实现精细化软件管理的优势:环境隔离、依赖自动解析以及按需启停等。该方法不仅适用于curl等基础工具,还可广泛应用于各类自定义软件包的安装与配置。Spack能够在同一系统中灵活安装、管理和切换同一软件的不同版本、编译器及构建选项,有效解决了预置镜像中系统级软件包难以满足多样化用户需求的问题。通过将软件管理前置到用户层面,避免了每次实例启动后重复安装的繁琐过程,显著提升使用便捷性与资源利用效率。