温馨提示×

Rust项目Ubuntu如何部署

小樊
48
2025-09-19 02:05:28
栏目: 编程语言

1. 安装Rust工具链
在Ubuntu上部署Rust项目前,需先安装Rust编译器(rustc)和包管理器(Cargo)。推荐使用rustup(Rust官方工具链管理器)安装:

  • 打开终端,运行以下命令下载并执行安装脚本(选择默认配置,即输入1确认):
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    
  • 安装完成后,激活环境变量(若未自动激活):
    source $HOME/.cargo/env
    
  • 验证安装是否成功:
    rustc --version  # 查看Rust编译器版本
    cargo --version  # 查看Cargo版本
    
  • (可选)配置国内镜像源:若下载依赖慢,可修改~/.cargo/config.toml文件,使用国内镜像(如清华、中科大):
    [source.crates-io]
    replace-with = 'ustc'  # 替换为国内镜像源名称
    
    [source.ustc]
    registry = "git://mirrors.ustc.edu.cn/crates.io-index"  # 国内镜像源地址
    

2. 构建Rust项目
进入项目目录(如/path/to/your/rust-project),使用Cargo构建项目:

  • 开发模式构建(生成未优化的可执行文件,用于调试):
    cargo build
    
    可执行文件位于target/debug/目录下,文件名为项目名称(如your_project)。
  • 发布模式构建(生成优化的可执行文件,用于生产部署,体积更小、性能更高):
    cargo build --release
    
    可执行文件位于target/release/目录下,文件名同项目名称。

3. 部署到Ubuntu服务器
将构建好的可执行文件复制到目标服务器(如user@your_server_ip:/path/to/deploy):

  • 使用scp命令(本地终端执行):
    scp target/release/your_project user@your_server_ip:/opt/your_project  # 复制到服务器/opt目录
    
  • 登录服务器,进入部署目录:
    ssh user@your_server_ip
    cd /opt/your_project
    

4. 配置服务器环境

  • 安装系统依赖:若项目依赖外部库(如openssllibpq),需提前安装对应开发包(以libssl-dev为例):
    sudo apt update
    sudo apt install libssl-dev  # 根据项目需求调整依赖包
    
  • 设置可执行权限:为可执行文件添加运行权限:
    chmod +x your_project
    

5. 运行Rust项目

  • 直接运行(临时测试):
    ./your_project
    
  • 后台运行(nohup):避免终端关闭后进程终止:
    nohup ./your_project > output.log 2>&1 &
    
    日志输出到output.log文件,可通过tail -f output.log查看实时日志。
  • 使用systemd服务(推荐):实现开机自启、崩溃自动重启:
    • 创建服务文件(如your_project.service):
      sudo nano /etc/systemd/system/your_project.service
      
    • 添加以下内容(替换路径和用户):
      [Unit]
      Description=Your Rust Project
      After=network.target
      
      [Service]
      User=ubuntu  # 替换为运行服务的用户(如ubuntu、root)
      WorkingDirectory=/opt/your_project  # 项目目录
      ExecStart=/opt/your_project/your_project  # 可执行文件路径
      Restart=always  # 崩溃时自动重启
      
      [Install]
      WantedBy=multi-user.target
      
    • 保存并退出(Ctrl+OEnterCtrl+X),重新加载systemd配置:
      sudo systemctl daemon-reload
      
    • 启动服务:
      sudo systemctl start your_project
      
    • 设置开机自启:
      sudo systemctl enable your_project
      
    • 查看服务状态(确认是否运行):
      sudo systemctl status your_project
      

注意事项

  • 若项目依赖特定硬件(如GPU),需确保服务器安装对应驱动(如NVIDIA CUDA)。
  • 发布模式下构建的可执行文件无需额外依赖(静态链接),更适合生产环境部署。
  • 若项目使用数据库(如PostgreSQL),需提前安装并配置数据库服务,确保项目能连接数据库。

0