fpm/README.rst

104 lines
3.0 KiB
ReStructuredText
Raw Permalink Normal View History

fpm
===
|Chat| |Gem|
The goal of fpm is to make it easy and quick to build packages such as rpms,
debs, OSX packages, etc.
2016-04-08 08:12:14 +08:00
fpm, as a project, exists to help you build packages, therefore:
2011-01-04 10:47:00 +08:00
* If fpm is not helping you make packages easily, then there is a bug in fpm.
* If you are having a bad time with fpm, then there is a bug in fpm.
* If the documentation is confusing, then this is a bug in fpm.
2011-01-04 10:47:00 +08:00
If there is a bug in fpm, then we can work together to fix it. If you wish to
report a bug/problem/whatever, I welcome you to do on `the project issue tracker`_.
2011-04-23 02:20:38 +08:00
.. _the project issue tracker: https://github.com/jordansissel/fpm/issues
2013-01-30 04:57:35 +08:00
2016-11-27 20:02:58 +08:00
You can find out how to use fpm in the `documentation`_.
2016-11-28 15:09:50 +08:00
.. _documentation: https://fpm.readthedocs.io/en/latest/
2016-11-27 20:02:58 +08:00
2017-06-15 12:53:57 +08:00
You can learn how to install fpm on your platform in the `installation guide`_.
.. _installation guide: https://fpm.readthedocs.io/en/latest/installation.html
2017-06-15 12:53:57 +08:00
Project Principles
------------------
* Community: If a newbie has a bad time, it's a bug.
* Engineering: Make it work, then make it right, then make it fast.
* Capabilities: If it doesn't do a thing today, we can make it do it tomorrow.
2017-06-15 12:53:57 +08:00
Backstory
---------
2011-01-04 10:47:00 +08:00
Sometimes packaging is done wrong (because you can't do it right for all
situations), but small tweaks can fix it.
And sometimes, there isn't a package available for the tool you need.
And sometimes if you ask "How do I get python 3.9 on RHEL 8?" some unhelpful
2011-01-04 11:36:07 +08:00
trolls will tell you to "Use another distro"
2018-12-13 22:52:39 +08:00
Further, job switches have me flipping between Ubuntu and CentOS. These use
2012-03-09 10:38:59 +08:00
two totally different package systems with completely different packaging
policies and support tools. Learning both was painful and confusing. I want to
save myself (and you) that pain in the future.
2011-01-04 11:36:07 +08:00
It should be easy to say "here's my install dir and here's some dependencies;
please make a package"
2011-01-04 10:47:00 +08:00
The Solution - FPM
------------------
2011-01-04 10:47:00 +08:00
I wanted a simple way to create packages without needing to memorize too much.
2011-01-04 10:47:00 +08:00
I wanted a tool to help me deliver software with minimal steps or training.
2011-01-04 10:47:00 +08:00
The goal of FPM is to be able to easily build platform-native packages.
With fpm, you can do many things, including:
* Creating packages easily (deb, rpm, freebsd, etc)
2011-01-04 10:47:00 +08:00
* Tweaking existing packages (removing files, changing metadata/dependencies)
* Stripping pre/post/maintainer scripts from packages
.. include: docs/installing
2011-01-04 11:38:05 +08:00
2016-11-27 20:02:58 +08:00
Things that should work
-----------------------
2011-01-07 18:38:07 +08:00
Sources:
* gem (even autodownloaded for you)
2011-05-17 10:03:00 +08:00
* python modules (autodownload for you)
2012-03-09 10:38:59 +08:00
* pear (also downloads for you)
2011-01-07 18:38:07 +08:00
* directories
* tar(.gz) archives
2011-01-07 18:38:07 +08:00
* rpm
2012-03-09 10:38:59 +08:00
* deb
2011-01-07 18:38:07 +08:00
* node packages (npm)
* pacman (ArchLinux) packages
2011-01-07 18:38:07 +08:00
Targets:
* deb
* rpm
2011-06-16 01:31:01 +08:00
* solaris
* freebsd
2012-03-09 10:38:59 +08:00
* tar
* directories
* Mac OS X `.pkg` files (`osxpkg`)
* pacman (ArchLinux) packages
2011-01-07 18:38:07 +08:00
2016-11-27 20:02:58 +08:00
.. include: docs/contributing
.. |Chat| image:: https://img.shields.io/badge/irc-%23fpm%20on%20freenode-brightgreen.svg
:target: https://webchat.freenode.net/?channels=fpm
.. |Gem| image:: https://img.shields.io/gem/v/fpm.svg
:target: https://rubygems.org/gems/fpm