服务器离线环境部署指南

1. VSCode插件离线安装

VSCode下载地址:https://code.visualstudio.com/download

插件安装包下载地址:https://marketplace.visualstudio.com/

若该地址下载的插件安装包无法正确安装,可以来到插件对应的GitHub地址进行下载后缀为.vsix的安装包,例子如下:

image-20250723181704821 image-20250723181736397 image-20250723181757154

下载完安装包后,通过XFTP将文件传输至于服务器,接着直接安装即可

image-20250723181904627

2. 局域网环境VSCode远程连接服务器

2.1 SSH服务安装

如果安装的是Ubuntu24.xx版本,系统设置内已自带SSH监听服务,只需要在设置界面打开即可

image-20250809205018125
  1. 下载SSH服务所需的安装包(与系统版本对应)

    一个比较方便的方法是在Windows商店下载对应的Ubuntu系统,利用本地的网络环境执行如下命令

    1
    2
    # 下载openssh-server及其依赖项
    sudo apt-get install --download-only --reinstall -o Dir::Cache::archives=/mnt/d/apt_pkgs openssh-server -y
  2. 上传后执行安装命令

    Ubuntu系统安装该服务后续开机会自启动

    1
    2
    3
    4
    5
    6
    # 安装目标路径下的所有.deb后缀安装包
    dpkg -i /目标路径/*.deb
    # 防火墙允许22号端口通过
    ufw allow 22
    # 启动SSH服务
    systemctl start ssh

2.2 vscode本地服务器安装

当VSCode开启SSH服务时,会在目标主机安装VScode本地服务器,作用是映射本地与远程的路径信息以及同步编辑行为等。在离线环境下,相关资源无法从互联网获取,因此需要手动进行干预

  1. 按照如下👇方式查看自己VSCode的commit信息并保存

    可以理解为建立连接时的id信息

    image-20250728102318409 image-20250728102419828
  2. 浏览器分别输入以下网址,进行文件下载并创建相应文件夹

    commit必须进行对应替换,否则最后连接后会出现无法读取远程目录的情况!!!

    • vscode-server-linux-x64.tarhttps://update.code.visualstudio.com/commit:替换为自己的commit号/server-linux-x64/stable
    • vscode_cli_alpine_x64_cli.tar.gzhttps://update.code.visualstudio.com/commit:替换为自己的commit号/cli-alpine-x64/stable
    1
    2
    3
    4
    # 在用户目录下创建.vscode-server/cli/servers三个文件夹
    mkdir -p ~/.vscode-server/cli/servers
    # 在servers文件夹下再创建Stable-{commit_id}文件夹
    mkdir Stable-{commit_id}

    目录层级如下所示

    image-20250728104413292
  3. 解压文件至指定目录

    1
    2
    3
    4
    5
    6
    # 将vscode-server-linux-x64.tar压缩包解压至刚刚创建的路径,commit_id进行相应替换
    # 解压后的文件夹需要重命名为server
    tar -zxvf /目标路径/vscode-server-linux-x64.tar.gz -C ~/.vscode-server/cli/servers/Stable-{commit_id}
    # 将vscode_cli_alpine_x64_cli.tar.gz压缩包(仅有code文件)解压到.vscode-server下
    tar -zxvf /目标路径/vscode_cli_alpine_x64_cli.tar.gz -C ~/.vscode-server
    # 将文件命名为"code-{commit_id}",如下👇
    image-20250728105124921

    由此即可完成vscode本地服务器配置

若后续有新的主机需要连接服务器,只需要在对应位置创建新的Stable-{commit_id}文件夹并解压vscode-server-linux-x64.tar压缩包以及解压vscode_cli_alpine_x64_cli.tar.gz,将其重命名为code-{commit_id}并将其移动到对应目录位置即可

3. 离线部署conda虚拟环境

如果需要在服务器离线部署Python虚拟环境(服务器要提前安装MiniConda),可参考以下步骤:

Miniconda下载地址:https://repo.anaconda.com/miniconda/

pip 通过 -e 参数进行安装但是后续修改了项目位置,可以在envs/虚拟环境名称/lib/当前环境python版本/site-packages/__editablexxx.py进行修改

  1. 寻找拥有MiniConda且联网的Linux系统,创建初始环境并指定python版本

    1
    2
    # 创建指定python版本且名为env_name的虚拟环境,安装conda-pack工具
    conda create --name env_name python=xxx conda-pack工具

    将当前基础环境进行打包

    1
    2
    3
    # 打包env_name这个虚拟环境,只需将其解压至conda对应的envs目录下即可完成迁移
    # 注意:打包的系统需要与虚拟环境的系统一致,否则环境无法兼容
    conda pack -n env_name -o env_name.tar.gz

    利用XFtp或其他的文件传输工具将工具传输至于离线服务器的minicoda/envs目录下,将当前环境进行解压到指定目录即可完成基础环境的迁移

    1
    2
    3
    4
    # 在minicoda/envs路径下创建env_name文件夹
    mkdir -p env_name
    # 解压虚拟环境
    tar -zxvf env_name.tar.gz -C env_name

    可在离线服务器中存放一个仅有python的库作为环境源,后续若是需要类似的python虚拟环境只需要复制minicoda/envs下的环境源文件夹即可

  2. 在自己的Windows电脑上安装相关依赖

    1
    2
    3
    4
    5
    6
    # 安装Linux平台与python3.10匹配的requirements.txt涉及的二进制包(.whl)到当前的offline文件夹中
    pip download -r requirements.txt -d ./offline/ --platform manylinux2014_x86_64 --python-version 3.10 --only-binary=:all:

    # 若只想单独安装某第三方库,则使用如下命令
    # 安装Linux平台与python3.10匹配的的pandas及其相关依赖的二进制包(.whl)到当前的offline文件夹中
    pip download pandas -d ./offline/ --platform manylinux2014_x86_64 --python-version 3.10 --only-binary=:all:

    将offline文件夹压缩传送至离线服务器

  3. 离线服务器安装依赖

    1
    2
    3
    4
    5
    6
    # 切换至目标虚拟环境
    conda activate env_name
    # 根据当前的依赖生成requirements.txt文件
    ls ./offline/*.whl > requirements.txt
    # 安装所有依赖
    pip install -r requirements.txt

4.Linux常用命令

4.1 下载安装

apt软件包

1
2
3
4
5
6
7
sudo apt update
# 确保本地系统环境足够干净,否则依赖下载不全
# 下载软件包到指定目录
sudo apt-get install --download-only --reinstall -o Dir::Cache::archives=存储地址 包名 -y

# 安装软件对应的所有.deb
sudo dpkg -i ./*deb

由于deb安装并不会判断依赖关系,因此初次安装有些依赖可能装不上,只需要再次执行即可

conda环境

1
2
# 将本地的虚拟环境打包(直接解压至miniconda的envs的空目录下就可以使用)
conda pack -n your_env_name -o your_env_name.tar.gz

4.2 防火墙

1
2
3
4
5
6
7
8
9
10
11
12
# 查看防火墙当前存在的规则
sudo ufw status numbered
# 开放xx端口
sudo ufw allow xx
# xx端口禁止通行
sudo ufw deny xx
# 删除某条规则[最左侧的序号]
sudo ufw delete xx
# 重启防火墙
sudo ufw reload
# 禁用/启用防火墙
sudo ufw disable/enable

4.3 权限

通过 chmod 指令,可以修改文件或目录的权限

1
u:文件所有者		g:文件的组		o:其他人		a:所有用户【u,g,o的总和】
  • 方式一:字母加符号👉+,-,= 变更权限

    1
    2
    3
    4
    5
    6
    # 给文件所有者赋予rwx权限,所有组赋予rx权限,其他人赋予x权限
    chmod u=rwx,g=rx,o=x 文件/目录名
    # 给其他人增加此文件的w权限
    chmod o+w 文件/目录名
    # 删除所有人对此文件的x权限【可执行权限】
    chmod a-x 文件/目录名
  • 方式二:数字加符号👉+,-,= 变更权限

    1
    2
    3
    4
    # 二进制数,0-7能囊括所有权限组合【0是无权限】
    r=4 w=2 x=1
    # 给文件所有者赋予rwx权限(7),所有组赋予rx权限(5),其他人赋予x权限(1)
    chmod 751 文件/目录名

4.4 服务管理

1
2
3
4
5
6
# 设置服务开机启动/关闭服务开机启动
systemctl enable/disable 服务名
# 查询某个服务是否是自启动的
systemctl is-enabled 服务名
# 查看服务当前状态[start,stop,restart]
systemctl status 服务器

4.5 文件

1
2
3
4
# 递归复制
cp -r source dest
# 创建多级文件夹
mkdir -p xxx

4.6 磁盘

永久挂载外接硬盘

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 查看所有存储设备及分区,定位到需要挂载的设备并记住UUID与文件系统类型
lsblk -f

# 将存储设备sda3挂载到/mnt/storage4T【文件系统为ext4是设备】
sudo vim /etc/fstab
########
# 在文件尾部添加如下内容,并保存退出
UUID=xxx /mnt/storage4T ext4 defaults 0 2
#UUID=你的UUID 挂载位置 文件系统类型 defaults 0 2
########
# 配置生效
sudo mount -a
systemctl daemon-reload
# 查看是否挂载成功,接着重启验证
df -h

其他

1
2
3
4
5
6
# 关机
init 0
# 查看80端口占用情况
lsof -i :80
# 查询系统架构
uname -m

5. 显卡工具及驱动安装

若要在算法中使用Nvidia显卡,驱动以及CUDA工具必不可少

使用Nvidia官方的CUDA Toolkit进行安装时可以顺带安装对应的驱动,因此无需提前安装驱动

直接搜索CUDA Toolkit对应版本进入官网选配即可,通常12.8比较是主流的版本

image-20250806151524557 image-20250806152023220

👆选配后往下滑,可看见对应的下载地址👇

image-20250806152222010

安装前需要确保服务器拥有gcc,g++,make,binutils软件包(使用apt下载),先安装gcc再安装g++,顺序错了会导致gcc某些包安装失败,此时需要手动软链接cc工具

1
2
3
4
# 手动创建cc到gcc的软链接【确保gcc已安装】
sudo ln -s /usr/bin/gcc /usr/bin/cc
# 先安装gcc能查询到说明安装
cc --version

赋予安装包执行权限

1
2
3
4
5
6
7
# 到指定目录下执行,赋予执行权限
sudo chmod +x ./cuda_12.8.0_570.86.10_linux.run
# 关闭图形化界面【显卡驱动安装必须关闭图形化界面】
# 该命令黑屏时按快捷键Ctrl+Alt+F2~F6切换至于其他文本终端
sudo systemctl isolate multi-user.target
# 执行安装包
sudo ./cuda_12.8.0_570.86.10_linux.run

安装过程依照系统提示即可,其中X代表选择,空白代表没选中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 配置环境变量
vim ~/.bashrc
##############
# 在~/.bashrc末尾添加如下内容
export PATH=/usr/local/cuda-12.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH
############
# 刷新环境变量
source ~/.bashrc
# 若有对应版本输出则安装成功
nvidia-smi
nvcc --version
# 切换为图形模式
sudo systemctl isolate graphical.target

6. Ubuntu系统重装

准备好一个16GB以上的空U盘!若系统卡死,则同时按住Ctrl + Alt,接着依次按PriSc,R,E,I,S,U,B即可完成安全重启

  1. 在清华镜像源下载所需版本的系统资源(Ubuntu),选择desktop-amd64.iso结尾的文件下载

  2. 下载系统启动盘构造工具UltraISO,双击安装,选择默认选项即可,安装完成启动后,选择“继续试用”

    image-20250805090644910
  3. 点击“文件”–>“打开”,选择自己的在第1步下载的ISO系统镜像路径,接着点击“启动”–>”写入硬盘映像”

    image-20250805092442965
  4. 选择本地空U盘路径,点击“格式化”,再点击“写入”

    image-20250805093307182
  5. 将U盘插入主机,开机过程中来回按F12,直至进入BIOS系统,选择使用U盘启动

  6. 接着按照系统指引进行初始化即可

当电脑内置Nvidia显卡且安装过程中未勾选安装初始Nvidia驱动时(推荐勾选,后续安装),开机后可能出现卡在Logo页面的情况,此时需要如下操作才能进入系统页面

  1. 同时按住Ctrl + Alt,接着依次按PriSc,R,E,I,S,U,B完成安全重启

  2. 重启过程中选择“Ubuntu 高级选项”–>”recovery mode”,加载完毕后选择”root”选项进入,在命令行输入如下命令:

    1
    2
    3
    4
    5
    sudo vi /etc/default/grub
    # 按i进入编辑模式,将GRUB_CMDLINE_LINUX_DEFAULT修改为如下内容后保存退出
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"
    sudo update-grub
    reboot