This morning I read about a frustrated Flow user that did not manage to install the FormBuilder package. While my first reaction was somewhat tongue-in-cheek (sorry!), it can indeed be confusing to install packages if you do not know enough about TYPO3 Flow and Composer.
That is because there are basically two ways to install a package: with Composer or without Composer. And both ways have their own variations. Let's see.
Installing via Composer can be very easy, if a package is available on Packagist. Then a simple
composer require typo3/formbuilder
would be enough. This is what our frustrated user tried, but it didn't work. That is because FormBuilder is not registered (yet) on Packagist. It can still be installed via Composer, but the Composer manifest (composer.json) needs to be told about a repository for that package:
Now Composer can check that repository for compatible packages and install them as usual.
Packages can still be installed without using Composer. There are basically two ways.
You can simply go into Packages/Application and clone the package from its repository (the more ad-hoc variant) or properly add it as a git submodule to your "root project" (the distribution you use to pull everything together).
For your own packages it can be a shortcut way to version custom packages directly in the root project. This can be the easiest way if you do not plan to use the code as a reusable package.
The Flow documentation describes this as well.