Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8040805
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 5, 20262026-06-05T04:00:57+00:00 2026-06-05T04:00:57+00:00

The Twelve-Factor App manifesto says that it is for web applications that … Have

  • 0

The Twelve-Factor App manifesto says that it is for web applications that “… Have a clean contract with the underlying operating system, offering maximum portability between execution environments” [emphasis added by me]

But then it says:

Twelve-factor apps also do not rely on the implicit existence of any
system tools. Examples include shelling out to ImageMagick or curl.
While these tools may exist on many or even most systems, there is no
guarantee that they will exist on all systems where the app may run in
the future, or whether the version found on a future system will be
compatible with the app. If the app needs to shell out to a system
tool, that tool should be vendored into the app.

and they have earlier defined “vendored into the app” as:

scoped into the directory containing the app (known as “vendoring” or
“bundling”).

How should this be done, when (on Linux at least) native 64-bit executables do not run in 32-bit environments, for example – let alone on other operating systems? Or is there a better way of handling this portability issue?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-05T04:00:59+00:00Added an answer on June 5, 2026 at 4:00 am

    In my opinion, it shouldn’t be done at all. This is because:

    • If the native executables are dynamically linked, there is a chance that they will fail to run merely on future OS releases, let alone future or past processor architectures.
    • As far as I understand it, it is not possible to completely future-proof a native executable by statically-linking it. You can still have issues. Solaris doesn’t even support static linking of system libraries!
    • Library dependencies are not the only kind of dependencies that native tools can have. There can be other issues as well.
    • Old ImageMagicks – or even curls – may have security bugs which could allow your application to be compromised. (This is a bit of a contentious point – its validity depends on who you trust more to watch for / apply security updates – the people who maintain and upgrade the servers, or the developers? Of course they might be the same people – for now. But my working assumption here is that the servers would have updates applied eventually, which would in turn protect your app from security holes in system executables that have been fixed in the updates.)

    My view: If your dependency management system of choice simply point-blank cannot handle native executables, stick a note in the README and be done with it. If you don’t have a README, create one. And (for in-house web apps) add the native tools you need to your standard server image or script that you use when setting up a server, and make sure you keep an additional note of why they are there.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm developing an ActionScript 3.0 app for Blackberry Playbook. I have twelve images loaded
I need a query that will have the date, a user's name, and one
I have one date like 12/05/2012 now i would like to change that format
I have a list of strings similar to ['ONE', 'TWO', 'SEVEN', 'TWELVE', 'ONE', 'SEVEN']
I have an input of a random string of twelve characters like this: ABABABABABAB
I have two cell arrays that are <12x1 cell> and they are labeled A
I have created jquery-ajax call for php page that creates content by selecting data
I have twelve events every day from 8am to 8pm every hour. I have
I have twelve <span> 's with the class has_title. Each has a unique title
I have two associative arrays: ArrayA = array( [10] => ten [12] => twelve

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.