Distributing your library in a way that's hard (and or impossible) for a customer to choose what version to use is a bad practice. The main reason, is that you (the library creator), sometimes push bad code, and then, if you don't let your customers avoid using the bad code, they become broken and distrust you.
Today's example: Google's gcloud sdk. This script only lets you run at the version you have installed or the latest version. Sometime recently, Google distributed a broken version of their App Engine integration, so now, you can't deploy to App Engine apps using their script.
Thankfully there are other ways to deploy, but always remember, the ability to rollback is key.