Skip to content

Commit 7305101

Browse files
Copilot0xrinegade
andcommitted
Add comprehensive Solana development tools installation
Co-authored-by: 0xrinegade <[email protected]>
1 parent 46ed245 commit 7305101

File tree

5 files changed

+231
-1
lines changed

5 files changed

+231
-1
lines changed

README.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,69 @@ See [docs/ISO_BUILDING.md](docs/ISO_BUILDING.md) for detailed documentation.
115115

116116
Choose the most specific architecture that matches your processor for optimal performance.
117117

118+
## Solana Development Environment
119+
120+
OSVMarchi includes a comprehensive Solana development environment with pre-installed tools and pinned versions for deterministic builds.
121+
122+
### Included Solana Tools
123+
124+
The following Solana development tools are installed automatically during OSVMarchi setup:
125+
126+
| Tool | Version | Description |
127+
|------|---------|-------------|
128+
| **Solana CLI** | v1.18.18 | Official Solana command-line interface |
129+
| **Anchor Framework** | v0.29.0 | Rust framework for Solana program development |
130+
| **SPL Token CLI** | v4.0.0 | Command-line tools for SPL tokens |
131+
| **SPL Associated Token Account CLI** | v3.0.2 | Tools for managing associated token accounts |
132+
| **Sugar (Metaplex)** | v2.6.0 | Metaplex Candy Machine CLI for NFT projects |
133+
| **Mollusk** | v0.1.0 | Solana program testing framework |
134+
135+
### Quick Start Commands
136+
137+
After installation, you can immediately start developing with Solana:
138+
139+
```bash
140+
# Create a new wallet
141+
solana-keygen new
142+
143+
# Start a local test validator
144+
solana-test-validator
145+
146+
# Create a new Anchor project
147+
anchor init my_solana_project
148+
149+
# Create a new SPL token
150+
spl-token create-token
151+
152+
# Initialize a Candy Machine project
153+
sugar create-config
154+
```
155+
156+
### Manual Installation
157+
158+
If you need to install Solana tools on an existing OSVMarchi system:
159+
160+
```bash
161+
# Install complete Solana development environment
162+
osvmarchi-install-dev-env solana
163+
164+
# Or install just the Solana tools
165+
osvmarchi-install-solana
166+
```
167+
168+
### Version Management
169+
170+
All Solana tools are pinned to specific versions to ensure reproducible builds and compatibility. The Anchor Framework uses AVM (Anchor Version Manager) for easy version switching:
171+
172+
```bash
173+
# List available Anchor versions
174+
avm list
175+
176+
# Install and use a different Anchor version
177+
avm install 0.30.0
178+
avm use 0.30.0
179+
```
180+
118181
## License
119182

120183
OSVMarchi is released under the [MIT License](https://opensource.org/licenses/MIT).

bin/osvmarchi-install-dev-env

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22

33
if [[ -z "$1" ]]; then
4-
echo "Usage: osvmarchi-install-dev-env <ruby|node|bun|go|laravel|symfony|php|python|elixir|phoenix|rust|java|ocaml|dotnet>" >&2
4+
echo "Usage: osvmarchi-install-dev-env <ruby|node|bun|go|laravel|symfony|php|python|elixir|phoenix|rust|java|ocaml|dotnet|solana>" >&2
55
exit 1
66
fi
77

@@ -38,6 +38,75 @@ install_node() {
3838
mise use --global node@lts
3939
}
4040

41+
install_solana() {
42+
echo -e "Installing Solana CLI and development tools...\n"
43+
44+
# Install Solana CLI via official installer
45+
echo "Installing Solana CLI..."
46+
bash -c "$(curl --proto '=https' --tlsv1.2 -sSfL https://solana-install.solana.workers.dev)" -- --version v1.18.18
47+
48+
# Add Solana to PATH for current session
49+
export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"
50+
51+
# Add Solana to bashrc for future sessions
52+
if ! grep -q "solana/install/active_release/bin" "$HOME/.bashrc"; then
53+
echo 'export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"' >> "$HOME/.bashrc"
54+
echo "Added Solana CLI to PATH."
55+
fi
56+
57+
# Install Rust (required for Anchor and other tools) if not already installed
58+
if ! command -v rustc &> /dev/null; then
59+
echo "Installing Rust (required for Solana development)..."
60+
bash -c "$(curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs)" -- -y
61+
source "$HOME/.cargo/env"
62+
fi
63+
64+
# Add Cargo to PATH for current session if not already there
65+
if [[ ":$PATH:" != *":$HOME/.cargo/bin:"* ]]; then
66+
export PATH="$HOME/.cargo/bin:$PATH"
67+
fi
68+
69+
# Install Anchor CLI (pinned version for stability)
70+
echo "Installing Anchor CLI..."
71+
cargo install --git https://github.com/coral-xyz/anchor avm --locked --force
72+
avm install 0.29.0
73+
avm use 0.29.0
74+
75+
# Install SPL Token CLI
76+
echo "Installing SPL Token CLI..."
77+
cargo install spl-token-cli --version 4.0.0 --locked
78+
79+
# Install additional Solana ecosystem tools
80+
echo "Installing additional Solana development tools..."
81+
82+
# Install Solana Program Library CLI tools
83+
cargo install spl-token-cli --version 4.0.0 --locked --force
84+
cargo install spl-associated-token-account --version 3.0.2 --locked --force
85+
86+
# Install sugar (Metaplex Candy Machine CLI)
87+
cargo install sugar-cli --version 2.6.0 --locked --force
88+
89+
# Install Mollusk (Solana program testing framework)
90+
cargo install mollusk-cli --version 0.1.0 --locked --force
91+
92+
echo -e "\nSolana development environment installed successfully!"
93+
echo "Installed tools:"
94+
echo " • Solana CLI v1.18.18"
95+
echo " • Anchor Framework v0.29.0 (via AVM)"
96+
echo " • SPL Token CLI v4.0.0"
97+
echo " • SPL Associated Token Account CLI v3.0.2"
98+
echo " • Sugar (Metaplex) CLI v2.6.0"
99+
echo " • Mollusk CLI v0.1.0"
100+
echo ""
101+
echo "You can now:"
102+
echo " • Create Solana wallets: solana-keygen new"
103+
echo " • Start test validator: solana-test-validator"
104+
echo " • Create Anchor projects: anchor init my_project"
105+
echo " • Deploy SPL tokens: spl-token create-token"
106+
echo ""
107+
echo "Note: Restart your terminal or run 'source ~/.bashrc' to ensure all tools are in PATH."
108+
}
109+
41110
case "$1" in
42111
ruby)
43112
echo -e "Installing Ruby on Rails...\n"
@@ -125,4 +194,7 @@ dotnet)
125194
echo -e "Installing .NET...\n"
126195
mise use --global dotnet@latest
127196
;;
197+
solana)
198+
install_solana
199+
;;
128200
esac

bin/osvmarchi-install-solana

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
#!/bin/bash
2+
3+
# OSVMarchi Solana Development Tools Installer
4+
# Installs Solana CLI and essential ecosystem tools
5+
6+
set -e
7+
8+
echo -e "\e[32mInstalling Solana Development Environment\e[0m\n"
9+
10+
# Check if user wants to skip Solana installation
11+
if [[ "$1" == "--skip" ]]; then
12+
echo "Skipping Solana development tools installation."
13+
exit 0
14+
fi
15+
16+
# Install Solana CLI via official installer (pinned version for stability)
17+
echo "📦 Installing Solana CLI v1.18.18..."
18+
bash -c "$(curl --proto '=https' --tlsv1.2 -sSfL https://solana-install.solana.workers.dev)" -- --version v1.18.18
19+
20+
# Add Solana to PATH for current session
21+
export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"
22+
23+
# Add Solana to bashrc for future sessions if not already there
24+
if ! grep -q "solana/install/active_release/bin" "$HOME/.bashrc" 2>/dev/null; then
25+
echo 'export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"' >> "$HOME/.bashrc"
26+
echo "✅ Added Solana CLI to PATH"
27+
fi
28+
29+
# Ensure Rust is installed (required for most Solana ecosystem tools)
30+
if ! command -v rustc &> /dev/null; then
31+
echo "📦 Installing Rust (required for Solana ecosystem tools)..."
32+
bash -c "$(curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs)" -- -y
33+
source "$HOME/.cargo/env"
34+
else
35+
echo "✅ Rust already installed"
36+
fi
37+
38+
# Add Cargo to PATH for current session if not already there
39+
if [[ ":$PATH:" != *":$HOME/.cargo/bin:"* ]]; then
40+
export PATH="$HOME/.cargo/bin:$PATH"
41+
fi
42+
43+
# Install Anchor Version Manager and Anchor CLI
44+
echo "📦 Installing Anchor CLI v0.29.0..."
45+
if ! command -v avm &> /dev/null; then
46+
cargo install --git https://github.com/coral-xyz/anchor avm --locked --force
47+
fi
48+
avm install 0.29.0 2>/dev/null || echo "⚠️ Anchor v0.29.0 already installed"
49+
avm use 0.29.0
50+
51+
# Install SPL Token CLI
52+
echo "📦 Installing SPL Token CLI v4.0.0..."
53+
cargo install spl-token-cli --version 4.0.0 --locked --force
54+
55+
# Install SPL Associated Token Account CLI
56+
echo "📦 Installing SPL Associated Token Account CLI v3.0.2..."
57+
cargo install spl-associated-token-account --version 3.0.2 --locked --force
58+
59+
# Install Sugar (Metaplex Candy Machine CLI)
60+
echo "📦 Installing Sugar (Metaplex) CLI v2.6.0..."
61+
cargo install sugar-cli --version 2.6.0 --locked --force
62+
63+
# Install Mollusk (Solana program testing framework)
64+
echo "📦 Installing Mollusk CLI v0.1.0..."
65+
cargo install mollusk-cli --version 0.1.0 --locked --force
66+
67+
echo -e "\n\e[32m🎉 Solana development environment installed successfully!\e[0m\n"
68+
69+
echo "📋 Installed tools and versions:"
70+
echo " • Solana CLI: v1.18.18"
71+
echo " • Anchor Framework: v0.29.0 (managed by AVM)"
72+
echo " • SPL Token CLI: v4.0.0"
73+
echo " • SPL Associated Token Account CLI: v3.0.2"
74+
echo " • Sugar (Metaplex) CLI: v2.6.0"
75+
echo " • Mollusk CLI: v0.1.0"
76+
echo ""
77+
78+
echo "🚀 Quick start commands:"
79+
echo " • Create wallet: solana-keygen new"
80+
echo " • Start test validator: solana-test-validator"
81+
echo " • Create Anchor project: anchor init my_project"
82+
echo " • Create SPL token: spl-token create-token"
83+
echo " • Initialize Candy Machine: sugar create-config"
84+
echo ""
85+
86+
echo "💡 Note: Restart your terminal or run 'source ~/.bashrc' to ensure all tools are in PATH."

install.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ source $OSVMARCHI_INSTALL/packaging/fonts.sh
2222
source $OSVMARCHI_INSTALL/packaging/lazyvim.sh
2323
source $OSVMARCHI_INSTALL/packaging/webapps.sh
2424
source $OSVMARCHI_INSTALL/packaging/tuis.sh
25+
source $OSVMARCHI_INSTALL/packaging/solana.sh
2526

2627
# Configuration
2728
source $OSVMARCHI_INSTALL/config/config.sh

install/packaging/solana.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/bin/bash
2+
3+
# Install Solana development tools as part of the OSVMarchi installation
4+
5+
echo -e "\e[32m\nInstalling Solana development environment\e[0m"
6+
7+
# Run the dedicated Solana installer
8+
osvmarchi-install-solana

0 commit comments

Comments
 (0)