From what I understand the deployment process consists of these steps.

Compiling, linking/packaging, deploying.

What does the packaging refer to? is that just a reference to packaging the object files together?

  • 1
    Packaging is unrelated to compiling or linking or any other part of producing a binary executable file. Rather, it means putting binary executables into some kind of structure that aids in deployment, such as a folder with some plain text files describing what your package is and what it depends on and whatnot which is then compressed and uploaded somewhere. I might post a proper answer later if no one beats me to it. – Ixrec Jan 25 '16 at 21:12
  • 1
    This definition doesn't make a lot sense to me. How is it a definition at all, if “deployment” is defined as “X, Y / Z and deploying”? Also, there are languages where we don't have to compile or link at all. – 5gon12eder Jan 25 '16 at 21:12

Packaging means packaging.

Software development in a nutshell:

First, you plan your project. What does it need to do? How will it do it? Who will make it? And when?

Then you design the system. Lots of diagrams. And documentation!

Then you implement it. It's coding time, batman.

Now you can build it. In some languages/paradigms, that means compiling and linking. In others, this actually may be an empty step. For example, you may wish to deploy a Python script as-is.

Next, you take the distributables/executables/documentation/resources out of your build directory/staging area, and put them into whatever entity you're going to actually send to your users. Be that an archive file, or a self-extracting installer, or a CD image (ISO), or a Red Hat RPM, or a Debian package file, or a physical DVD, or a strand of specially-sequenced DNA spliced onto the genome of an unfortunate carrier pigeon, or… whatever. This is packaging. Again, this may be an empty step, if you only have a single executable, and you just need to get it to someone as-is.

Your packaged product is then deployed, either by digitally transmitting it, or by sending it in the post on floppy disks, or by sending it on a USB stick with your own engineer to perform a free on-site installation, or…


Yes. For example with a nodejs application a developer will download the various dependencies and build them from source (the one command npm install will do that for all dependencies, as long as none are too weird). However when deploying to the wild the developer will probably bundle up all the files he has downloaded into a tarball or something fancier. That way the end user doesn't gets all the files and doesn't have to have git installed.

Node is a scripting language but the concepts are pretty much the same everywhere, as far as I have seen.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.