1
1
mirror of https://github.com/goreleaser/nfpm synced 2024-11-18 19:04:07 +01:00
NFPM is Not FPM - a simple deb, rpm and apk packager written in Go
Go to file
dependabot-preview[bot] 8308135581
chore(deps): bump gopkg.in/yaml.v2 from 2.2.8 to 2.3.0 (#135)
Bumps [gopkg.in/yaml.v2](https://github.com/go-yaml/yaml) from 2.2.8 to 2.3.0.
- [Release notes](https://github.com/go-yaml/yaml/releases)
- [Commits](https://github.com/go-yaml/yaml/compare/v2.2.8...v2.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-13 16:36:39 -03:00
.github docs: funding.yml 2019-05-25 18:14:44 -03:00
acceptance feat: version release/prerelease options (#111) 2020-02-18 10:49:10 -03:00
cmd/nfpm feat: update golangci-lint (#137) 2020-05-13 16:24:06 -03:00
deb feat: update golangci-lint (#137) 2020-05-13 16:24:06 -03:00
glob feat: update golangci-lint (#137) 2020-05-13 16:24:06 -03:00
internal/helpers feat: update golangci-lint (#137) 2020-05-13 16:24:06 -03:00
rpm feat: update golangci-lint (#137) 2020-05-13 16:24:06 -03:00
testdata fix: rpm groups (#92) 2019-10-23 14:03:35 -03:00
.gitignore fix: add stricter linting (#87) 2019-10-11 13:11:28 -07:00
.golangci.yml feat: update golangci-lint (#137) 2020-05-13 16:24:06 -03:00
.goreleaser.yml fix: update goreleaser config 2020-01-15 14:28:42 -03:00
.travis.yml clean: remove last mentions to rpmbuild (#84) 2019-10-09 16:30:17 -03:00
CODE_OF_CONDUCT.md docs: readme, coc, contributing 2018-02-18 19:32:16 -03:00
CONTRIBUTING.md fix(#103): ensure the package is not included in itself (#104) 2019-11-11 13:57:10 -08:00
Dockerfile feat: added docker image 2018-06-15 16:33:52 -03:00
go.mod chore(deps): bump gopkg.in/yaml.v2 from 2.2.8 to 2.3.0 (#135) 2020-05-13 16:36:39 -03:00
go.sum chore(deps): bump gopkg.in/yaml.v2 from 2.2.8 to 2.3.0 (#135) 2020-05-13 16:36:39 -03:00
LICENSE.md
Makefile feat: update golangci-lint (#137) 2020-05-13 16:24:06 -03:00
nfpm_test.go feat: update golangci-lint (#137) 2020-05-13 16:24:06 -03:00
nfpm.go feat: update golangci-lint (#137) 2020-05-13 16:24:06 -03:00
README.md clean: remove last mentions to rpmbuild (#84) 2019-10-09 16:30:17 -03:00
tools.go feat: update golangci-lint (#137) 2020-05-13 16:24:06 -03:00

GoReleaser Logo

NFPM

NFPM is Not FPM - a simple deb and rpm packager written in Go.

Release Software License Travis Codecov branch Go Report Card Go Doc SayThanks.io Powered By: GoReleaser

Why

While fpm is great, for me it is a bummer that it depends on Ruby, tar and probably other software.

I wanted something that could be used as a binary and/or as a lib on go-software, so I hacked this together and it works!

Goals

  • be simple to use
  • provide packaging for the most common linux packaging systems (at very least deb and rpm)
  • be distributed as a single binary
  • reproducible results
    • depend on the fewer external things as possible
    • generate packages based on yaml files (maybe also json and toml?)
  • be possible to use it as a lib in other go projects (namely goreleaser itself)
  • support complex packages and power users

Usage

The first steps are to run nfpm init to initialize a config file and edit the generated file according to your needs:

nfpm init

The next step is to run nfpm pkg --target mypkg.deb. NFPM will guess which packager to use based on the target file extension.

nfpm pkg

And that's it!

Usage as a docker image

You can run it with docker as well:

docker run --rm \
  -v $PWD:/tmp/pkg \
  goreleaser/nfpm pkg --config /tmp/pkg/foo.yml --target /tmp/pkg/foo.rpm

That's it!

Usage as lib

You can look at the code of nfpm itself to see how to use it as a library, or, take a look at the nfpm pipe on GoReleaser.

Attention: GoReleaser deb packager only compiles with go1.10+.

Status

  • both deb and rpm packaging are working but there are some missing features.

Special thanks

Thanks to the fpm authors for fpm, which inspires nfpm a lot.

Donate

Donations are very much appreciated! You can donate/sponsor on the main goreleaser opencollective! It's easy and will surely help the developers at least buy some or 🍺!

Stargazers over time

goreleaser/nfpm stargazers over time


Would you like to fix something in the documentation? Feel free to open an issue.