epm(1)

πŸ“¦
version 5.0.1 Β· 2 versions
, in nixos 26.05, nixpkgs unstable, ubuntu stonking

✨ NAME ✨

hi bestie πŸ’– meet epm(1) β€” and it does exactly one thing and does it gorgeously: it creates software packages. That's the whole vibe. This one's credited to Jim Jagielski, and it's part of the ESP Package Manager family. slay. πŸ’…


✨ SYNOPSIS ✨

epm [ -a architecture ] [ -f format ] [ -g ] [ -k ] [ -m name ] [ -n[mrs] ] [ -s setup.ext ] [ --depend ] [ --help ] [ --keep-files ] [ --output-dir directory ] [ --setup-image setup.ext ] [ --setup-program /foo/bar/setup ] [ --setup-types setup.types ] [ --uninstall-program /foo/bar/uninst ] [ -v ] [ name=value name=value ] product [ listfile ]

like, yes, that's a lot of brackets. she contains multitudes. πŸŽ€


✨ DESCRIPTION ✨

okay so the tea β˜•: epm(1) generates software packages β€” and not just the bare package, it comes complete with installation, removal, and (if necessary) patch scripts too. it's giving whole-package, full-service, main character energy πŸ‘‘

and unless you've said otherwise, the files it needs for product are read from a file named "product.list". no cap, that's just the default. 🌸


✨ OPTIONS ✨

The following options are recognized:

  • -a architecture β€” tells it the actual architecture for the software. skip this one and it'll just use the generic processor architecture instead ("intel", "sparc", "mips", etc.). lowkey convenient, highkey sometimes wrong. πŸ™ˆ
  • -f bsd β€” generates a BSD distribution, suitable for installing on a FreeBSD, NetBSD, or OpenBSD system. πŸ¦‹
  • -f deb β€” generates a Debian distribution, suitable for installing on a Debian-based Linux system. πŸ“
  • -f native β€” generates a native distribution. it picks deb or rpm for Linux, bsd for FreeBSD, NetBSD, and OpenBSD, and macos for macOS. everything else defaults to the portable format. it's the "you know what I want" option ✨
  • -f macos β€” (this one's listed here with nothing under it, because the next entry does the talking πŸ‘‡)
  • -f macos-signed β€” generates a macOS software package. the macos-signed format uses the signing identity from the EPM_SIGNING_IDENTITY environment variable. πŸ”₯
  • -f portable β€” generates a portable distribution built on shell scripts and tar files. the resulting distribution gets installed and removed the exact same way on every operating system. this is the default [default]. bestie-level consistency, we love to see it 🫢
  • -f rpm β€” (again, listed bare, because its signed sibling right below carries the description πŸ‘‡)
  • -f rpm-signed β€” generates a Red Hat Package Manager ("RPM") distribution, suitable for installing on an RPM-based Linux system. the rpm-signed format uses the GPG private key you've defined in the ~/.rpmmacros file. πŸ”‘
  • -g β€” disable stripping of executable files in the distribution. so they keep all their bits, diva behavior, respect πŸ’…
  • -k β€” keep the intermediate files (spec, etc.) used to create the distribution, right there in the distribution directory. messy but honest πŸŽ€
  • -m name β€” specifies the platform name as a string. the default is to use the auto-generated name that comes from the -n option. ✨
  • -n[mrs] β€” specifies what operating system and machine info gets baked into the package name. distributions are normally named "product-version-system-release-machine.ext", and "product-version-system-release-machine-patch.ext" for patch distributions. that "system-release-machine" chunk can be customized or eliminated with the appropriate trailing letters:
    • all on its own, -n removes the "system-release-machine" string from the filename entirely.
    • the letter m includes the architecture (machine).
    • the letter r includes the operating system version (release).
    • the letter s includes the operating system name.
  • -v β€” increases the amount of information that is reported. stack multiple v's for more verbose output. πŸ“’
  • --depend β€” lists the dependent (source) files for all files in the package. 🧚
  • --output-dir directory β€” specifies the directory for output files. the default directory is based on the operating system, version, and architecture. πŸ“
  • -s setup.ext β€” (paired with --setup-image below πŸ‘‡)
  • --setup-image setup.ext β€” includes the ESP Software Wizard with the specified image file, bundled with the distribution. heads up though: this option is currently only supported by portable distributions. 😭
  • --setup-program /foo/bar/setup β€” specifies the setup executable to use with the distribution. and again: this option is currently only supported by portable distributions. 🫢
  • --setup-types setup.types β€” specifies the setup.types file to include with the distribution. yep, you guessed it: this option is currently only supported by portable distributions. 🌈
  • --uninstall-program /foo/bar/uninst β€” specifies the uninst executable to use with the distribution. and (say it with me) this option is currently only supported by portable distributions. πŸ’–
ok real talk bestie: for -s / --setup-image / --setup-program / --setup-types / --uninstall-program, those only play nice with portable distributions. don't come for me, I'm just the messenger 🫠

✨ ENVIRONMENT ✨

The following environment variables are supported by epm:

  • EPM_SIGNING_IDENTITY β€” the common name that should be used when signing a package. πŸ–ŠοΈβœ¨

✨ LIST FILES ✨

the EPM list file format is now described over in the epm.list(5) man page. so like, go read that one next, it's the sequel πŸ¦‹


✨ SEE ALSO ✨

epminstall(1), mkepmlist(1), epm.list(5), setup(1).

the friend group πŸ’œ


Copyright Β© 1999-2020 by Michael R Sweet, All Rights Reserved. Copyright Β© 2020 by Jim Jagielski, All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


and that's the whole page, bestie πŸ’… this one's from the ESP Package Manager on 20 November 2020 β€” go make something iconic with it. mwah πŸŽ€πŸ’–

πŸ“¦ where this page comes from