327 líneas
5.2 KiB
Markdown
327 líneas
5.2 KiB
Markdown
# Building and Installing Buque
|
|
|
|
This guide explains how to build and install Buque from source.
|
|
|
|
## Prerequisites
|
|
|
|
### 1. Install Go
|
|
|
|
Buque requires Go 1.21 or higher.
|
|
|
|
#### Check if Go is installed
|
|
|
|
```bash
|
|
go version
|
|
```
|
|
|
|
If Go is not installed or the version is too old, follow these steps:
|
|
|
|
#### Ubuntu/Debian
|
|
|
|
```bash
|
|
# Remove old version if exists
|
|
sudo apt remove golang-go
|
|
|
|
# Download Go 1.21 (check for latest version at https://go.dev/dl/)
|
|
wget https://go.dev/dl/go1.21.6.linux-amd64.tar.gz
|
|
|
|
# Extract to /usr/local
|
|
sudo rm -rf /usr/local/go
|
|
sudo tar -C /usr/local -xzf go1.21.6.linux-amd64.tar.gz
|
|
|
|
# Add to PATH (add these lines to ~/.bashrc or ~/.profile)
|
|
export PATH=$PATH:/usr/local/go/bin
|
|
export GOPATH=$HOME/go
|
|
export PATH=$PATH:$GOPATH/bin
|
|
|
|
# Reload shell configuration
|
|
source ~/.bashrc
|
|
|
|
# Verify installation
|
|
go version
|
|
```
|
|
|
|
#### macOS
|
|
|
|
```bash
|
|
# Using Homebrew
|
|
brew install go
|
|
|
|
# Or download from https://go.dev/dl/
|
|
```
|
|
|
|
#### Windows
|
|
|
|
Download and install from [https://go.dev/dl/](https://go.dev/dl/)
|
|
|
|
### 2. Install Docker
|
|
|
|
Follow the Docker installation guide at [docs/DOCKER_SETUP.md](docs/DOCKER_SETUP.md)
|
|
|
|
## Building Buque
|
|
|
|
### Method 1: Using the Install Script (Recommended)
|
|
|
|
```bash
|
|
cd /home/buque
|
|
|
|
# Run the installation script
|
|
./install.sh
|
|
```
|
|
|
|
This will:
|
|
- Check prerequisites
|
|
- Build the binary
|
|
- Install to `$GOPATH/bin`
|
|
- Verify the installation
|
|
|
|
### Method 2: Using Make
|
|
|
|
```bash
|
|
cd /home/buque
|
|
|
|
# Download dependencies
|
|
make deps
|
|
|
|
# Build the binary
|
|
make build
|
|
|
|
# The binary will be in ./bin/buque
|
|
./bin/buque --version
|
|
|
|
# Or install to $GOPATH/bin
|
|
make install
|
|
|
|
# Verify installation
|
|
buque --version
|
|
```
|
|
|
|
### Method 3: Using Go directly
|
|
|
|
```bash
|
|
cd /home/buque
|
|
|
|
# Download dependencies
|
|
go mod download
|
|
|
|
# Build
|
|
go build -o bin/buque ./cmd/buque
|
|
|
|
# Or install directly
|
|
go install ./cmd/buque
|
|
|
|
# Verify
|
|
buque --version
|
|
```
|
|
|
|
## Build Options
|
|
|
|
### Build for production (optimized)
|
|
|
|
```bash
|
|
go build -ldflags="-s -w" -o bin/buque ./cmd/buque
|
|
```
|
|
|
|
Flags:
|
|
- `-s`: Strip symbol table
|
|
- `-w`: Strip DWARF debugging information
|
|
|
|
### Build for specific platform
|
|
|
|
```bash
|
|
# Linux AMD64
|
|
GOOS=linux GOARCH=amd64 go build -o bin/buque-linux-amd64 ./cmd/buque
|
|
|
|
# Linux ARM64
|
|
GOOS=linux GOARCH=arm64 go build -o bin/buque-linux-arm64 ./cmd/buque
|
|
|
|
# macOS AMD64 (Intel)
|
|
GOOS=darwin GOARCH=amd64 go build -o bin/buque-darwin-amd64 ./cmd/buque
|
|
|
|
# macOS ARM64 (Apple Silicon)
|
|
GOOS=darwin GOARCH=arm64 go build -o bin/buque-darwin-arm64 ./cmd/buque
|
|
|
|
# Windows AMD64
|
|
GOOS=windows GOARCH=amd64 go build -o bin/buque-windows-amd64.exe ./cmd/buque
|
|
```
|
|
|
|
### Build for all platforms
|
|
|
|
```bash
|
|
make build-all
|
|
```
|
|
|
|
This creates binaries for:
|
|
- Linux (amd64, arm64)
|
|
- macOS (amd64, arm64)
|
|
- Windows (amd64)
|
|
|
|
## Installation
|
|
|
|
### System-wide installation
|
|
|
|
```bash
|
|
# Build and install
|
|
make install
|
|
|
|
# Or manually copy to system path
|
|
sudo cp bin/buque /usr/local/bin/
|
|
|
|
# Verify
|
|
buque --version
|
|
```
|
|
|
|
### User-specific installation
|
|
|
|
```bash
|
|
# Install to $GOPATH/bin (usually ~/go/bin)
|
|
go install ./cmd/buque
|
|
|
|
# Make sure $GOPATH/bin is in your PATH
|
|
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.bashrc
|
|
source ~/.bashrc
|
|
|
|
# Verify
|
|
buque --version
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### "go: command not found"
|
|
|
|
Go is not installed or not in PATH. Install Go following the prerequisites section.
|
|
|
|
### "permission denied" when running buque
|
|
|
|
```bash
|
|
# Make the binary executable
|
|
chmod +x bin/buque
|
|
|
|
# Or if installed system-wide
|
|
sudo chmod +x /usr/local/bin/buque
|
|
```
|
|
|
|
### "cannot find package" errors
|
|
|
|
```bash
|
|
# Download dependencies
|
|
go mod download
|
|
go mod tidy
|
|
|
|
# Then rebuild
|
|
make build
|
|
```
|
|
|
|
### Build fails with "go.mod" errors
|
|
|
|
```bash
|
|
# Clean and rebuild
|
|
make clean
|
|
make deps
|
|
make build
|
|
```
|
|
|
|
### Docker connection errors
|
|
|
|
Make sure Docker is running:
|
|
|
|
```bash
|
|
# Check Docker status
|
|
systemctl status docker # Linux
|
|
docker ps # All platforms
|
|
|
|
# Start Docker if needed
|
|
sudo systemctl start docker # Linux
|
|
```
|
|
|
|
## Verification
|
|
|
|
After installation, verify everything works:
|
|
|
|
```bash
|
|
# Check version
|
|
buque --version
|
|
|
|
# Check help
|
|
buque --help
|
|
|
|
# Initialize (creates config file)
|
|
buque init
|
|
|
|
# Check Docker connection
|
|
docker ps
|
|
```
|
|
|
|
## Running Tests
|
|
|
|
```bash
|
|
# Run all tests
|
|
make test
|
|
|
|
# Run with coverage
|
|
go test -cover ./...
|
|
|
|
# Run specific package tests
|
|
go test ./internal/docker/...
|
|
```
|
|
|
|
## Development Build
|
|
|
|
For development with hot reload:
|
|
|
|
```bash
|
|
# Install air for hot reload
|
|
go install github.com/cosmtrek/air@latest
|
|
|
|
# Run in development mode
|
|
make dev
|
|
```
|
|
|
|
## Uninstallation
|
|
|
|
```bash
|
|
# Remove binary from $GOPATH/bin
|
|
rm $(go env GOPATH)/bin/buque
|
|
|
|
# Or from system path
|
|
sudo rm /usr/local/bin/buque
|
|
|
|
# Remove configuration (optional)
|
|
rm -rf ~/.buque
|
|
```
|
|
|
|
## Next Steps
|
|
|
|
After successful installation:
|
|
|
|
1. Read the [Quick Start Guide](docs/QUICK_START.md)
|
|
2. Run the demo: `./scripts/demo.sh`
|
|
3. Initialize Buque: `buque init`
|
|
4. Start managing your containers!
|
|
|
|
## Getting Help
|
|
|
|
If you encounter issues:
|
|
|
|
1. Check the [README.md](README.md) for documentation
|
|
2. Run `buque --help` for command usage
|
|
3. Check Docker is running: `docker ps`
|
|
4. Verify Go version: `go version`
|
|
5. Open an issue on GitHub
|
|
|
|
## Build Information
|
|
|
|
To see build information:
|
|
|
|
```bash
|
|
# Version
|
|
buque --version
|
|
|
|
# Go version used
|
|
go version
|
|
|
|
# Docker version
|
|
docker --version
|
|
docker compose version
|
|
```
|