3 ms·
I don't particularly like homebrew compared to the Linux distro package managers, but I have found it convenient for messing around on my Macbook due to the lar
by ajdecon 13y ago
I don't particularly like homebrew compared to the Linux distro package managers, but I have found it convenient for messing around on my Macbook due to the large existing library.
A couple of other interesting projects in the Linux software installation space, which I have been using recently:
* fpm ("Effing Package Management"): https://github.com/jordansissel/fpm/wiki https://github.com/jordansissel/fpm/wiki
Can be used to generate deb or rpm packages given a source directory or existing package of various types. (For example, generate an RPM from a Rubygem.)
I use this frequently to quickly create distro packages from software which only has source available, then put them in a yum repository on S3 for my private projects. (Creating package repositories is so easy, and signing them isn't much harder. It's really worth doing.)
* EasyBuild: https://github.com/hpcugent/easybuild https://github.com/hpcugent/easybuild
EasyBuild automates building software from source, and provides a framework for automating a variety of complex build processes. It's targeted at high-performance scientific computing, where many of the applications have arcane or bizarre build processes, and includes modules for a huge variety of scientific apps.
The big advantage (IMO) is that EasyBuild integrates with Environment Modules [1], which makes it easy to work with many different versions of the same software side-by-side. EB doesn't put everything in the same tree; each package is installed into its own directory and Environment Modules is used to manage the PATH, LD_LIBRARY_PATH, etc. "module load hdf5/1.8.11" and you're good.
I use it extensively both on my laptop and on some of the compute clusters I manage, where users frequently need to be able to switch library and application versions quickly and easily.
One workflow I've been experimenting with recently: Use EasyBuild to build and install all packages into locations in /opt on a dev machine, then use fpm to package them and upload into my repo. Reproduce the system by installing the relevant packages from yum, and still get the flexibility of using Environment Modules.
[1] http://modules.sourceforge.net/ http://modules.sourceforge.net/
- aktau 13y agoExactly! For anything were I have to deploy, I currently use FPM which you mentioned together with freight (https://github.com/rcrowley/freight https://github.com/rcrowley/freight) to generate a debian apt repository. Just serve the resulting folder with nginx/apache/... and you're good to go. It also signs the packages.