|
1 | | -# Prerequisites Installer Scripts |
| 1 | +# Prerequisite Installer Scripts |
2 | 2 |
|
3 | | -This repository contains three installer scripts that automatically install the required dependencies for your project across different operating systems. |
| 3 | +Scripts in this directory install the tools needed for the project: |
4 | 4 |
|
5 | | -## Overview |
| 5 | +- **Python 3** |
| 6 | +- **uv** – fast Python package and project manager |
| 7 | +- **crush** – AI coding agent |
6 | 8 |
|
7 | | -The installer scripts will install the following dependencies: |
| 9 | +## Scripts |
8 | 10 |
|
9 | | -### Required Dependencies |
10 | | -- **Git** - Version control system |
11 | | -- **Python 3** - Programming language and runtime |
12 | | -- **uv** - Fast Python package manager and project manager |
13 | | -- **crush** - AI coding agent for terminal |
| 11 | +- `install_prerequisites_macos.sh` |
| 12 | +- `install_prerequisites_linux.sh` |
| 13 | +- `install_prerequisites_windows.ps1` (with wrapper `install_prerequisites_windows.bat`) |
14 | 14 |
|
15 | | -### Optional Dependencies |
16 | | -- **ghostty** - Modern, fast terminal emulator (recommended but optional) |
| 15 | +Run the script that matches your platform: |
17 | 16 |
|
18 | | -## Platform-Specific Scripts |
19 | | - |
20 | | -### 1. macOS Installer (`install_prerequisites_macos.sh`) |
21 | | - |
22 | | -**Requirements:** |
23 | | -- macOS 10.15 or later |
24 | | -- Internet connection |
25 | | -- Terminal access |
26 | | - |
27 | | -**Installation Methods Used:** |
28 | | -- **Homebrew** (primary method) - Automatically installs if not present |
29 | | -- **Xcode Command Line Tools** (fallback for Git and Python) |
30 | | -- **Standalone installers** (fallback for uv) |
31 | | -- **Go installation** (fallback for crush) |
32 | | - |
33 | | -**Usage:** |
34 | 17 | ```bash |
35 | | -# Download and run the script |
36 | | -curl -O https://raw.githubusercontent.com/your-repo/install_prerequisites_macos.sh |
37 | | -chmod +x install_prerequisites_macos.sh |
| 18 | +# macOS |
38 | 19 | ./install_prerequisites_macos.sh |
39 | | -``` |
40 | | - |
41 | | -**What it does:** |
42 | | -1. Installs Homebrew if not present |
43 | | -2. Installs Git via Homebrew or Xcode Command Line Tools |
44 | | -3. Installs Python via Homebrew or Xcode Command Line Tools |
45 | | -4. Installs uv via Homebrew or standalone installer |
46 | | -5. Installs crush via Homebrew or Go |
47 | | -6. Optionally installs ghostty via Homebrew or manual download |
48 | | - |
49 | | -### 2. Linux Installer (`install_prerequisites_linux.sh`) |
50 | | - |
51 | | -**Requirements:** |
52 | | -- Linux distribution (Ubuntu, Debian, Fedora, RHEL, CentOS, Arch, openSUSE, Alpine) |
53 | | -- Internet connection |
54 | | -- sudo privileges |
55 | | -- Terminal access |
56 | | - |
57 | | -**Supported Distributions:** |
58 | | -- **Ubuntu/Debian** - Uses apt package manager |
59 | | -- **Fedora/RHEL/CentOS** - Uses dnf/yum package manager |
60 | | -- **Arch Linux/Manjaro** - Uses pacman and AUR |
61 | | -- **openSUSE/SLES** - Uses zypper package manager |
62 | | -- **Alpine Linux** - Uses apk package manager |
63 | 20 |
|
64 | | -**Usage:** |
65 | | -```bash |
66 | | -# Download and run the script |
67 | | -curl -O https://raw.githubusercontent.com/your-repo/install_prerequisites_linux.sh |
68 | | -chmod +x install_prerequisites_linux.sh |
| 21 | +# Linux |
69 | 22 | ./install_prerequisites_linux.sh |
70 | | -``` |
71 | | - |
72 | | -**What it does:** |
73 | | -1. Detects your Linux distribution automatically |
74 | | -2. Updates package manager repositories |
75 | | -3. Installs Git via distribution package manager |
76 | | -4. Installs Python via distribution package manager |
77 | | -5. Installs uv via distribution packages or standalone installer |
78 | | -6. Installs crush via distribution repositories or Go |
79 | | -7. Optionally installs ghostty via distribution packages or community packages |
80 | | - |
81 | | -### 3. Windows Installer (`install_prerequisites_windows.ps1`) |
82 | | - |
83 | | -**Requirements:** |
84 | | -- Windows 10 or later |
85 | | -- PowerShell 5.1 or later |
86 | | -- Internet connection |
87 | | -- Administrator privileges (recommended) |
88 | 23 |
|
89 | | -**Installation Methods Used:** |
90 | | -- **WinGet** (Windows Package Manager) - Primary method |
91 | | -- **Scoop** - Alternative package manager |
92 | | -- **Chocolatey** - Alternative package manager |
93 | | -- **npm** - For crush installation |
94 | | -- **Manual downloads** - Fallback method |
95 | | - |
96 | | -**Usage:** |
97 | | -```powershell |
98 | | -# Download and run the script in PowerShell (Run as Administrator recommended) |
99 | | -Invoke-WebRequest -Uri "https://raw.githubusercontent.com/your-repo/install_prerequisites_windows.ps1" -OutFile "install_prerequisites_windows.ps1" |
100 | | -Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser |
101 | | -.\install_prerequisites_windows.ps1 |
| 24 | +# Windows (PowerShell) |
| 25 | +powershell -ExecutionPolicy RemoteSigned -File install_prerequisites_windows.ps1 |
102 | 26 | ``` |
103 | 27 |
|
104 | | -**What it does:** |
105 | | -1. Installs WinGet if not present |
106 | | -2. Installs Windows Terminal |
107 | | -3. Installs Git via WinGet, Chocolatey, or Scoop |
108 | | -4. Installs Python via WinGet, Chocolatey, or Scoop |
109 | | -5. Installs uv via WinGet, Scoop, or standalone installer |
110 | | -6. Installs crush via WinGet, Scoop, or npm |
111 | | -7. Optionally installs ghostty via manual download |
112 | | - |
113 | | -## Features |
114 | | - |
115 | | -### Smart Detection |
116 | | -- All scripts detect if dependencies are already installed |
117 | | -- Skip installation if a dependency is already present |
118 | | -- Provide version information for installed dependencies |
119 | | - |
120 | | -### Multiple Installation Methods |
121 | | -- Each script tries multiple installation methods |
122 | | -- Falls back to alternative methods if primary method fails |
123 | | -- Provides manual installation instructions as last resort |
124 | | - |
125 | | -### User-Friendly Output |
126 | | -- Color-coded status messages |
127 | | -- Clear success/warning/error indicators |
128 | | -- Progress information throughout installation |
129 | | - |
130 | | -### Safety Features |
131 | | -- Linux script prevents running as root |
132 | | -- Windows script handles execution policy |
133 | | -- All scripts use error handling to prevent partial installations |
134 | | - |
135 | | -## Troubleshooting |
136 | | - |
137 | | -### Common Issues |
138 | | - |
139 | | -**macOS:** |
140 | | -- If Homebrew installation fails, install Xcode Command Line Tools manually: `xcode-select --install` |
141 | | -- If you get permission errors, ensure your user account has admin privileges |
142 | | - |
143 | | -**Linux:** |
144 | | -- If package manager updates fail, check your internet connection |
145 | | -- For distribution-specific issues, ensure your system is up to date |
146 | | -- Some distributions may require enabling additional repositories |
147 | | - |
148 | | -**Windows:** |
149 | | -- If PowerShell execution is blocked, run: `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser` |
150 | | -- If WinGet is not available, the script will install alternative package managers |
151 | | -- Run PowerShell as Administrator for best results |
152 | | - |
153 | | -### Manual Installation |
154 | | - |
155 | | -If the automated scripts fail, you can install dependencies manually: |
156 | | - |
157 | | -1. **Git**: Visit [git-scm.com](https://git-scm.com/downloads) |
158 | | -2. **Python**: Visit [python.org](https://www.python.org/downloads/) |
159 | | -3. **uv**: Visit [docs.astral.sh/uv](https://docs.astral.sh/uv/getting-started/installation/) |
160 | | -4. **crush**: Visit [github.com/charmbracelet/crush](https://github.com/charmbracelet/crush) |
161 | | -5. **ghostty**: Visit [ghostty.org](https://ghostty.org/docs/install/binary) |
162 | | - |
163 | | -## Verification |
164 | | - |
165 | | -After running any installer script, verify the installations by running: |
| 28 | +After running, verify the installations: |
166 | 29 |
|
167 | 30 | ```bash |
168 | | -# Check versions of installed tools |
169 | | -git --version |
170 | 31 | python3 --version # or python --version on Windows |
171 | 32 | uv --version |
172 | 33 | crush --version |
173 | | -ghostty --version # if installed |
174 | 34 | ``` |
175 | 35 |
|
176 | | -## Support |
177 | | - |
178 | | -If you encounter issues with these installer scripts: |
179 | | - |
180 | | -1. Check the troubleshooting section above |
181 | | -2. Ensure your system meets the requirements |
182 | | -3. Try running the script again (it's safe to re-run) |
183 | | -4. For persistent issues, install dependencies manually using the links provided |
184 | | - |
185 | | -## License |
186 | | - |
187 | | -These installer scripts are provided as-is for convenience. Please refer to the individual software licenses for each dependency being installed. |
188 | | - |
| 36 | +You can re-run the scripts safely if needed. |
0 commit comments