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 <noreply@anthropic.com>main
parent
b9b32c59c4
commit
5455a26a28
|
|
@ -84,6 +84,8 @@ run_module() {
|
||||||
count_steps() {
|
count_steps() {
|
||||||
local sel="$1"
|
local sel="$1"
|
||||||
TOTAL=0
|
TOTAL=0
|
||||||
|
[[ "$sel" == *"ollama"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||||
|
[[ "$sel" == *"llama-cpp"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||||
[[ "$sel" == *"claude"* ]] && TOTAL=$(( TOTAL + 1 ))
|
[[ "$sel" == *"claude"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||||
[[ "$sel" == *"networking-cli"* ]] && TOTAL=$(( TOTAL + 1 ))
|
[[ "$sel" == *"networking-cli"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||||
[[ "$sel" == *"disk-recovery"* ]] && TOTAL=$(( TOTAL + 1 ))
|
[[ "$sel" == *"disk-recovery"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||||
|
|
@ -144,6 +146,8 @@ SELECTED=$(dialog --backtitle "$BACKTITLE" \
|
||||||
--title " Select Modules " \
|
--title " Select Modules " \
|
||||||
--checklist "Space toggles · Enter confirms · Arrow keys scroll" 40 76 32 \
|
--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 \
|
"claude" "Claude Code Anthropic CLI via npm" off \
|
||||||
"networking-cli" "Networking CLI nmap · nethogs · mitmproxy · httpie" off \
|
"networking-cli" "Networking CLI nmap · nethogs · mitmproxy · httpie" off \
|
||||||
"disk-recovery" "Disk Recovery ddrescue · f3" off \
|
"disk-recovery" "Disk Recovery ddrescue · f3" off \
|
||||||
|
|
@ -185,6 +189,8 @@ SELECTED=$(dialog --backtitle "$BACKTITLE" \
|
||||||
[[ -z "$SELECTED" ]] && { clear; echo "Nothing selected."; exit 0; }
|
[[ -z "$SELECTED" ]] && { clear; echo "Nothing selected."; exit 0; }
|
||||||
|
|
||||||
SUMMARY=""
|
SUMMARY=""
|
||||||
|
[[ "$SELECTED" == *"ollama"* ]] && SUMMARY+=" ✦ Ollama\n"
|
||||||
|
[[ "$SELECTED" == *"llama-cpp"* ]] && SUMMARY+=" ✦ llama.cpp\n"
|
||||||
[[ "$SELECTED" == *"claude"* ]] && SUMMARY+=" ✦ Claude Code\n"
|
[[ "$SELECTED" == *"claude"* ]] && SUMMARY+=" ✦ Claude Code\n"
|
||||||
[[ "$SELECTED" == *"networking-cli"* ]] && SUMMARY+=" ✦ Networking CLI (nmap, nethogs, mitmproxy, httpie)\n"
|
[[ "$SELECTED" == *"networking-cli"* ]] && SUMMARY+=" ✦ Networking CLI (nmap, nethogs, mitmproxy, httpie)\n"
|
||||||
[[ "$SELECTED" == *"disk-recovery"* ]] && SUMMARY+=" ✦ Disk Recovery (ddrescue, f3)\n"
|
[[ "$SELECTED" == *"disk-recovery"* ]] && SUMMARY+=" ✦ Disk Recovery (ddrescue, f3)\n"
|
||||||
|
|
@ -228,6 +234,8 @@ dialog --backtitle "$BACKTITLE" \
|
||||||
|
|
||||||
count_steps "$SELECTED"
|
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" == *"claude"* ]] && run_module "Claude Code" "$APPS/claude.sh"
|
||||||
[[ "$SELECTED" == *"networking-cli"* ]] && run_module "Networking CLI" "$APPS/networking-cli.sh"
|
[[ "$SELECTED" == *"networking-cli"* ]] && run_module "Networking CLI" "$APPS/networking-cli.sh"
|
||||||
[[ "$SELECTED" == *"disk-recovery"* ]] && run_module "Disk Recovery" "$APPS/disk-recovery.sh"
|
[[ "$SELECTED" == *"disk-recovery"* ]] && run_module "Disk Recovery" "$APPS/disk-recovery.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
|
||||||
|
|
@ -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 <model>"
|
||||||
|
echo "Note: if llama.cpp is also installed, avoid running both GPU-bound at once."
|
||||||
|
|
@ -94,6 +94,8 @@ count_steps() {
|
||||||
[[ "$c" == *"svc"* ]] && TOTAL=$(( TOTAL + 1 ))
|
[[ "$c" == *"svc"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||||
[[ "$c" == *"shell"* ]] && TOTAL=$(( TOTAL + 1 ))
|
[[ "$c" == *"shell"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||||
[[ "$c" == *"de"* && "$de" != "none" ]] && 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" == *"claude"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||||
[[ "$a" == *"networking-cli"* ]] && TOTAL=$(( TOTAL + 1 ))
|
[[ "$a" == *"networking-cli"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||||
[[ "$a" == *"disk-recovery"* ]] && TOTAL=$(( TOTAL + 1 ))
|
[[ "$a" == *"disk-recovery"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||||
|
|
@ -180,6 +182,8 @@ fi
|
||||||
SELECTED_APPS=$(dialog --backtitle "$BACKTITLE" \
|
SELECTED_APPS=$(dialog --backtitle "$BACKTITLE" \
|
||||||
--title " Applications " \
|
--title " Applications " \
|
||||||
--checklist "Optional applications — installed after base components:" 40 76 32 \
|
--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 \
|
"claude" "Claude Code Anthropic CLI via npm" off \
|
||||||
"networking-cli" "Networking CLI nmap · nethogs · mitmproxy · httpie" off \
|
"networking-cli" "Networking CLI nmap · nethogs · mitmproxy · httpie" off \
|
||||||
"disk-recovery" "Disk Recovery ddrescue · f3" off \
|
"disk-recovery" "Disk Recovery ddrescue · f3" off \
|
||||||
|
|
@ -227,6 +231,8 @@ SUMMARY=""
|
||||||
|
|
||||||
if [[ -n "$SELECTED_APPS" ]]; then
|
if [[ -n "$SELECTED_APPS" ]]; then
|
||||||
SUMMARY+="\n Applications:\n"
|
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" == *"claude"* ]] && SUMMARY+=" ✦ Claude Code\n"
|
||||||
[[ "$SELECTED_APPS" == *"networking-cli"* ]] && SUMMARY+=" ✦ Networking CLI (nmap, nethogs, mitmproxy, httpie)\n"
|
[[ "$SELECTED_APPS" == *"networking-cli"* ]] && SUMMARY+=" ✦ Networking CLI (nmap, nethogs, mitmproxy, httpie)\n"
|
||||||
[[ "$SELECTED_APPS" == *"disk-recovery"* ]] && SUMMARY+=" ✦ Disk Recovery (ddrescue, f3)\n"
|
[[ "$SELECTED_APPS" == *"disk-recovery"* ]] && SUMMARY+=" ✦ Disk Recovery (ddrescue, f3)\n"
|
||||||
|
|
@ -285,6 +291,8 @@ if [[ "$COMPONENTS" == *"de"* && "$DE" != "none" ]]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ── Installation: applications ────────────────────────────────────────────────
|
# ── 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" == *"claude"* ]] && run_module "Claude Code" "$APPS/claude.sh"
|
||||||
[[ "$SELECTED_APPS" == *"networking-cli"* ]] && run_module "Networking CLI" "$APPS/networking-cli.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"
|
[[ "$SELECTED_APPS" == *"disk-recovery"* ]] && run_module "Disk Recovery" "$APPS/disk-recovery.sh"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue