Gem
Ruby package manager for installing and managing Ruby libraries - Essential commands and usage patterns.
Overview
Gem is a package manager used for ruby package manager for installing and managing ruby libraries. This cheat sheet covers the most commonly used commands and workflows.
Platform Support: Cross-platform Category: Development
Installation
Linux/Ubuntu
# Package manager installation
sudo apt update
sudo apt install gem
# Alternative installation methods
wget -O gem https://github.com/example/gem/releases/latest
chmod +x gem
sudo mv gem /usr/local/bin/
macOS
# Homebrew installation
brew install gem
# Manual installation
curl -L -o gem https://github.com/example/gem/releases/latest
chmod +x gem
sudo mv gem /usr/local/bin/
Windows
# Chocolatey installation
choco install gem
# Scoop installation
scoop install gem
# Manual installation
# Download from official website and add to PATH
Basic Commands
Command | Description |
---|---|
gem --help |
Display help information |
gem --version |
Show version information |
gem init |
Initialize gem in current directory |
gem status |
Check current status |
gem list |
List available options/items |
Common Operations
Basic Usage
# Start gem
gem start
# Stop gem
gem stop
# Restart gem
gem restart
# Check status
gem status
Configuration
# View configuration
gem config show
# Set configuration option
gem config set <key> <value>
# Reset configuration
gem config reset
Advanced Operations
# Verbose output
gem -v <command>
# Debug mode
gem --debug <command>
# Dry run (preview changes)
gem --dry-run <command>
# Force operation
gem --force <command>
File Operations
Command | Description |
---|---|
gem create <file> |
Create new file |
gem read <file> |
Read file contents |
gem update <file> |
Update existing file |
gem delete <file> |
Delete file |
gem copy <src> <dst> |
Copy file |
gem move <src> <dst> |
Move file |
Network Operations
# Connect to remote host
gem connect <host>:<port>
# Listen on port
gem listen --port <port>
# Send data
gem send --data "<data>" --target <host>
# Receive data
gem receive --port <port>
Security Features
Authentication
# Login with credentials
gem login --user <username>
# Logout
gem logout
# Change password
gem passwd
# Generate API key
gem generate-key
Encryption
# Encrypt file
gem encrypt <file>
# Decrypt file
gem decrypt <file>
# Generate certificate
gem cert generate
# Verify signature
gem verify <file>
Troubleshooting
Common Issues
Issue: Command not found
# Check if installed
which gem
# Reinstall if necessary
sudo apt reinstall gem
Issue: Permission denied
# Run with sudo
sudo gem <command>
# Fix permissions
chmod +x /usr/local/bin/gem
Issue: Configuration errors
# Reset configuration
gem config reset
# Validate configuration
gem config validate
Debug Commands
Command | Description |
---|---|
gem --debug |
Enable debug output |
gem --verbose |
Verbose logging |
gem test |
Run self-tests |
gem doctor |
Check system health |
Best Practices
Security
- Always verify checksums when downloading
- Use strong authentication methods
- Regularly update to latest version
- Follow principle of least privilege
Performance
- Use appropriate buffer sizes
- Monitor resource usage
- Optimize configuration for your use case
- Regular maintenance and cleanup
Maintenance
# Update gem
gem update
# Clean temporary files
gem clean
# Backup configuration
gem backup --config
# Restore from backup
gem restore --config <backup-file>
Integration
Scripting
#!/bin/bash
# Example script using gem
# Check if gem is available
if ! command -v gem &> /dev/null; then
echo "gem is not installed"
exit 1
fi
# Run gem with error handling
if gem <command>; then
echo "Success"
else
echo "Failed"
exit 1
fi
API Integration
# Python example
import subprocess
import json
def run_gem(command):
try:
result = subprocess.run(['gem'] + command.split(),
capture_output=True, text=True)
return result.stdout
except Exception as e:
print(f"Error: \\\\{e\\\\}")
return None
Environment Variables
Variable | Description | Default |
---|---|---|
GEM_CONFIG |
Configuration file path | ~/.gem/config |
GEM_HOME |
Home directory | ~/.gem |
GEM_LOG_LEVEL |
Logging level | INFO |
GEM_TIMEOUT |
Operation timeout | 30s |
Configuration File
# ~/.gem/config.yaml
version: "1.0"
settings:
debug: false
timeout: 30
log_level: "INFO"
network:
host: "localhost"
port: 8080
ssl: true
security:
auth_required: true
encryption: "AES256"
Examples
Basic Workflow
# 1. Initialize
gem init
# 2. Configure
gem config set host example.com
# 3. Connect
gem connect
# 4. Perform operations
gem list
gem create example
# 5. Cleanup
gem disconnect
Advanced Workflow
# Automated deployment
gem deploy \
--config production.yaml \
--environment prod \
--verbose \
--timeout 300
# Monitoring
gem monitor \
--interval 60 \
--alert-threshold 80 \
--log-file monitor.log
Resources
Official Documentation
Community
Tutorials
Last updated: 2025-07-05