How to create .deb.rpm.dmg etc. Using one script

Here is my problem:

I have a program and you want to distribute it in binary format so that users do not need to compile them on their own.

I have already created the .deb package. However, as I recall, there must be some kind of program that takes one configuration file and creates different binary packages in different formats, for example .deb, .rpm or even .dmg, .msi, etc. So, I just need to tell me which file should be included in the package (and how to build it), it can create different packages for me.

After searching for some keywords, I noticed that it is difficult to find such a program without knowing its name. (I really think there should be something like that. Actually, I remembered seeing something somewhere.)

+4
source share
2 answers

Effing Package Management can do both rpm and deb (get it from https://github.com/jordansissel/fpm )

For the cross-platform sort deployments you are talking about, you can try http://project-builder.org/

* Note. I never used these tools, but I heard about them.

+6
source

Your approach is wrong, in my opinion. Your job as a developer is to develop a program, not to pack it for all the different Linux distributions. Let distributions handle the packaging. Since your knowledge of their packaging rules does not exist, you will most likely create binary packages that may be ineffective on some systems and even worse ... may even break user systems.

However, you can :

  • Make sure licensing is straightforward (preferably one of the OSI approved licenses).
  • List your dependencies, including versions, and don't bundle them
  • Moderate updates (for example, updates for the mini / micro versions do not violate the API or make huge changes)
  • Use one of the standard build systems (depending on the project, it may be autotools, setup.py, maven, etc.).
  • Ideally, don't do weird things, but find out how some interesting projects do (an Apache project usually takes a reasonable approach).
  • Then contact the distributions and try to get packages interested in supporting your program.
+3
source

All Articles