Installer Reference
Complete reference for all DevEx package managers and installation methods
Installer Reference
DevEx supports a wide range of package managers and installation methods across different platforms. This comprehensive reference covers all available installers, their capabilities, and platform-specific usage.
Cross-Platform Installers
mise (Programming Language Manager)
Universal - Available on all platforms for programming language version management
Overview
- Purpose: Programming language version management
- Platforms: Linux, macOS, Windows (planned)
- Languages: Node.js, Python, Ruby, Go, Rust, Java, and 100+ more
- Repository: mise-en-place
Usage
# Install specific language versions
devex install nodejs@18.17.0 # Specific Node.js version
devex install python@3.11 # Python 3.11.x latest
devex install go@latest # Latest Go version
devex install rust # Latest stable Rust
# List available versions
mise list-remote nodejs # All Node.js versions
mise list python # Installed Python versionsConfiguration
# mise configuration in DevEx
environment:
programming_languages:
nodejs:
version: "18.17.0"
global: true
python:
version: "3.11.5"
global: true
go:
version: "1.21.0"
global: falseBenefits
- Version isolation per project or globally
- Automatic switching based on project files
- No conflicts between different versions
- Consistent across development environments
curlpipe (Direct Downloads)
Universal - Direct installation via curl for cross-platform tools
Overview
- Purpose: Direct downloads and script execution
- Platforms: Linux, macOS, Windows (PowerShell)
- Use Cases: Install scripts, binary downloads, one-line installers
- Security: Input validation and secure execution
Usage
# Install via installation script
devex install docker # Executes Docker install script
devex install rust # Rust toolchain installer
devex install node # Node.js via installation script
# Custom installation commands
devex install --method=curlpipe "curl -fsSL https://get.docker.com | sh"Security Features
- URL validation to prevent malicious scripts
- HTTPS enforcement for secure downloads
- Shell injection prevention with input sanitization
- Context-aware execution with proper timeouts
Common Use Cases
# Development tools with install scripts
curl -fsSL https://get.docker.com | sh # Docker
curl -fsSL https://sh.rustup.rs | sh # Rust
# Review script first: curl -fsSL https://deb.nodesource.com/setup_lts.x | less
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - # Node.jspip (Python Package Manager)
Universal - Python package installation across all platforms
Overview
- Purpose: Python package and tool installation
- Platforms: Linux, macOS, Windows
- Scope: Python applications and libraries
- Integration: Works with system Python and mise-managed versions
Usage
# Install Python applications
devex install --method=pip jupyter # Jupyter notebooks
devex install --method=pip ansible # Ansible automation
devex install --method=pip black # Python formatter
# With specific Python version
mise exec python@3.11 -- pip install packageBest Practices
- Virtual environments for isolation
- User installations (
--userflag) to avoid system conflicts - Requirements files for reproducible installations
docker (Container Platform)
Universal - Container platform with cross-platform support
Overview
- Purpose: Container platform and tools
- Platforms: Linux, macOS, Windows
- Components: Docker Engine, Docker Compose, Docker Desktop
- Integration: Service validation and daemon management
Platform-Specific Installation
Linux (Native):
# Adds Docker repository and installs
devex install docker # Full Docker setup
# Includes: docker-ce, docker-ce-cli, containerd.io, docker-compose-pluginmacOS (Docker Desktop):
# Installs Docker Desktop via Homebrew cask
devex install docker # Docker Desktop for Mac
# Includes: Docker Engine, Docker Compose, KubernetesWindows (Docker Desktop):
# Planned: Docker Desktop for Windows
devex install docker # Docker Desktop for Windows
# Includes: WSL2 backend, Windows containersService Validation
DevEx automatically validates Docker installation:
- Daemon availability checking
- Service status verification
- Docker Compose functionality testing
- Permission setup (Linux docker group)
Linux Package Managers
APT (Advanced Package Tool)
Primary - Debian, Ubuntu, and derivatives
Overview
- Distributions: Debian, Ubuntu, Linux Mint, Elementary OS
- Package Format: .deb files
- Repository: Official and third-party APT repositories
- Update Mechanism:
apt update && apt upgrade
Features
# System package installation
devex install git # apt install git
devex install nodejs # apt install nodejs
devex install python3-pip # apt install python3-pip
# Repository management
devex install code # Adds Microsoft repository automatically
devex install docker # Adds Docker repository automaticallyAPT Source Management
DevEx automatically manages APT sources for applications:
# Example: Visual Studio Code with APT source
applications:
development:
- name: code
linux:
install_method: 'apt'
install_command: 'code'
apt_sources:
- key_source: 'https://packages.microsoft.com/keys/microsoft.asc'
key_name: 'microsoft'
source_repo: 'https://packages.microsoft.com/repos/code'
source_name: 'vscode'Troubleshooting
# Common APT issues
sudo apt update # Refresh package lists
sudo apt --fix-broken install # Fix dependency issues
sudo dpkg --configure -a # Configure incomplete packagesDNF (Dandified YUM)
Primary - Fedora, RHEL 8+, CentOS Stream
Overview
- Distributions: Fedora, RHEL, CentOS Stream, Rocky Linux, AlmaLinux
- Package Format: .rpm files
- Repository: Official and EPEL repositories
- Features: Parallel downloads, dependency solving
Usage
# System package installation
devex install git # dnf install git
devex install nodejs # dnf install nodejs
devex install python3-pip # dnf install python3-pip
# Repository management
devex install rpmfusion-free # Enables RPM Fusion repository
devex install code # Adds Microsoft repositoryRepository Management
# EPEL repository (Enterprise Linux)
sudo dnf install epel-release # Enable EPEL
# RPM Fusion (multimedia codecs)
sudo dnf install rpmfusion-free-release rpmfusion-nonfree-releasePerformance Optimization
# Enable parallel downloads
echo 'max_parallel_downloads=10' | sudo tee -a /etc/dnf/dnf.conf
echo 'fastestmirror=True' | sudo tee -a /etc/dnf/dnf.confPacman
Primary - Arch Linux and derivatives
Overview
- Distributions: Arch Linux, Manjaro, EndeavourOS, ArcoLinux
- Package Format: .pkg.tar.xz files
- Repository: Official Arch repositories
- Philosophy: Keep It Simple, Stupid (KISS)
Usage
# System package installation
devex install git # pacman -S git
devex install nodejs # pacman -S nodejs
devex install python-pip # pacman -S python-pip
# System update
sudo pacman -Syu # Update entire systemAUR Integration
DevEx automatically uses AUR helpers when available:
# AUR helper installation (yay)
devex install yay # Install AUR helper
# AUR package installation
devex install visual-studio-code-bin # Uses yay if available
devex install spotify # AUR packageFlatpak (Universal Linux)
Universal - Cross-distribution application platform
Overview
- Purpose: Sandboxed application distribution
- Platforms: Most modern Linux distributions
- Repository: Flathub (primary), distribution-specific
- Benefits: Consistent runtime, security sandboxing
Usage
# Application installation
devex install org.gimp.GIMP # GIMP image editor
devex install com.spotify.Client # Spotify music
devex install org.blender.Blender # Blender 3D
# System integration
flatpak update # Update all Flatpak apps
flatpak list # List installed appsConfiguration
# Add Flathub repository (usually pre-configured)
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# Permissions management
flatpak permissions # View app permissions
flatpak permission-reset org.gimp.GIMP # Reset app permissionsSnap (Ubuntu Universal)
Ubuntu-focused - Universal packages with automatic updates
Overview
- Primary Platform: Ubuntu (pre-installed)
- Other Platforms: Available on most distributions
- Benefits: Automatic updates, rollback capability
- Confinement: Strict, classic, or devmode
Usage
# Application installation
devex install code --classic # VS Code (classic snap)
devex install discord # Discord (strict snap)
devex install blender # Blender 3D
# Snap management
snap list # List installed snaps
snap refresh # Update all snaps
snap revert code # Rollback to previous versionSnap Types
- Strict: Fully confined, limited system access
- Classic: Full system access, like traditional packages
- Devmode: Developer mode, unrestricted access
macOS Package Managers
Homebrew
Primary - The missing package manager for macOS
Overview
- Type: Command-line and GUI application installer
- Packages: 6,000+ formulae (CLI tools) and 4,000+ casks (GUI apps)
- Installation: Automatically set up by DevEx if needed
- Update: Regular updates via
brew update && brew upgrade
Package Types
Formulae (CLI Tools):
# Command-line tools
devex install git # Git version control
devex install nodejs # Node.js runtime
devex install python # Python interpreter
devex install wget # Web downloaderCasks (GUI Applications):
# GUI applications
devex install --cask visual-studio-code # VS Code
devex install --cask google-chrome # Chrome browser
devex install --cask docker # Docker Desktop
devex install --cask figma # Figma design toolHomebrew Management
# Maintenance commands
brew doctor # Check for issues
brew cleanup # Remove old versions
brew services list # List running servicesMac App Store (mas-cli)
Limited - Requires Apple ID authentication
Overview
- Purpose: Install Mac App Store applications via CLI
- Requirement: Apple ID account and authentication
- Limitations: Only apps available in Mac App Store
- Installation:
brew install mas
Usage
# Authentication required
mas signin apple-id@example.com
# App installation by ID
mas install 497799835 # Xcode
mas install 1295203466 # Microsoft Remote Desktop
mas install 409183694 # Keynote
# App management
mas list # List installed apps
mas outdated # Check for updates
mas upgrade # Update all appsSpecialized Installers
Zypper (openSUSE)
Beta - openSUSE and SUSE Linux Enterprise
Overview
- Distributions: openSUSE Leap, Tumbleweed, SUSE Linux Enterprise
- Package Format: .rpm files
- Features: Pattern-based installation, rollback support
- Repository: Official openSUSE repositories
Usage
# Package installation
devex install git # zypper install git
devex install nodejs # zypper install nodejs
devex install python3-pip # zypper install python3-pip
# Pattern installation
sudo zypper install -t pattern devel_basis # Development toolsYay (AUR Helper)
Arch-specific - Yet Another Yaourt replacement
Overview
- Purpose: Arch User Repository (AUR) package installation
- Distribution: Arch Linux and derivatives
- Features: Pacman wrapper with AUR support
- Installation: Available via DevEx on Arch systems
Usage
# AUR package installation
devex install visual-studio-code-bin # VS Code from AUR
devex install spotify # Spotify from AUR
devex install google-chrome # Chrome from AUR
# Combined official and AUR search
yay -Ss search-term # Search both repos
yay -Syu # Update system and AUR packagesAdditional Package Managers
APK (Alpine Package Keeper)
- Distribution: Alpine Linux
- Use Case: Container and lightweight systems
- Status: Beta support
Emerge (Portage)
- Distribution: Gentoo Linux
- Type: Source-based package manager
- Status: Community support
XBPS (X Binary Package System)
- Distribution: Void Linux
- Features: Fast dependency resolution
- Status: Community support
Eopkg
- Distribution: Solus
- Features: Modern package manager design
- Status: Community support
Installation Methods
Package Manager Priority
DevEx automatically selects the best package manager based on:
- Platform detection (OS and distribution)
- Package availability in each manager
- Official support vs community packages
- Installation permissions required
- Update mechanisms available
Override Methods
Force specific installation methods:
# Force specific package manager
devex install --method=apt git # Force APT
devex install --method=flatpak gimp # Force Flatpak
devex install --method=brew node # Force Homebrew
# Multiple methods for testing
devex install --method=apt,flatpak,snap firefoxDry Run Mode
Test installations without making changes:
# Preview installation actions
devex install --dry-run # Show what would be installed
devex install --dry-run --verbose # Detailed installation plan
devex install --dry-run git docker # Test specific packagesBest Practices
Security
- Verify package sources before installation
- Use official repositories when available
- Keep systems updated regularly
- Review permissions for sandboxed apps
Performance
- Use native package managers for better integration
- Enable parallel downloads where supported
- Clean up old packages regularly
- Monitor disk usage for large applications
Maintenance
- Regular updates via DevEx or package managers
- Remove unused packages to free space
- Check for security updates frequently
- Backup configurations before major changes
Troubleshooting
Common Issues
Package Not Found
# Update package lists
devex status --refresh-repos
sudo apt update # APT
sudo dnf makecache # DNF
sudo pacman -Sy # PacmanPermission Denied
# Check sudo permissions
sudo -v # Validate sudo access
# Fix package manager permissions
sudo chown -R $(whoami) $(brew --prefix)/* # Homebrew
sudo usermod -aG docker $USER # Docker groupDependency Conflicts
# Fix dependency issues
sudo apt --fix-broken install # APT
sudo dnf distro-sync # DNF
sudo pacman -Syu # Pacman (full update)Platform-Specific Troubleshooting
Linux
- Check distribution detection:
devex status --verbose - Verify package manager availability:
which apt/dnf/pacman - Review system logs:
journalctl -xe
macOS
- Homebrew doctor:
brew doctor - Xcode CLI tools:
xcode-select --install - Permission issues:
sudo chown -R $(whoami) $(brew --prefix)/*
Contributing
Help improve installer support:
- Test installers on your platform and report issues
- Submit new installer implementations for additional package managers
- Improve error handling and user experience
- Document platform-specific quirks and solutions
See our contribution guide for details on adding new installers.