8308135581
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> |
||
---|---|---|
.github | ||
acceptance | ||
cmd/nfpm | ||
deb | ||
glob | ||
internal/helpers | ||
rpm | ||
testdata | ||
.gitignore | ||
.golangci.yml | ||
.goreleaser.yml | ||
.travis.yml | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
LICENSE.md | ||
Makefile | ||
nfpm_test.go | ||
nfpm.go | ||
README.md | ||
tools.go |
NFPM
NFPM is Not FPM - a simple deb and rpm packager written in Go.
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:
The next step is to run nfpm pkg --target mypkg.deb
.
NFPM will guess which packager to use based on the target file extension.
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
Would you like to fix something in the documentation? Feel free to open an issue.