Skip to content

Commit 7fc1172

Browse files
docs: Add install.sh - Installation script for setting up DesktopAI
1 parent 02de669 commit 7fc1172

1 file changed

Lines changed: 155 additions & 0 deletions

File tree

install.sh

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
#!/bin/bash
2+
3+
# Linux Desktop AI Agent Installation Script
4+
# Installs all dependencies and sets up the agent
5+
6+
set -e
7+
8+
echo "=========================================="
9+
echo "Linux Desktop AI Agent - Installation"
10+
echo "=========================================="
11+
echo ""
12+
13+
# Colors for output
14+
RED='\033[0;31m'
15+
GREEN='\033[0;32m'
16+
YELLOW='\033[1;33m'
17+
NC='\033[0m' # No Color
18+
19+
# Check if running on Linux
20+
if [[ ! "$OSTYPE" == "linux-gnu"* ]]; then
21+
echo -e "${RED}Error: This script only works on Linux${NC}"
22+
exit 1
23+
fi
24+
25+
# Detect package manager
26+
if command -v apt &> /dev/null; then
27+
PKG_MANAGER="apt"
28+
INSTALL_CMD="sudo apt install -y"
29+
UPDATE_CMD="sudo apt update"
30+
elif command -v dnf &> /dev/null; then
31+
PKG_MANAGER="dnf"
32+
INSTALL_CMD="sudo dnf install -y"
33+
UPDATE_CMD="sudo dnf check-update"
34+
elif command -v pacman &> /dev/null; then
35+
PKG_MANAGER="pacman"
36+
INSTALL_CMD="sudo pacman -S --noconfirm"
37+
UPDATE_CMD="sudo pacman -Sy"
38+
else
39+
echo -e "${RED}Error: Unsupported package manager${NC}"
40+
exit 1
41+
fi
42+
43+
echo -e "${GREEN}Detected package manager: $PKG_MANAGER${NC}"
44+
echo ""
45+
46+
# Step 1: Update package lists
47+
echo -e "${YELLOW}Step 1: Updating package lists...${NC}"
48+
$UPDATE_CMD
49+
echo -e "${GREEN}✓ Package lists updated${NC}"
50+
echo ""
51+
52+
# Step 2: Install system dependencies
53+
echo -e "${YELLOW}Step 2: Installing system dependencies...${NC}"
54+
$INSTALL_CMD python3 python3-pip python3-dev libnotify-bin net-tools wireless-tools
55+
56+
# Optional security tools
57+
echo -e "${YELLOW}Installing optional security tools...${NC}"
58+
$INSTALL_CMD clamav rkhunter || true
59+
60+
echo -e "${GREEN}✓ System dependencies installed${NC}"
61+
echo ""
62+
63+
# Step 3: Install Python dependencies
64+
echo -e "${YELLOW}Step 3: Installing Python dependencies...${NC}"
65+
pip3 install -r requirements_linux.txt
66+
echo -e "${GREEN}✓ Python dependencies installed${NC}"
67+
echo ""
68+
69+
# Step 4: Check for Ollama
70+
echo -e "${YELLOW}Step 4: Checking for Ollama...${NC}"
71+
if command -v ollama &> /dev/null; then
72+
echo -e "${GREEN}✓ Ollama is installed${NC}"
73+
OLLAMA_VERSION_OUTPUT=$(ollama --version 2>&1)
74+
if echo "$OLLAMA_VERSION_OUTPUT" | grep -q "0\.13\.0"; then
75+
echo -e "${GREEN}✓ Verified Ollama 0.13.0${NC}"
76+
else
77+
echo -e "${YELLOW}⚠ Detected ${OLLAMA_VERSION_OUTPUT:-unknown}. This project targets Ollama 0.13.0.${NC}"
78+
echo " Please reinstall/upgrade Ollama if you encounter issues:"
79+
echo " curl -fsSL https://ollama.ai/install.sh | sh"
80+
fi
81+
else
82+
echo -e "${YELLOW}Ollama not found. Installing...${NC}"
83+
curl -fsSL https://ollama.ai/install.sh | sh
84+
echo -e "${GREEN}✓ Ollama installed${NC}"
85+
echo "Re-run 'ollama --version' to confirm it reports 0.13.0"
86+
fi
87+
echo ""
88+
89+
# Step 5: Pull Llama model
90+
echo -e "${YELLOW}Step 5: Pulling Llama 3.1 8B model...${NC}"
91+
echo "Note: This may take a few minutes on first run"
92+
ollama pull llama3.1:8b || echo -e "${YELLOW}Note: Make sure Ollama is running (ollama serve)${NC}"
93+
echo -e "${GREEN}✓ Llama model ready${NC}"
94+
echo ""
95+
96+
# Step 6: Make agent executable
97+
echo -e "${YELLOW}Step 6: Setting permissions...${NC}"
98+
chmod +x linux_desktop_agent.py
99+
chmod +x install.sh
100+
echo -e "${GREEN}✓ Permissions set${NC}"
101+
echo ""
102+
103+
# Step 7: Create configuration directory
104+
echo -e "${YELLOW}Step 7: Creating configuration directory...${NC}"
105+
mkdir -p ~/.config/linux-desktop-agent
106+
echo -e "${GREEN}✓ Configuration directory created${NC}"
107+
echo ""
108+
109+
# Step 8: Optional - Install systemd service
110+
echo -e "${YELLOW}Step 8: Optional - Install systemd service?${NC}"
111+
read -p "Install systemd service for auto-start? (y/n) " -n 1 -r
112+
echo
113+
if [[ $REPLY =~ ^[Yy]$ ]]; then
114+
echo "Installing systemd service..."
115+
sudo cp linux-desktop-agent.service /etc/systemd/system/
116+
sudo systemctl daemon-reload
117+
sudo systemctl enable linux-desktop-agent.service
118+
echo -e "${GREEN}✓ Systemd service installed${NC}"
119+
echo " Start with: sudo systemctl start linux-desktop-agent"
120+
echo " Status: sudo systemctl status linux-desktop-agent"
121+
echo " Logs: journalctl -u linux-desktop-agent -f"
122+
fi
123+
echo ""
124+
125+
# Step 9: Verify installation
126+
echo -e "${YELLOW}Step 9: Verifying installation...${NC}"
127+
echo "Checking Python..."
128+
python3 --version
129+
echo "Checking psutil..."
130+
python3 -c "import psutil; print('✓ psutil OK')"
131+
echo "Checking Ollama..."
132+
curl -s http://localhost:11434/api/tags > /dev/null && echo "✓ Ollama running" || echo "⚠ Ollama not running (start with: ollama serve)"
133+
echo ""
134+
135+
# Installation complete
136+
echo -e "${GREEN}=========================================="
137+
echo "Installation Complete!"
138+
echo "==========================================${NC}"
139+
echo ""
140+
echo "Next steps:"
141+
echo "1. Start Ollama (if not already running):"
142+
echo " ${YELLOW}ollama serve${NC}"
143+
echo ""
144+
echo "2. Run the agent in interactive mode:"
145+
echo " ${YELLOW}python3 linux_desktop_agent.py${NC}"
146+
echo ""
147+
echo "3. Or execute a single command:"
148+
echo " ${YELLOW}python3 linux_desktop_agent.py \"check my system health\"${NC}"
149+
echo ""
150+
echo "4. View help:"
151+
echo " ${YELLOW}python3 linux_desktop_agent.py interactive${NC}"
152+
echo " Then type: ${YELLOW}help${NC}"
153+
echo ""
154+
echo "Documentation: ${YELLOW}README_LINUX.md${NC}"
155+
echo ""

0 commit comments

Comments
 (0)