$ echo "now: $(TZ=GMT date)"; wget -S -q http://azure.archive.ubuntu.com/ubuntu/dists/vivid/Release -O /dev/null now: Fri Apr 3 14:37:31 GMT 2015 HTTP/1.1 200 OK Date: Fri, 03 Apr 2015 14:37:31 GMT Server: Apache/2.2.22 (Ubuntu) Last-Modified: Fri, 03 Apr 2015 14:28:00 GMT ETag: "34f32-512d2c15bbc00" Accept-Ranges: bytes Content-Length: 216882 Cache-Control: max-age=1228, proxy-revalidate Expires: Fri, 03 Apr 2015 14:58:00 GMT Keep-Alive: timeout=5, max=100 Connection: Keep-Alive
So the 'Expires' is most definitely in the future. This one is currently 21 minutes in the future. I didn't say that the solutions I pointed to were complete, but the fact that people are attempting to solve the problem (and doing so incorrectly) should indicate a need for a good solution. It would seem possible for apt to go through the sources.list (+sources.list.d/*) and figure out what it was going to download. It could decide based on previously stored headers or a global default "5 minutes" or a per-mirror default if it should bother. Of course it would make sense to have the ability to force. running 'apt-get update' on a system does take real time. On a cloud instance with a on-network mirror: % TIMEFORMAT='real=%3lR user=%3lU sys=%3lS' bash -c 'for i in $(seq 1 10); do printf "%-3s " $i ; time apt-get update -q >/dev/null; done' 1 real=0m3.987s user=0m3.628s sys=0m0.244s 2 real=0m4.052s user=0m3.688s sys=0m0.220s 3 real=0m3.980s user=0m3.656s sys=0m0.204s 4 real=0m4.077s user=0m3.676s sys=0m0.272s 5 real=0m4.068s user=0m3.732s sys=0m0.228s 6 real=0m4.052s user=0m3.688s sys=0m0.236s 7 real=0m4.201s user=0m3.812s sys=0m0.248s 8 real=0m4.247s user=0m3.852s sys=0m0.252s 9 real=0m4.059s user=0m3.688s sys=0m0.256s 10 real=0m4.064s user=0m3.680s sys=0m0.252s It just seems reasonable to me, that operations 2->10 could take .002 seconds. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to apt in Ubuntu. https://bugs.launchpad.net/bugs/1429285 Title: feature request: apt-get update --if-necessary Status in apt package in Ubuntu: New Bug description: In many cases (juju, lxc containers .. ) we find ourselves in the position of not knowing if the apt-cache has been udpated recently. So, you either risk not doing it, or do it and it takes some time and generates load. so long story short, you always run 'apt-get update' which is quite often unnecessary. Would it be possible to add (or is there now) something like '--if-necessary' or '--if-necessary=5m'. I could imagine that that would look at /var/lib/apt/lists and check timestamps on files for each url that /etc/apt/sources.list[.d/*] would hit. If nothing was needed and reasonably recent, then it would not do the update. There exist other solutions to this like: https://coderwall.com/p/0xtstw/doing-an-apt-get-update-in-ansible-only-if-a-condition-is-met https://blog.kumina.nl/2010/11/puppet-tipstricks-running-apt-get-update-only-when-needed/ It'd be nice if we had a sane way to say: update if you need to, otherwise don't waste time and resources ProblemType: Bug DistroRelease: Ubuntu 15.04 Package: apt 1.0.9.3ubuntu1 ProcVersionSignature: Ubuntu 3.19.0-7.7-generic 3.19.0 Uname: Linux 3.19.0-7-generic x86_64 ApportVersion: 2.16.2-0ubuntu1 Architecture: amd64 CurrentDesktop: Unity Date: Fri Mar 6 17:06:22 2015 EcryptfsInUse: Yes InstallationDate: Installed on 2015-01-02 (63 days ago) InstallationMedia: Ubuntu 15.04 "Vivid Vervet" - Alpha amd64 (20150101) SourcePackage: apt UpgradeStatus: No upgrade log present (probably fresh install) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1429285/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp