From 5455a26a286813805f1575c5935e16d346072b04 Mon Sep 17 00:00:00 2001 From: The_miro Date: Mon, 18 May 2026 10:53:12 +0200 Subject: [PATCH] setup: add ollama and llama.cpp modules ollama.sh: installs from official repos, enables ollama.service, notes GPU sharing caveat with llama.cpp. For NVIDIA/AMD GPU variants use ollama-cuda or ollama-rocm from AUR instead. llama-cpp.sh: standalone inference CLI and server via yay (covers both official repos and AUR). Both modules coexist at the package level; docker/podman/cockpit modules confirmed conflict-free (all use --needed, podman+cockpit base packages already in core-packages.sh). Co-Authored-By: Claude Sonnet 4.6 --- setup/install-modules.sh | 8 ++++++++ setup/modules/optional-Modules/apps/llama-cpp.sh | 7 +++++++ setup/modules/optional-Modules/apps/ollama.sh | 12 ++++++++++++ setup/tui-install.sh | 8 ++++++++ 4 files changed, 35 insertions(+) create mode 100755 setup/modules/optional-Modules/apps/llama-cpp.sh create mode 100755 setup/modules/optional-Modules/apps/ollama.sh diff --git a/setup/install-modules.sh b/setup/install-modules.sh index db725b3..23984ab 100755 --- a/setup/install-modules.sh +++ b/setup/install-modules.sh @@ -84,6 +84,8 @@ run_module() { count_steps() { local sel="$1" TOTAL=0 + [[ "$sel" == *"ollama"* ]] && TOTAL=$(( TOTAL + 1 )) + [[ "$sel" == *"llama-cpp"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$sel" == *"claude"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$sel" == *"networking-cli"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$sel" == *"disk-recovery"* ]] && TOTAL=$(( TOTAL + 1 )) @@ -144,6 +146,8 @@ SELECTED=$(dialog --backtitle "$BACKTITLE" \ --title " Select Modules " \ --checklist "Space toggles · Enter confirms · Arrow keys scroll" 40 76 32 \ \ + "ollama" "Ollama local LLM runner + API server" off \ + "llama-cpp" "llama.cpp standalone inference CLI + server" off \ "claude" "Claude Code Anthropic CLI via npm" off \ "networking-cli" "Networking CLI nmap · nethogs · mitmproxy · httpie" off \ "disk-recovery" "Disk Recovery ddrescue · f3" off \ @@ -185,6 +189,8 @@ SELECTED=$(dialog --backtitle "$BACKTITLE" \ [[ -z "$SELECTED" ]] && { clear; echo "Nothing selected."; exit 0; } SUMMARY="" +[[ "$SELECTED" == *"ollama"* ]] && SUMMARY+=" ✦ Ollama\n" +[[ "$SELECTED" == *"llama-cpp"* ]] && SUMMARY+=" ✦ llama.cpp\n" [[ "$SELECTED" == *"claude"* ]] && SUMMARY+=" ✦ Claude Code\n" [[ "$SELECTED" == *"networking-cli"* ]] && SUMMARY+=" ✦ Networking CLI (nmap, nethogs, mitmproxy, httpie)\n" [[ "$SELECTED" == *"disk-recovery"* ]] && SUMMARY+=" ✦ Disk Recovery (ddrescue, f3)\n" @@ -228,6 +234,8 @@ dialog --backtitle "$BACKTITLE" \ count_steps "$SELECTED" +[[ "$SELECTED" == *"ollama"* ]] && run_module "Ollama" "$APPS/ollama.sh" +[[ "$SELECTED" == *"llama-cpp"* ]] && run_module "llama.cpp" "$APPS/llama-cpp.sh" [[ "$SELECTED" == *"claude"* ]] && run_module "Claude Code" "$APPS/claude.sh" [[ "$SELECTED" == *"networking-cli"* ]] && run_module "Networking CLI" "$APPS/networking-cli.sh" [[ "$SELECTED" == *"disk-recovery"* ]] && run_module "Disk Recovery" "$APPS/disk-recovery.sh" diff --git a/setup/modules/optional-Modules/apps/llama-cpp.sh b/setup/modules/optional-Modules/apps/llama-cpp.sh new file mode 100755 index 0000000..034a1c2 --- /dev/null +++ b/setup/modules/optional-Modules/apps/llama-cpp.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -euo pipefail + +# Provides standalone llama-cli, llama-server, and related tools. +# Ollama bundles its own copy of llama.cpp internally — the two coexist +# at the package level but share GPU resources at runtime. +yay -S --answerdiff None --answerclean All --noconfirm llama-cpp diff --git a/setup/modules/optional-Modules/apps/ollama.sh b/setup/modules/optional-Modules/apps/ollama.sh new file mode 100755 index 0000000..c911021 --- /dev/null +++ b/setup/modules/optional-Modules/apps/ollama.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -euo pipefail + +# GPU variants: install ollama-cuda (AUR) for NVIDIA or ollama-rocm (AUR) for AMD. +# The base package runs on CPU and auto-uses GPU libs if present at runtime. +sudo pacman -S --noconfirm --needed ollama + +sudo systemctl enable --now ollama.service + +echo "Ollama running on http://localhost:11434" +echo "Pull models with: ollama pull " +echo "Note: if llama.cpp is also installed, avoid running both GPU-bound at once." diff --git a/setup/tui-install.sh b/setup/tui-install.sh index 429db9b..bda033b 100755 --- a/setup/tui-install.sh +++ b/setup/tui-install.sh @@ -94,6 +94,8 @@ count_steps() { [[ "$c" == *"svc"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$c" == *"shell"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$c" == *"de"* && "$de" != "none" ]] && TOTAL=$(( TOTAL + 1 )) + [[ "$a" == *"ollama"* ]] && TOTAL=$(( TOTAL + 1 )) + [[ "$a" == *"llama-cpp"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"claude"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"networking-cli"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"disk-recovery"* ]] && TOTAL=$(( TOTAL + 1 )) @@ -180,6 +182,8 @@ fi SELECTED_APPS=$(dialog --backtitle "$BACKTITLE" \ --title " Applications " \ --checklist "Optional applications — installed after base components:" 40 76 32 \ + "ollama" "Ollama local LLM runner + API server" off \ + "llama-cpp" "llama.cpp standalone inference CLI + server" off \ "claude" "Claude Code Anthropic CLI via npm" off \ "networking-cli" "Networking CLI nmap · nethogs · mitmproxy · httpie" off \ "disk-recovery" "Disk Recovery ddrescue · f3" off \ @@ -227,6 +231,8 @@ SUMMARY="" if [[ -n "$SELECTED_APPS" ]]; then SUMMARY+="\n Applications:\n" + [[ "$SELECTED_APPS" == *"ollama"* ]] && SUMMARY+=" ✦ Ollama\n" + [[ "$SELECTED_APPS" == *"llama-cpp"* ]] && SUMMARY+=" ✦ llama.cpp\n" [[ "$SELECTED_APPS" == *"claude"* ]] && SUMMARY+=" ✦ Claude Code\n" [[ "$SELECTED_APPS" == *"networking-cli"* ]] && SUMMARY+=" ✦ Networking CLI (nmap, nethogs, mitmproxy, httpie)\n" [[ "$SELECTED_APPS" == *"disk-recovery"* ]] && SUMMARY+=" ✦ Disk Recovery (ddrescue, f3)\n" @@ -285,6 +291,8 @@ if [[ "$COMPONENTS" == *"de"* && "$DE" != "none" ]]; then fi # ── Installation: applications ──────────────────────────────────────────────── +[[ "$SELECTED_APPS" == *"ollama"* ]] && run_module "Ollama" "$APPS/ollama.sh" +[[ "$SELECTED_APPS" == *"llama-cpp"* ]] && run_module "llama.cpp" "$APPS/llama-cpp.sh" [[ "$SELECTED_APPS" == *"claude"* ]] && run_module "Claude Code" "$APPS/claude.sh" [[ "$SELECTED_APPS" == *"networking-cli"* ]] && run_module "Networking CLI" "$APPS/networking-cli.sh" [[ "$SELECTED_APPS" == *"disk-recovery"* ]] && run_module "Disk Recovery" "$APPS/disk-recovery.sh"