5.2 KiB
5.2 KiB
Tea CLI Installer
A comprehensive installer script for Gitea Tea CLI that supports multiple Linux distributions and installation methods.
Features
- Version Checking: Only downloads and installs if newer version is available
- Multiple Installation Methods:
- Package manager (apt, yum, dnf, zypper)
- Binary download from Gitea releases
- Cross-Platform Support: Debian, Ubuntu, RHEL, CentOS, Fedora, Arch, openSUSE
- Architecture Support: x86_64 (amd64), ARM64, ARM
- Automatic Updates: Fetches latest version from Gitea API
- Force Reinstall: Option to force reinstall even if up-to-date
Usage
Basic Usage
# Install latest version (only if newer than current)
./install-tea-cli.sh
# Install specific version
./install-tea-cli.sh -v v0.11.0
# Force reinstall even if up-to-date
./install-tea-cli.sh --force
Installation Methods
# Force installation from package manager
./install-tea-cli.sh --package
# Force installation from binary
./install-tea-cli.sh --binary
Help
./install-tea-cli.sh --help
Installation Logic
Version Checking
- Check Current Version: Detects installed Tea CLI version
- Fetch Latest: Gets latest version from Gitea API
- Compare Versions: Only proceeds if newer version available
- Force Override:
--forceflag bypasses version check
Installation Priority
-
Package Manager (preferred):
- Debian/Ubuntu: Checks for official Tea CLI package
- RHEL/CentOS/Fedora: Checks for available Tea CLI package
- Arch Linux: Available in AUR (pacman)
- openSUSE: Checks for available Tea CLI package
-
Binary Download (fallback):
- Downloads platform-specific binary from Gitea releases
- Supports x86_64, ARM64, ARM architectures
- Installs to
/usr/local/bin/tea
File Locations
Installation Directory
- Binary:
/usr/local/bin/tea - Symlink:
/usr/local/bin/tea-<version>
Version Comparison
The installer uses semantic version comparison:
- Format:
vX.Y.Z(e.g.,v0.11.1) - Logic: Compares major, minor, patch versions
- Build Info: Ignores build hashes/identifiers
Examples
# Current: 0.11.0, Latest: v0.11.1 → Update needed
# Current: 0.11.1, Latest: v0.11.1 → No update needed
# Current: 0.11.2, Latest: v0.11.1 → No update needed (newer installed)
System Requirements
Required
curlorwget(for downloading)sudoaccess (for system-wide installation)
Optional
- Package manager access (for package installations)
- Internet connection (for downloading releases)
Supported Distributions
Package Manager Support
- Debian/Ubuntu: Checks for official Tea CLI package
- RHEL/CentOS/Fedora: Checks for available Tea CLI package
- Arch Linux: Available in AUR (pacman)
- openSUSE: Checks for available Tea CLI package
Binary Support
- Linux x86_64:
tea-0.11.1-linux-amd64 - Linux ARM64:
tea-0.11.1-linux-arm64 - Linux ARM:
tea-0.11.1-linux-arm-5,tea-0.11.1-linux-arm-6,tea-0.11.1-linux-arm-7
Troubleshooting
Version Detection Issues
# Check current version manually
tea --version
# Force reinstall if version detection fails
./install-tea-cli.sh --force
Permission Issues
# Ensure proper permissions
sudo chown root:root /usr/local/bin/tea
sudo chmod 755 /usr/local/bin/tea
PATH Issues
# Check which tea is being used
which tea
# Check all tea installations
find /usr -name tea 2>/dev/null
find /home -name tea 2>/dev/null
# Update PATH if needed
export PATH="/usr/local/bin:$PATH"
Examples
Typical Workflow
# Check if update needed
./install-tea-cli.sh
# Output if up-to-date:
# [SUCCESS] You already have the latest version (0.11.1)
# [SUCCESS] No installation needed. Exiting.
# Output if update available:
# [INFO] Current version: 0.11.0
# [INFO] Latest version: v0.11.1
# [INFO] Newer version available: v0.11.1 > 0.11.0
# [SUCCESS] Installation completed successfully!
Force Binary Installation
# Force binary installation
./install-tea-cli.sh --force --binary
# Output:
# [SUCCESS] Tea CLI binary installed successfully
# Next steps:
# 1. Test installation: tea --version
# 2. Configure login: tea login add
# 3. Use Tea CLI: tea --help
Integration with Setup Script
The Tea CLI installer is automatically integrated with the main Git repository setup script:
- Detection: Checks for existing Tea CLI installations
- Offer Installation: Prompts to install Tea CLI if none found
- Configuration: Guides through login setup
- Repository Management: Enables Gitea repository operations
Security Features
- Official Releases: Downloads from official Gitea releases
- Package Verification: Uses official package repositories
- Proper Permissions: Sets appropriate file ownership and permissions
Contributing
To add support for new distributions or architectures:
- Update
detect_os()function for new package managers - Add architecture detection in
get_arch()function - Update installation methods in
install_tea_from_*()functions - Test with target distribution
- Update documentation
License
This installer script follows the same license as Gitea Tea CLI (MIT).