rockhopper: metapackage generator
o< gak! gak!
-/)
^^
SUMMARY
rockhopper generates installer packages for a wide variety of platforms.
Distro hoppers, enjoy~
EXAMPLE
$ cd example/sh
$ rockhopper
$ tree .rockhopper/artifacts
.rockhopper/artifacts
├── alpine-linux
│ └── raygun-1.2.3-r81.noarch.apk
├── fedora
│ └── raygun-1.2.3-81.noarch.rpm
├── freebsd
│ └── raygun-1.2.3_81.pkg
├── macos
│ └── raygun-universal-1.2.3-81.pkg
└── ubuntu
└── raygun_1.2.3-81_all.deb
See rockhopper -h for more options.
DOWNLOAD
| Host | Package |
|---|---|
| Alpine Linux | ARM / Intel |
| Fedora | ARM / Intel |
| FreeBSD | Intel |
| macOS | ARM / Intel |
| Ubuntu / Windows (WSL) | ARM / Intel |
System Requirements
Bitness
64
Hosts
- Alpine Linux (ARM, Intel)
- Fedora (ARM, Intel)
- FreeBSD (Intel)
- macOS (ARM, Intel)
- Ubuntu (ARM, Intel)
- Windows (ARM, Intel) via WSL
For more host platforms and installation methods, see our install guide.
STOCK IMAGES
rockhopper organizes package generators by distro.
| Target | Tag |
|---|---|
| Alpine Linux | alpine-linux |
| Fedora | fedora |
| macOS | macos |
| Ubuntu / Windows (WSL) | ubuntu |
Version pin tags also available, of the form:
<rockhopper version>-<distro>
Multiplatform images available. Supported platforms may vary by distro.
Pro tip: A happy consequence of building Ubuntu packages, is that Windows users can then access your applications via WSL.
Note: Our stock images emphasize build binary based packages.
For information on developing custom rockhopper images, see the rocklets interface.
RUNTIME REQUIREMENTS
- a docker CLI
Recommended
- a UNIX-like environment (e.g. WSL)
- a host capable of running musl/Linux containers (e.g. a GNU/Linux, musl/Linux, macOS, or Windows host)
- Docker First Aid Kit
- Apple Silicon macOS users may want to apply
DOCKER_DEFAULT_PLATFORM=linux/amd64, as many industry Docker images lag behind in ARM support - GNU time
- tree
ABOUT
rockhopper bundles all the tools needed to generate packages, inside Docker containers.
CONFIGURATION
For information on configuring rockhopper, see our configuration guide.
TIPS
Fully static Go/musl binaries tend to improve portability for compiled applications.
Lost? Try Raspberry Pi for Dummies. We all gotta start somewhere.
A dream of impossible colors... Let's make vendor lock a thing of the past.
-< zzZ... *as if!* zzZ...
,/)
^^
RESOURCES
Prior art, personal plugs, and tools for developing portable applications (including non-Rust projects)!
- alien - an OS package converter
- apple-platform-rs, bomutils, stuckliste - Apple Bom format research
- cargo - a crossplatform package manager for Rust projects
- fpm - an older, host native package generator
- go mod - a crossplatform package manager for Go applications
- mcandre/chandler - an OS agnostic tar normalizer
- mcandre/crit - an automated Rust multiplatform compiler
- mcandre/factorio - an automated Go multiplatform compiler
- mcandre/tuggy - an automated Docker multiplatform image builder
- n4jm4/raspberry-pi-os - a Docker base image for Raspberry Pi OS
- xgo - an automated cGo multiplatform compiler
🐧