diff --git a/install/ollama-install.sh b/install/ollama-install.sh index fd0baac..39e1ae6 100644 --- a/install/ollama-install.sh +++ b/install/ollama-install.sh @@ -16,23 +16,21 @@ update_os msg_info "Installing Dependencies" $STD apt-get install -y \ - gpg \ - git \ - build-essential \ - pkg-config \ - cmake + gpg \ + build-essential \ + pkg-config msg_ok "Installed Dependencies" -msg_info "Installing Golang" -set +o pipefail -temp_file=$(mktemp) -golang_tarball=$(curl -fsSL https://go.dev/dl/ | grep -oP 'go[\d\.]+\.linux-amd64\.tar\.gz' | head -n 1) -curl -fsSL "https://golang.org/dl/${golang_tarball}" -o "$temp_file" -tar -C /usr/local -xzf "$temp_file" -ln -sf /usr/local/go/bin/go /usr/local/bin/go -rm -f "$temp_file" -set -o pipefail -msg_ok "Installed Golang" +# msg_info "Installing Golang" +# set +o pipefail +# temp_file=$(mktemp) +# golang_tarball=$(curl -fsSL https://go.dev/dl/ | grep -oP 'go[\d\.]+\.linux-amd64\.tar\.gz' | head -n 1) +# curl -fsSL "https://golang.org/dl/${golang_tarball}" -o "$temp_file" +# tar -C /usr/local -xzf "$temp_file" +# ln -sf /usr/local/go/bin/go /usr/local/bin/go +# rm -f "$temp_file" +# set -o pipefail +# msg_ok "Installed Golang" msg_info "Setting up Intel® Repositories" mkdir -p /etc/apt/keyrings @@ -46,25 +44,42 @@ msg_ok "Set up Intel® Repositories" msg_info "Setting Up Hardware Acceleration" $STD apt-get -y install {va-driver-all,ocl-icd-libopencl1,intel-opencl-icd,vainfo,intel-gpu-tools,intel-level-zero-gpu,level-zero,level-zero-dev} if [[ "$CTTYPE" == "0" ]]; then - chgrp video /dev/dri - chmod 755 /dev/dri - chmod 660 /dev/dri/* - $STD adduser $(id -u -n) video - $STD adduser $(id -u -n) render + chgrp video /dev/dri + chmod 755 /dev/dri + chmod 660 /dev/dri/* + $STD adduser $(id -u -n) video + $STD adduser $(id -u -n) render fi msg_ok "Set Up Hardware Acceleration" msg_info "Installing Intel® oneAPI Base Toolkit (Patience)" -$STD apt-get install -y --no-install-recommends intel-basekit-2024.1 +$STD apt-get install -y intel-basekit-2025.1 msg_ok "Installed Intel® oneAPI Base Toolkit" msg_info "Installing Ollama (Patience)" -$STD git clone https://github.com/ollama/ollama.git /opt/ollama -cd /opt/ollama -$STD go generate ./... -$STD go build . +ARCH=$(uname -m) +OLLAMA_INSTALL_DIR="/usr/local/lib/ollama" +BINDIR="/usr/local/bin" +mkdir -p "$OLLAMA_INSTALL_DIR" +curl --fail --show-error --location --progress-bar \ + "https://ollama.com/download/ollama-linux-${ARCH}.tgz${OLLAMA_VERSION:+?version=$OLLAMA_VERSION}" | + tar -xzf - -C "$OLLAMA_INSTALL_DIR" +ln -sf "$OLLAMA_INSTALL_DIR/ollama" "$BINDIR/ollama" +#$STD git clone https://github.com/ollama/ollama.git /opt/ollama +#cd /opt/ollama +#$STD go generate ./... +#$STD go build . msg_ok "Installed Ollama" +msg_info "Creating ollama User and Group" +if ! id ollama >/dev/null 2>&1; then + useradd -r -s /usr/sbin/nologin -U -m -d /usr/share/ollama ollama +fi +$STD usermod -aG render ollama || true +$STD usermod -aG video ollama || true +$STD usermod -aG ollama $(id -u -n) +msg_ok "Created ollama User and adjusted Groups" + msg_info "Creating Service" cat </etc/systemd/system/ollama.service [Unit] @@ -73,7 +88,7 @@ After=network-online.target [Service] Type=exec -ExecStart=/opt/ollama/ollama serve +ExecStart=/usr/local/bin/ollama serve Environment=HOME=$HOME Environment=OLLAMA_INTEL_GPU=true Environment=OLLAMA_HOST=0.0.0.0 @@ -95,4 +110,4 @@ customize msg_info "Cleaning up" $STD apt-get -y autoremove $STD apt-get -y autoclean -msg_ok "Cleaned" \ No newline at end of file +msg_ok "Cleaned"