大模型依赖的操作系统等信息

prompt

我希望你能扮演一个 Linux 终端。我会输入命令,你会回复终端应该显示的内容。我只希望你在回复中只包含一个独特的代码块,不要写解释,除非我要求你这样做。当我需要用英语告诉你一些信息时,我会用花括号 {像这样} 包裹文本。我的第一个命令是 pwd。

操作系统

cat /etc/os-release

NAME="Ubuntu"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 22.04.1 LTS"
VERSION_ID="22.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=jammy
UBUNTU_CODENAME=jammy

xinference和langchatchat python版本

Python 3.8.19 
[GCC 11.2.0]

安装依赖

apt-get update && apt-get install -y git net-tools sudo nano telnet

SSH自动断网修复

#!/bin/bash

# fix_ssh_disconnect.sh
# 这个脚本用于配置SSH服务器和客户端的KeepAlive设置,以防止SSH连接自动断开。

# 检查是否以root或具有sudo权限的用户运行
if [[ $EUID -ne 0 ]]; then
   echo "这个脚本需要以root用户或具有sudo权限的用户运行。"
   exit 1
fi

# 配置SSH服务器
configure_sshd() {
    SSHD_CONFIG="/etc/ssh/sshd_config"

    echo "备份原始的sshd_config文件..."
    cp "$SSHD_CONFIG" "${SSHD_CONFIG}.bak_$(date +%F_%T)}"

    echo "配置服务器端的KeepAlive设置..."
    # 删除已有的相关配置
    sed -i '/^ClientAliveInterval/d' "$SSHD_CONFIG"
    sed -i '/^ClientAliveCountMax/d' "$SSHD_CONFIG"
    sed -i '/^TCPKeepAlive/d' "$SSHD_CONFIG"

    # 添加新的配置
    echo "ClientAliveInterval 60" >> "$SSHD_CONFIG"
    echo "ClientAliveCountMax 3" >> "$SSHD_CONFIG"
    echo "TCPKeepAlive yes" >> "$SSHD_CONFIG"

    echo "重启SSH服务以应用更改..."

    if command -v systemctl >/dev/null 2>&1; then
        if systemctl is-active --quiet sshd; then
            systemctl restart sshd
        elif systemctl is-active --quiet ssh; then
            systemctl restart ssh
        else
            echo "无法找到 SSH 服务(sshd 或 ssh),尝试使用 service 命令重启。"
            service ssh restart || /etc/init.d/ssh restart || { echo "无法重启 SSH 服务,请手动重启。"; exit 1; }
        fi
    elif command -v service >/dev/null 2>&1; then
        service ssh restart || /etc/init.d/ssh restart || { echo "无法重启 SSH 服务,请手动重启。"; exit 1; }
    else
        /etc/init.d/ssh restart || { echo "无法重启 SSH 服务,请手动重启。"; exit 1; }
    fi

    echo "SSH服务器配置已更新并重启。"
}

# 配置SSH客户端
configure_ssh_client() {
    SSH_CLIENT_CONFIG="$HOME/.ssh/config"

    echo "配置客户端的KeepAlive设置..."

    # 创建.ssh目录如果不存在
    mkdir -p "$HOME/.ssh"

    # 如果配置文件不存在,则创建一个新的
    if [ ! -f "$SSH_CLIENT_CONFIG" ]; then
        touch "$SSH_CLIENT_CONFIG"
        chmod 600 "$SSH_CLIENT_CONFIG"
    fi

    # 备份现有的客户端配置
    cp "$SSH_CLIENT_CONFIG" "${SSH_CLIENT_CONFIG}.bak_$(date +%F_%T)}"

    # 删除现有的相关配置
    sed -i '/^ServerAliveInterval/d' "$SSH_CLIENT_CONFIG"
    sed -i '/^ServerAliveCountMax/d' "$SSH_CLIENT_CONFIG"

    # 添加新的KeepAlive配置
    {
        echo ""
        echo "Host *"
        echo "    ServerAliveInterval 60"
        echo "    ServerAliveCountMax 3"
    } >> "$SSH_CLIENT_CONFIG"

    echo "SSH客户端配置已更新。"
}

# 主执行部分
echo "开始配置SSH服务器和客户端的KeepAlive设置..."

configure_sshd
configure_ssh_client

echo "所有配置已完成。请重新连接SSH以应用更改。"

安装xinference

#!/bin/bash

# ====================================================
# Xinference 管理脚本
# ====================================================
# 功能:
# 1. 安装 Xinference 及所有支持的依赖
# 2. 启动 Xinference
# 3. 停止 Xinference
# 4. 卸载 Xinference 及所有依赖
# 5. 安装并配置嵌入模型
# 6. 安装并配置重排序模型
# 7. 退出
# ====================================================

# 配置变量
CONDA_ENV_NAME="xinference_env"                            # Conda 环境名称
CONDA_PYTHON_VERSION="3.10.14"                             # Python 版本
PIP_MIRROR="https://pypi.tuna.tsinghua.edu.cn/simple"     # PyPI 镜像
XINFERENCE_PACKAGE="xinference"                            # Xinference 包名称,安装基础包
XINFERENCE_PORT=6006                                       # Xinference 端口号
CONDA_ENVS_DIR="/root/autodl-tmp/conda_envs"                # Conda 环境存放路径(数据盘)
CONDA_PKGS_DIR="/root/autodl-tmp/conda_pkgs"                # Conda 包缓存路径(数据盘)
FLASHINFER_INSTALL_DIR="/root/autodl-tmp/flashinfer"  # 全局设置安装目录

TMP_DIR="/root/autodl-tmp/tmp"                              # 临时文件目录(数据盘)

# ----------------------------------------------------
# 模型配置
# ----------------------------------------------------
EMBEDDING_MODELS=("jina-embeddings-v3" "bge-large-zh-v1.5")
RERANK_MODELS=("bce-reranker-base_v1" "bge-reranker-base" "bge-reranker-large" "bge-reranker-v2-gemma" "bge-reranker-v2-m3" "bge-reranker-v2-minicpm-layerwise" "jina-reranker-v2" "minicpm-reranker")

# ----------------------------------------------------
# 检查 Conda 是否已安装
# ----------------------------------------------------
check_conda() {
    if ! command -v conda &> /dev/null
    then
        echo "错误: 未检测到 Conda。请先安装 [Anaconda](https://www.anaconda.com/) 或 [Miniconda](https://docs.conda.io/en/latest/miniconda.html)。"
        exit 1
    fi
}

# ----------------------------------------------------
# 配置 Conda 环境路径和包缓存路径
# ----------------------------------------------------
configure_conda() {
    echo "配置 Conda 环境目录为 '$CONDA_ENVS_DIR' 和包缓存目录为 '$CONDA_PKGS_DIR'..."

    mkdir -p "$CONDA_ENVS_DIR"
    mkdir -p "$CONDA_PKGS_DIR"
    mkdir -p "$TMP_DIR"

    # 修改 .condarc 文件
    if [ ! -f ~/.condarc ]; then
        touch ~/.condarc
    fi

    # 添加 envs_dirs
    if ! grep -q "envs_dirs:" ~/.condarc; then
        echo "envs_dirs:
  - $CONDA_ENVS_DIR" >> ~/.condarc
        echo "Conda 环境目录已配置到 '$CONDA_ENVS_DIR'。"
    else
        if ! grep -q "$CONDA_ENVS_DIR" ~/.condarc; then
            sed -i "/envs_dirs:/a\  - $CONDA_ENVS_DIR" ~/.condarc
            echo "已添加 '$CONDA_ENVS_DIR' 到 Conda 环境目录。"
        else
            echo "Conda 环境目录已包含 '$CONDA_ENVS_DIR'。"
        fi
    fi

    # 添加 pkgs_dirs
    if ! grep -q "pkgs_dirs:" ~/.condarc; then
        echo "pkgs_dirs:
  - $CONDA_PKGS_DIR" >> ~/.condarc
        echo "Conda 包缓存目录已配置到 '$CONDA_PKGS_DIR'。"
    else
        if ! grep -q "$CONDA_PKGS_DIR" ~/.condarc; then
            sed -i "/pkgs_dirs:/a\  - $CONDA_PKGS_DIR" ~/.condarc
            echo "已添加 '$CONDA_PKGS_DIR' 到 Conda 包缓存目录。"
        else
            echo "Conda 包缓存目录已包含 '$CONDA_PKGS_DIR'。"
        fi
    fi

    # 设置临时文件目录
    export TMPDIR="$TMP_DIR"
    echo "临时文件目录已设置为 '$TMP_DIR'。"
}

# ----------------------------------------------------
# 清理 Conda 包缓存以释放空间
# ----------------------------------------------------
clean_conda_cache() {
    echo "清理 Conda 包缓存..."
    conda clean -a -y
}

# ----------------------------------------------------
# 检测硬件类型以设置 CMAKE_ARGS
# ----------------------------------------------------
detect_hardware_and_set_cmake() {
    CMAKE_ARGS=""
#    if lspci | grep -i nvidia > /dev/null; then
#        echo "检测到 NVIDIA GPU。设置 CMAKE_ARGS='-DLLAMA_CUBLAS=on -DLLAMA_OPENMP=on'..."
#        CMAKE_ARGS="-DLLAMA_CUBLAS=on -DLLAMA_OPENMP=on"
#    elif uname -m | grep -i arm > /dev/null && uname -s | grep -i darwin > /dev/null; then
#        echo "检测到 Apple Silicon (M 系列)。设置 CMAKE_ARGS='-DLLAMA_METAL=on -DLLAMA_OPENMP=on'..."
#        CMAKE_ARGS="-DLLAMA_METAL=on -DLLAMA_OPENMP=on"
#    elif lspci | grep -i amd > /dev/null; then
#        echo "检测到 AMD GPU。设置 CMAKE_ARGS='-DLLAMA_HIPBLAS=on -DLLAMA_OPENMP=on'..."
#        CMAKE_ARGS="-DLLAMA_HIPBLAS=on -DLLAMA_OPENMP=on"
#    else
#        echo "未检测到特定 GPU。llama-cpp-python 将使用默认配置。"
#        CMAKE_ARGS="-DLLAMA_OPENMP=on"
#    fi
}

# ----------------------------------------------------
# 安装 llama-cpp-python
# ----------------------------------------------------
install_llama_cpp_python() {
    echo "安装 llama-cpp-python..."

    # 安装系统依赖
    echo "安装系统依赖..."
    sudo apt-get update
    sudo apt-get install -y libc6-dev libomp-dev libgomp1

    # 更新 CMake
    echo "更新 CMake..."
    pip install --upgrade cmake -i "$PIP_MIRROR"

    # 设置 LDFLAGS 和 CMAKE_ARGS
    export LDFLAGS="-ldl"
    export CMAKE_ARGS="-DLLAMA_OPENMP=off"

    # 安装 llama-cpp-python
#    if [ -z "$CMAKE_ARGS" ]; then
#        pip install llama-cpp-python -i "$PIP_MIRROR"
#    else
#        CMAKE_ARGS="$CMAKE_ARGS" pip install llama-cpp-python -i "$PIP_MIRROR"
#    fi

    CMAKE_ARGS="-DGGML_CUDA=on -DLLAVA_BUILD=off" pip install -U llama-cpp-python -i "$PIP_MIRROR" --force-reinstall --no-cache-dir

    if [ $? -ne 0 ]; then
        echo "警告: 安装 llama-cpp-python 失败。请根据您的硬件手动安装。"
    else
        echo "llama-cpp-python 安装成功。"
    fi
}

# ----------------------------------------------------
# 安装 flashinfer
# ----------------------------------------------------
# ----------------------------------------------------
# 安装 flashinfer(使用镜像源和额外索引 URL)
# ----------------------------------------------------
install_flashinfer() {
    echo "安装 flashinfer(使用镜像源和额外索引 URL)..."

    # 创建安装目录
    mkdir -p "$FLASHINFER_INSTALL_DIR" || {
        echo "错误: 创建目录 $FLASHINFER_INSTALL_DIR 失败。"
        return 1
    }

    # 使用镜像源和额外索引 URL 安装 flashinfer
    PIP_TARGET="$FLASHINFER_INSTALL_DIR" pip install flashinfer --extra-index-url https://flashinfer.ai/whl/cu124/torch2.4 || {
        echo "错误: 安装 flashinfer 失败。请检查网络连接或手动安装。"
        echo "你可以尝试以下方法:"
        echo "1. 确保网络连接正常。"
        echo "2. 手动下载 flashinfer 包并安装:"
        echo "   - 从 https://flashinfer.ai/whl/cu124/torch2.4 下载适合的 .whl 文件。"
        echo "   - 使用以下命令安装:"
        echo "     PIP_TARGET='$FLASHINFER_INSTALL_DIR' pip install /path/to/flashinfer-xxx.whl"
        return 1
    }

    echo "flashinfer 安装成功。"
}

# ----------------------------------------------------
# 安装 Xinference 及所有依赖
# ----------------------------------------------------
install_xinference() {
    echo "=============================="
    echo "开始安装 Xinference 及所有依赖..."
    echo "=============================="

    # 配置 Conda 环境目录和包缓存目录
    configure_conda

    # 清理 Conda 包缓存以释放空间
    clean_conda_cache

    # 创建 Conda 环境
    echo "创建 Conda 环境 '$CONDA_ENV_NAME',Python $CONDA_PYTHON_VERSION..."
    conda create -y -n "$CONDA_ENV_NAME" python="$CONDA_PYTHON_VERSION"

    if [ $? -ne 0 ]; then
        echo "错误: 创建 Conda 环境失败。"
        exit 1
    fi

    # 激活环境
    echo "激活 Conda 环境 '$CONDA_ENV_NAME'..."
    source "$(conda info --base)/etc/profile.d/conda.sh"
    conda activate "$CONDA_ENV_NAME"

    # 安装 PyTorch 及 CUDA 工具包
    echo "安装 PyTorch 及 CUDA 工具包..."
    if ! conda install -y pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia; then
        echo "警告: 通过 Conda 安装 PyTorch 及 CUDA 工具包失败。尝试使用 pip 安装..."
        pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
    fi

    if [ $? -ne 0 ]; then
        echo "错误: 安装 PyTorch 失败。"
        exit 1
    fi

    # 安装 Xinference 依赖项
    pip install -U xinference -i "$PIP_MIRROR"

    if [ $? -ne 0 ]; then
        echo "警告: 安装 Xinference 失败。"
    fi

    # 安装 llama-cpp-python 及 flashinfer
    install_llama_cpp_python
    #install_flashinfer
}

# ----------------------------------------------------
# 启动 Xinference
# ----------------------------------------------------
start_xinference() {
    echo "启动 Xinference..."
    # 启动命令需要根据实际情况调整
    nohup xinference --port "$XINFERENCE_PORT" > "$TMP_DIR/xinference.log" 2>&1 &
    echo "Xinference 已启动,日志位于 '$TMP_DIR/xinference.log'"
}

# ----------------------------------------------------
# 停止 Xinference
# ----------------------------------------------------
stop_xinference() {
    echo "停止 Xinference..."
    pkill -f xinference
    echo "Xinference 已停止。"
}

# ----------------------------------------------------
# 卸载 Xinference 及所有依赖
# ----------------------------------------------------
uninstall_xinference() {
    echo "卸载 Xinference 及所有依赖..."
    conda deactivate
    conda remove -y -n "$CONDA_ENV_NAME"
    pip uninstall -y xinference llama-cpp-python flashinfer
    clean_conda_cache
    echo "Xinference 已卸载,所有相关依赖已清理。"
}

# ----------------------------------------------------
# 安装并配置嵌入模型
# ----------------------------------------------------
install_embedding_models() {
    echo "安装并配置嵌入模型..."
    for model in "${EMBEDDING_MODELS[@]}"; do
        echo "安装模型 '$model'..."
        pip install "$model" -i "$PIP_MIRROR"
    done
}

# ----------------------------------------------------
# 安装并配置重排序模型
# ----------------------------------------------------
install_rerank_models() {
    echo "安装并配置重排序模型..."
    for model in "${RERANK_MODELS[@]}"; do
        echo "安装模型 '$model'..."
        pip install "$model" -i "$PIP_MIRROR"
    done
}

# ----------------------------------------------------
# 显示菜单
# ----------------------------------------------------
show_menu() {
    clear
    echo "==============================================="
    echo " Xinference 管理脚本"
    echo "==============================================="
    echo "1. 安装 Xinference 及所有依赖"
    echo "2. 启动 Xinference"
    echo "3. 停止 Xinference"
    echo "4. 卸载 Xinference 及所有依赖"
    echo "5. 安装并配置嵌入模型"
    echo "6. 安装并配置重排序模型"
    echo "7. 退出"
    echo "==============================================="
    echo -n "请选择操作: "
}

# ----------------------------------------------------
# 主菜单
# ----------------------------------------------------
while true; do
    show_menu
    read -r choice
    case $choice in
        1)
            install_xinference
            ;;
        2)
            start_xinference
            ;;
        3)
            stop_xinference
            ;;
        4)
            uninstall_xinference
            ;;
        5)
            install_embedding_models
            ;;
        6)
            install_rerank_models
            ;;
        7)
            echo "退出脚本..."
            break
            ;;
        *)
            echo "无效的选项,请重新选择。"
            ;;
    esac
done

cuda安装

#!/bin/bash

# 设置 CUDA 安装目录
CUDA_INSTALL_DIR="/root/autodl-tmp/cuda"

# 设置 CUDA 配置目录
CUDA_RUN_DIR="/root/autodl-tmp/cuda_config"

# 设置 CUDA 安装包目录和路径
CUDA_PACKAGE_DIR="/root/autodl-tmp/cuda_package"
CUDA_RUN_FILE_PATH="$CUDA_PACKAGE_DIR/cuda_12.4_installer.run"
CUDA_DOWNLOAD_URL="https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run"

# 设置自定义临时目录
CUSTOM_TMP_DIR="/root/autodl-tmp/tmp"

# 如果 CUDA 安装目录已存在,则删除该目录
if [ -d "$CUDA_INSTALL_DIR" ]; then
    echo "检测到 CUDA 安装目录 $CUDA_INSTALL_DIR 存在,正在删除该目录..."
    rm -rf "$CUDA_INSTALL_DIR"
fi

# 检查并创建配置目录
if [ ! -d "$CUDA_RUN_DIR" ]; then
    echo "创建配置目录: $CUDA_RUN_DIR"
    mkdir -p "$CUDA_RUN_DIR"
fi

# 检查并创建 CUDA 安装包目录
if [ ! -d "$CUDA_PACKAGE_DIR" ]; then
    echo "创建 CUDA 安装包目录: $CUDA_PACKAGE_DIR"
    mkdir -p "$CUDA_PACKAGE_DIR"
fi

# 检查并创建自定义临时目录
if [ ! -d "$CUSTOM_TMP_DIR" ]; then
    echo "创建自定义临时目录: $CUSTOM_TMP_DIR"
    mkdir -p "$CUSTOM_TMP_DIR"
fi

# 设置 TMPDIR 环境变量
export TMPDIR="$CUSTOM_TMP_DIR"

# 检查 .run 文件是否存在
if [ -f "$CUDA_RUN_FILE_PATH" ]; then
    echo "$CUDA_RUN_FILE_PATH 已存在,跳过下载步骤。"
else
    # 下载 CUDA 12.4 安装包
    echo "正在下载 CUDA 12.4 安装包..."
    wget "$CUDA_DOWNLOAD_URL" -O "$CUDA_RUN_FILE_PATH"

    # 检查下载是否成功
    if [ $? -ne 0 ]; then
        echo "下载 CUDA 安装包失败。"
        exit 1
    fi
fi

# 检查 CUDA 是否已经安装
if [ -d "$CUDA_INSTALL_DIR/bin" ]; then
    echo "CUDA 已经安装在 $CUDA_INSTALL_DIR,跳过安装步骤。"
else
    # 赋予执行权限
    chmod +x "$CUDA_RUN_FILE_PATH"

    # 安装 CUDA 12.4
    echo "正在将 CUDA 12.4 安装到 $CUDA_INSTALL_DIR..."
    "$CUDA_RUN_FILE_PATH" --silent --toolkit --toolkitpath="$CUDA_INSTALL_DIR" --defaultroot="$CUDA_INSTALL_DIR"

    # 检查安装是否成功
    if [ -d "$CUDA_INSTALL_DIR/bin" ]; then
        echo "CUDA 12.4 已成功安装在 $CUDA_INSTALL_DIR。"
    else
        echo "CUDA 12.4 安装失败。"
        exit 1
    fi
fi

# 配置环境变量(仅追加一次)
if ! grep -q "$CUDA_INSTALL_DIR/bin" ~/.bashrc; then
    echo "配置环境变量 PATH..."
    echo "export PATH=$CUDA_INSTALL_DIR/bin:\$PATH" >> ~/.bashrc
fi

if ! grep -q "$CUDA_INSTALL_DIR/lib64" ~/.bashrc; then
    echo "配置环境变量 LD_LIBRARY_PATH..."
    echo "export LD_LIBRARY_PATH=$CUDA_INSTALL_DIR/lib64:\$LD_LIBRARY_PATH" >> ~/.bashrc
fi

# 如果需要使用配置目录中的配置文件,可以在这里添加
# 例如:
# if [ -f "$CUDA_RUN_DIR/some_config_file" ]; then
#     source "$CUDA_RUN_DIR/some_config_file"
# fi

# 使环境变量生效
source ~/.bashrc

# 验证安装
echo "验证 CUDA 安装..."
nvcc --version

# 检查 GPU 状态
echo "检查 GPU 状态..."
nvidia-smi

echo "CUDA 12.4 的安装和配置已完成!"

cuda卸载

#!/bin/bash

# 设置要卸载的 CUDA 版本(留空则完全卸载)
CUDA_VERSION=""  # 例如 "12.4",如果完全卸载则留空 ""

# 完全卸载 CUDA
if [ -z "$CUDA_VERSION" ]; then
    echo "完全卸载 CUDA 及其相关组件..."
    apt-get --purge remove "*cublas*" "cuda*" "nsight*" "nvidia*" -y
    rm -rf /usr/local/cuda*
    echo "CUDA 已完全卸载。"
else
    # 卸载特定版本的 CUDA
    echo "卸载 CUDA 版本: $CUDA_VERSION..."
    apt-get --purge remove "cuda-$CUDA_VERSION*" -y
    rm -rf /usr/local/cuda-$CUDA_VERSION
    echo "CUDA $CUDA_VERSION 已卸载。"
fi

# 清理残留配置文件
echo "清理残留配置文件..."
apt-get autoremove -y
apt-get autoclean -y

# 删除环境变量中的 CUDA 配置
echo "删除环境变量中的 CUDA 配置..."
sed -i '/cuda-/d' ~/.bashrc
sed -i '/CUDA_HOME/d' ~/.bashrc
sed -i '/PATH=.*cuda/d' ~/.bashrc
sed -i '/LD_LIBRARY_PATH=.*cuda/d' ~/.bashrc

# 使环境变量更改生效
source ~/.bashrc

# 验证卸载
echo "验证 CUDA 是否已卸载..."
if ! command -v nvcc &> /dev/null; then
    echo "CUDA 卸载成功。"
else
    echo "CUDA 卸载失败,请手动检查。"
fi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值