I am in the unfortunate situation where I need to deploy and upgrade packages and config files on machines with no root access and no ability to use or install a package manager. Are there any neat solutions that allow creation of custom install packages?
I am open to custom compiles of some software in a custom location on the servers if it helps the situation.
Im almost at the point where I might end up having to write my own java package management system 🙁
In case its relevant some further information. The installer needs to install and configure the following:
- Apache Tomcat
- WAR files into Apache Tomcat
- ActiveMQ
- Some JAR files with some corresponding Cron entries
This sounds a bit perverse. Why do you need to “deploy” Tomcat / ActiveMQ to (lots of) machines that you don’t have root or sudo access to?
Anyway, I don’t see the need for a custom installer to do this (* see note below).
The
yum --installroot /home/whatever <package>should install<package>in a non-standard location. If you cannot useyumor whatever, you should be able to download a binary ZIP or TAR file and unpack it. And once you have installed / unpacked whatever, you can leap in and edit the configuration files using the relevant app tools … or a text editor. Tomcat can be installed in any directory you feel like, and run using your own login account if you need. I imaging ActiveMQ is the same.Deployment of a WAR file is simply a matter of copying it to Tomcat’s webapp directory.
Creation of a cron entry is simply a matter of running the
crontab(1)command.And if you have to go through this process lots of times, you could write some shell scripts to do the repetitive work for you.
(* Note – there are a couple of possible roadblocks.
You will need root/sudo access deploy a startup file for Tomcat, etc to “/etc/init.d” to get it to start automatically when the system boots. There is no easy way around this. The “/etc/init.d” directory is only writeable by root.
If you want manually launch Tomcat to run on ports 80 / 443, you will need root/sudo access to launch it. Again, there is no easy way around this. Only a “root” process can listen on port numbers less that 1024.)