Skip to content

Distribute CLI via Alpine APK #126

@cardmagic

Description

@cardmagic

Summary

Add Alpine APK distribution for the classifier CLI to make installation easier for Alpine Linux users and Docker images.

Background

Currently users must install via RubyGems (gem install classifier), which requires Ruby environment setup. An Alpine package would provide a simpler installation path, especially useful for Docker containers.

Tasks

  • Create APKBUILD file
  • Submit to Alpine aports (community repository)

Options

  1. Alpine aports (community) - Submit to official Alpine community repository
  2. Custom APK repository - Host on rubyclassifier.com

Example APKBUILD

# Maintainer: Lucas Carlson <[email protected]>
pkgname=classifier
pkgver=2.2.0
pkgrel=0
pkgdesc="Text classification with Bayesian and LSI algorithms"
url="https://rubyclassifier.com"
arch="noarch"
license="LGPL"
depends="ruby ruby-dev"
makedepends="ruby-dev"
source="https://rubygems.org/downloads/$pkgname-$pkgver.gem"

build() {
    gem install --no-document --install-dir=.gem --bindir=.bin "$srcdir/$pkgname-$pkgver.gem"
}

package() {
    mkdir -p "$pkgdir"/usr/lib/ruby/gems
    cp -a .gem/* "$pkgdir"/usr/lib/ruby/gems/
    
    mkdir -p "$pkgdir"/usr/bin
    cp -a .bin/* "$pkgdir"/usr/bin/
}

sha512sums="..."

Installation (Goal)

# Official repo (after acceptance)
apk add classifier

# Custom repo
echo "https://rubyclassifier.com/alpine/v3.19/community" >> /etc/apk/repositories
wget -O /etc/apk/keys/classifier.rsa.pub https://rubyclassifier.com/alpine/classifier.rsa.pub
apk add classifier

Docker Usage

Alpine packages are especially useful for Docker images:

FROM alpine:3.19
RUN apk add --no-cache classifier
ENTRYPOINT ["classifier"]

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestpriority: lowLow priority - nice to have

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions