In Ubuntu, the most convenient way to get a system up to date is to call apt-get update followed by apt-get upgrade. However, on a system that is part of a production environment, it is common practice to test the updates first on an offline system and then apply the very same updates that have been tested on the production system. I wonder if this is possible with apt-get upgrade - is there a way to specify the upgrade in more detail, e.g. by specifying a date until when the upgrade is to be performed?
If you want to specify a date when the upgrade is to be performed, you should cron it.
If you're going to do a wholesale upgrade, then put this in your crontab with the desired date:
/usr/sbin/apt-get update --yes
If you want to only do specific updates, then I suggest using the format from @psusi above and put each package into the list again with the --yes flag.
The --yes flag simply answers yes to any questions that come up so the install won't hang waiting for someone to press a key. Of course, auto-yessing your upgrades is only sane once you've fully tested them on dev.
This is only a start, but you can at least see what is about to be changed...
apt-get --simulate upgrade
So on the dev/qa system you run that and save the output; it has the full package names and their versions. Then do your actual upgrade. Then on the production systems you can use the --simulate. You'd then at least know if the upgrade will be the same as you did on the dev/qa.
You're still stuck having to manually do the upgrade package by package, if by the time you get around to doing a prod machine, there's actually something newer.