Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 123 lines (84 sloc) 4.081 kb
3cee10d @jordansissel - Move to markdown
authored
1 # Effing Package Management.
2
3 ## Preface
4
e21d839 @jordansissel - review/update readme
authored
5 Package maintainers work hard and take a lot of shit. You can't please
6 everyone. So, if you're a maintainer: Thanks for maintaining packages!
3cee10d @jordansissel - Move to markdown
authored
7
0008d75 @jordansissel - Add baylisa notes
authored
8 ## What is fpm?
9
10 It helps you build packages quickly (Packages like RPM and DEB formats).
11
eefe988 @jordansissel Update readme
authored
12 Here is a presentation I gave on fpm at BayLISA: <http://goo.gl/sWs3Z> (I
13 included speaker notes you can read, too)
14
f8adadc @jordansissel Update readme
authored
15 At BayLISA in April 2011, I gave a talk about fpm. At the end, I asked "What
16 can I package for you?"
17
18 Someone asked for memcached.
19
20 Google for 'memcached', download the source, unpack, ./configure, make, make
21 install, fpm, deploy.
22
23 In 60 seconds, starting from nothing, I had both an RPM and a .DEB of memcached
17bc40b @jordansissel - update readme
authored
24 ready to deploy, and I didn't need to know how to use rpmbuild, rpm specfiles,
25 dh_make, debian control files, etc.
0008d75 @jordansissel - Add baylisa notes
authored
26
3cee10d @jordansissel - Move to markdown
authored
27 ## Backstory
28
29 Sometimes packaging is done wrong (because you can't do it right for all
30 situations), but small tweaks can fix it.
31
32 And sometimes, there isn't a package available for the tool you need.
33
34 And sometimes if you ask "How do I get python 3 on CentOS 5?" some unhelpful
537e0af @jordansissel - Update readme
authored
35 trolls will tell you to "Use another distro"
36
e21d839 @jordansissel - review/update readme
authored
37 Further, a job switches have me flipping between Ubuntu and CentOS. These use
38 two totally different package systems with completely different packaging
39 policies and support tools. Learning both was painful and confusing. I want to
40 save myself (and you) that pain in the future.
537e0af @jordansissel - Update readme
authored
41
42 It should be easy to say "here's my install dir and here's some dependencies;
43 please make a package"
3cee10d @jordansissel - Move to markdown
authored
44
45 ## The Solution - FPM
46
47 I want a simple way to create packages without all the bullshit. In my own
48 infrastructure, I have no interest in Debian policy and RedHat packaging
537e0af @jordansissel - Update readme
authored
49 guidelines - I have interest in my group's own style culture and have a very strong
3cee10d @jordansissel - Move to markdown
authored
50 interest in getting work done.
51
e97718a @jordansissel Add clarification that we can create policy-friendly packages if desired
authored
52 (This is not to say that you can't create packages with FPM that obey Debian or
53 RedHat policies, you can and should if that is what you desire)
54
3cee10d @jordansissel - Move to markdown
authored
55 The goal of FPM is to be able to easily build platform-native packages.
56
57 * Creating packages easily (deb, rpm, etc)
58 * Tweaking existing packages (removing files, changing metadata/dependencies)
59 * Stripping pre/post/maintainer scripts from packages
60
fafb9eb @jordansissel - add install notes
authored
61 ## Get with the download
62
63 You can install fpm with gem:
64
65 gem install fpm
66
e21d839 @jordansissel - review/update readme
authored
67 Running it:
68
69 fpm -s TYPE -t TYPE ...
fafb9eb @jordansissel - add install notes
authored
70
293841f @jordansissel - Update readme
authored
71 ## Things that are in the works or should work:
72
73 Sources:
74
75 * gem (even autodownloaded for you)
d5f97a6 @jordansissel - note python support
authored
76 * python modules (autodownload for you)
e21d839 @jordansissel - review/update readme
authored
77 * pear (also downloads for you)
293841f @jordansissel - Update readme
authored
78 * directories
79 * rpm
e21d839 @jordansissel - review/update readme
authored
80 * deb
293841f @jordansissel - Update readme
authored
81 * node packages (npm)
82
83 Targets:
84
85 * deb
86 * rpm
97d63ee @jordansissel Edited README.md via GitHub
authored
87 * solaris
e21d839 @jordansissel - review/update readme
authored
88 * tar
89 * directories
293841f @jordansissel - Update readme
authored
90
00b8562 @jordansissel - snake the 'contributing' part from the logstash readme
authored
91 ## Need Help or Want to Contribute?
92
93 All contributions are welcome: ideas, patches, documentation, bug reports,
94 complaints, and even something you drew up on a napkin.
95
96 It is more important to me that you are able to contribute and get help if you
97 need it..
98
99 That said, some basic guidelines, which you are free to ignore :)
100
101 * Have a problem you want fpm to solve for you? You can email the
102 [mailing list](http://groups.google.com/group/fpm-users), or
103 join the IRC channel #fpm on irc.freenode.org, or email me personally
104 (jls@semicomplete.com)
105 * Have an idea or a feature request? File a ticket on
106 [github](https://github.com/jordansissel/fpm/issues), or email the
107 [mailing list](http://groups.google.com/group/fpm-users), or email
108 me personally (jls@semicomplete.com) if that is more comfortable.
109 * If you think you found a bug, it probably is a bug. File it on
110 [jira](https://github.com/jordansissel/fpm/issues) or send details to
111 the [mailing list](http://groups.google.com/group/fpm-users).
112 * If you want to send patches, best way is to fork this repo and send me a pull
113 request. If you don't know git, I also accept diff(1) formatted patches -
114 whatever is most comfortable for you.
115 * Want to lurk about and see what others are doing? IRC (#fpm on
116 irc.freenode.org) is a good place for this as is the
117 [mailing list](http://groups.google.com/group/fpm-users)
96892fe @jordansissel - Add notes about my committment to fixing blocker bugs.
authored
118
e21d839 @jordansissel - review/update readme
authored
119 ## More Documentation
3945f23 @jordansissel - update docs
authored
120
86251ac @jordansissel I'm bad at markdown.
authored
121 [See the wiki for more docs](https://github.com/jordansissel/fpm/wiki)
3945f23 @jordansissel - update docs
authored
122
Something went wrong with that request. Please try again.