南昌做网站的公司多不多,企业管理培训免费课程,网页制作平台排行榜,南宁大型网站开发网络环境不理想#xff0c;经常在官方的linux安装脚本执行时卡住#xff0c;其实主要是下载文件卡住#xff0c;于是我想到了是否可以把其中下载的过程显化、分步#xff0c;这样更可控#xff0c;于是修改了官方的install.sh
#!/bin/sh
# This script installs Ollama o…网络环境不理想经常在官方的linux安装脚本执行时卡住其实主要是下载文件卡住于是我想到了是否可以把其中下载的过程显化、分步这样更可控于是修改了官方的install.sh
#!/bin/sh
# This script installs Ollama on Linux.
# It detects the current operating system architecture and installs the appropriate version of Ollama.set -eured$( (/usr/bin/tput bold || :; /usr/bin/tput setaf 1 || :) 2-)
plain$( (/usr/bin/tput sgr0 || :) 2-)status() { echo $* 2; }
error() { echo ${red}ERROR:${plain} $*; exit 1; }
warning() { echo ${red}WARNING:${plain} $*; }# 指定下载目录
DOWNLOAD_DIR/home/xgocn/下载
if [ ! -d $DOWNLOAD_DIR ]; thenerror The specified download directory $DOWNLOAD_DIR does not exist. Please create it or specify a different directory.
ficleanup() { :; } # 清理函数不再需要
trap cleanup EXITavailable() { command -v $1 /dev/null; }
require() {local MISSINGfor TOOL in $*; doif ! available $TOOL; thenMISSING$MISSING $TOOLfidoneecho $MISSING
}[ $(uname -s) Linux ] || error This script is intended to run on Linux only.ARCH$(uname -m)
case $ARCH inx86_64) ARCHamd64 ;;aarch64|arm64) ARCHarm64 ;;*) error Unsupported architecture: $ARCH ;;
esacIS_WSL2falseKERN$(uname -r)
case $KERN in*icrosoft*WSL2 | *icrosoft*wsl2) IS_WSL2true;;*icrosoft) error Microsoft WSL1 is not currently supported. Please use WSL2 with wsl --set-version distro 2 ;;*) ;;
esacVER_PARAM${OLLAMA_VERSION:?version$OLLAMA_VERSION}SUDO
if [ $(id -u) -ne 0 ]; then# Running as root, no need for sudoif ! available sudo; thenerror This script requires superuser permissions. Please re-run as root.fiSUDOsudo
fiNEEDS$(require curl awk grep sed tee xargs)
if [ -n $NEEDS ]; thenstatus ERROR: The following tools are required but missing:for NEED in $NEEDS; doecho - $NEEDdoneexit 1
fifor BINDIR in /usr/local/bin /usr/bin /bin; doecho $PATH | grep -q $BINDIR break || continue
done
OLLAMA_INSTALL_DIR$(dirname ${BINDIR})if [ -d $OLLAMA_INSTALL_DIR/lib/ollama ] ; thenstatus Cleaning up old version at $OLLAMA_INSTALL_DIR/lib/ollama$SUDO rm -rf $OLLAMA_INSTALL_DIR/lib/ollama
fi
status Installing ollama to $OLLAMA_INSTALL_DIR
$SUDO install -o0 -g0 -m755 -d $BINDIR
$SUDO install -o0 -g0 -m755 -d $OLLAMA_INSTALL_DIR/lib/ollama# 修改下载逻辑提示用户手动下载
DOWNLOAD_URLhttps://ollama.com/download/ollama-linux-$ARCH.tgz$VER_PARAM
status Please download the Ollama Linux $ARCH bundle from the following URL and place it in $DOWNLOAD_DIR:
echo $DOWNLOAD_URL
read -p Press [Enter] after placing the file in $DOWNLOAD_DIR to continue...# 检查用户是否已将文件放置到指定位置
TGZ_FILE$DOWNLOAD_DIR/ollama-linux-$ARCH.tgz
if [ ! -f $TGZ_FILE ]; thenerror The file was not found in $DOWNLOAD_DIR. Please download it and try again.
fistatus Extracting Ollama...
$SUDO tar -xzf $TGZ_FILE -C $OLLAMA_INSTALL_DIRif [ $OLLAMA_INSTALL_DIR/bin/ollama ! $BINDIR/ollama ] ; thenstatus Making ollama accessible in the PATH in $BINDIR$SUDO ln -sf $OLLAMA_INSTALL_DIR/ollama $BINDIR/ollama
fi# 检测GPU并安装相关依赖
if [ -f /etc/nv_tegra_release ] ; thenif grep R36 /etc/nv_tegra_release /dev/null ; thenstatus Downloading JetPack 6 componentsJETPACK_URLhttps://ollama.com/download/ollama-linux-$ARCH-jetpack6.tgz$VER_PARAMstatus Please download the JetPack 6 components from the following URL and place it in $DOWNLOAD_DIR:echo $JETPACK_URLread -p Press [Enter] after placing the file in $DOWNLOAD_DIR to continue...JETPACK_FILE$DOWNLOAD_DIR/ollama-linux-$ARCH-jetpack6.tgzif [ ! -f $JETPACK_FILE ]; thenerror The file was not found in $DOWNLOAD_DIR. Please download it and try again.fi$SUDO tar -xzf $JETPACK_FILE -C $OLLAMA_INSTALL_DIRelif grep R35 /etc/nv_tegra_release /dev/null ; thenstatus Downloading JetPack 5 componentsJETPACK_URLhttps://ollama.com/download/ollama-linux-$ARCH-jetpack5.tgz$VER_PARAMstatus Please download the JetPack 5 components from the following URL and place it in $DOWNLOAD_DIR:echo $JETPACK_URLread -p Press [Enter] after placing the file in $DOWNLOAD_DIR to continue...JETPACK_FILE$DOWNLOAD_DIR/ollama-linux-$ARCH-jetpack5.tgzif [ ! -f $JETPACK_FILE ]; thenerror The file was not found in $DOWNLOAD_DIR. Please download it and try again.fi$SUDO tar -xzf $JETPACK_FILE -C $OLLAMA_INSTALL_DIRelsewarning Unsupported JetPack version detected. GPU may not be supportedfi
fiinstall_success() {status The Ollama API is now available at 127.0.0.1:11434.status Install complete. Run ollama from the command line.
}
trap install_success EXIT# Everything from this point onwards is optional.configure_systemd() {if ! id ollama /dev/null 21; thenstatus Creating ollama user...$SUDO useradd -r -s /bin/false -U -m -d /usr/share/ollama ollamafiif getent group render /dev/null 21; thenstatus Adding ollama user to render group...$SUDO usermod -a -G render ollamafiif getent group video /dev/null 21; thenstatus Adding ollama user to video group...$SUDO usermod -a -G video ollamafistatus Adding current user to ollama group...$SUDO usermod -a -G ollama $(whoami)status Creating ollama systemd service...cat EOF | $SUDO tee /etc/systemd/system/ollama.service /dev/null
[Unit]
DescriptionOllama Service
Afternetwork-online.target[Service]
ExecStart$BINDIR/ollama serve
Userollama
Groupollama
Restartalways
RestartSec3
EnvironmentPATH$PATH[Install]
WantedBydefault.target
EOFSYSTEMCTL_RUNNING$(systemctl is-system-running || true)case $SYSTEMCTL_RUNNING inrunning|degraded)status Enabling and starting ollama service...$SUDO systemctl daemon-reload$SUDO systemctl enable ollamastart_service() { $SUDO systemctl restart ollama; }trap start_service EXIT;;*)warning systemd is not runningif [ $IS_WSL2 true ]; thenwarning see https://learn.microsoft.com/en-us/windows/wsl/systemd#how-to-enable-systemd to enable itfi;;esac
}if available systemctl; thenconfigure_systemd
fi# WSL2 only supports GPUs via nvidia passthrough
# so check for nvidia-smi to determine if GPU is available
if [ $IS_WSL2 true ]; thenif available nvidia-smi [ -n $(nvidia-smi | grep -o CUDA Version: [0-9]*\.[0-9]*) ]; thenstatus Nvidia GPU detected.fiinstall_successexit 0
fi# Dont attempt to install drivers on Jetson systems
if [ -f /etc/nv_tegra_release ] ; thenstatus NVIDIA JetPack ready.install_successexit 0
fi# Install GPU dependencies on Linux
if ! available lspci ! available lshw; thenwarning Unable to detect NVIDIA/AMD GPU. Install lspci or lshw to automatically detect and install GPU dependencies.exit 0
ficheck_gpu() {# Look for devices based on vendor ID for NVIDIA and AMDcase $1 inlspci)case $2 innvidia) available lspci lspci -d 10de: | grep -q NVIDIA || return 1 ;;amdgpu) available lspci lspci -d 1002: | grep -q AMD || return 1 ;;esac ;;lshw)case $2 innvidia) available lshw $SUDO lshw -c display -numeric -disable network | grep -q vendor: .* \[10DE\] || return 1 ;;amdgpu) available lshw $SUDO lshw -c display -numeric -disable network | grep -q vendor: .* \[1002\] || return 1 ;;esac ;;nvidia-smi) available nvidia-smi || return 1 ;;esac
}if check_gpu nvidia-smi; thenstatus NVIDIA GPU installed.exit 0
fiif ! check_gpu lspci nvidia ! check_gpu lshw nvidia ! check_gpu lspci amdgpu ! check_gpu lshw amdgpu; theninstall_successwarning No NVIDIA/AMD GPU detected. Ollama will run in CPU-only mode.exit 0
fiif check_gpu lspci amdgpu || check_gpu lshw amdgpu; thenstatus Downloading Linux ROCm $ARCH bundleROCM_URLhttps://ollama.com/download/ollama-linux-$ARCH-rocm.tgz$VER_PARAMstatus Please download the ROCm bundle from the following URL and place it in $DOWNLOAD_DIR:echo $ROCM_URLread -p Press [Enter] after placing the file in $DOWNLOAD_DIR to continue...ROCM_FILE$DOWNLOAD_DIR/ollama-linux-$ARCH-rocm.tgzif [ ! -f $ROCM_FILE ]; thenerror The file was not found in $DOWNLOAD_DIR. Please download it and try again.fi$SUDO tar -xzf $ROCM_FILE -C $OLLAMA_INSTALL_DIRinstall_successstatus AMD GPU ready.exit 0
fiCUDA_REPO_ERR_MSGNVIDIA GPU detected, but your OS and Architecture are not supported by NVIDIA. Please install the CUDA driver manually https://docs.nvidia.com/cuda/cuda-installation-guide-linux/
# ref: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#rhel-7-centos-7
# ref: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#rhel-8-rocky-8
# ref: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#rhel-9-rocky-9
# ref: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#fedora
install_cuda_driver_yum() {status Installing NVIDIA repository...case $PACKAGE_MANAGER inyum)$SUDO $PACKAGE_MANAGER -y install yum-utilsif curl -I --silent --fail --location $CUDA_REPO_URL
只要在本地运行bash install.sh即可在安装中会提示你手动下载指定的文件到指定的目录手动下载后回车继续执行 记住把 /home/xgocn/下载 改为你指定的下载目录