Reputation: 8629
have you struggled with Linux deployment before?
I need to deploy an application into a dedicated Linux box with no outside network access. The configuration should be as simple as possible, robust for different configurations (missing libraries and build tools) and preferably automatic. Another difficulty I need to consider is that I need to connect to an Oracle database.
What would you recommend as the best way for deployment? I have some ideas, but not sure which is the best.
apt-get
, but I can copy all the packages I needdpkg -s
to check which packages they are, but I'm really not sure if I might miss dependencies../configure LDFLAGS=-static
with no errors and it works on my computer nowchroot
into this directory and run it without problems, does this mean this is okay?Please share your similar experience.
Upvotes: 3
Views: 180
Reputation: 4839
C with static linking solves a lot of the portability problems at the expense of a larger executable. To make sure that everything is truly getting statically linked and not secretly depending on any outside libraries, run ldd on your executable and make sure it isn't dynamically loading everything. Note that this won't be 100% portable amoung various linux machines because Oracle instantclient has some dependencies on kernel versions, but it should work on any reasonably new kernel.
Edit: If the box has LAN access and and just no internet access, why not run your own apt repository on the local network. You could even create a .deb for your application and put it on the same server, than on that machine you just need to execute apt-get myApplication and it will pull down your app and any noninstalled dependencies as well. Setting up an apt mirror is actually pretty easy and this would be pretty slick. If network access is missing alltogether, you can still create an install dvd that has all the debs including your app and set up apt-get to pull from there.
Upvotes: 1