Running antergos(based on Arch), I have stumbled across an something that I could not comprehend...

What is it?

With this being said, after running pacman -Syy to synchronize and update my master package database and then running pacman -Su to upgrade my system, I get this strange output:


Total Download Size:    221.05 MiB
Total Installed Size:  1230.56 MiB
Net Upgrade Size:        -1.80 MiB

Although almost all of the output looks normal, the part I do not understand is how the net upgrade size is negative? The conclusion I came upon is that some package out there must be deleting a lot of its code... Please let me know if this is true or not because it is driving me crazy... Thanks.

  • I'd just be guessing, but you're probably correct, and 1.8MiB isn't much. It's not necessarily 'code', but libraries, documentation, examples, samples, etc., etc. Packages contain a lot of stuff. Be happy, you got some space back. – EightBitTony Jan 7 '18 at 0:24
  • Thanks @EightBitTony, that was the only explanation that made sense to me so... Yeah! – NerdOfCode Jan 7 '18 at 0:24

First, there is no need to run pacman -Syy, it achieves nothing and just places unnecessary loads on the mirrors, just run pacman -Syu.

The reason you are seeing a negative upgrade size is that due to some changes in either upstream or in packaging, one or more of the packages to be upgraded is of a smaller size than the currently installed version(s).

Without full pacman output, it is impossible to say which package(s) are affected, but there could be a myriad of reasons, including:

  • refactoring upstream has resulted in less bloat
  • functionality has been split out into another package or library
  • someone screwed up and forgot to include something and your system is about to explode...
| improve this answer | |
  • Wow. Great answer, but isn’t ‘Pacman-Syy’ just updating my master package list? Doesent the ‘-y’ symbolize this? If so wouldn’t the commands be accomplishing the same sorts? – NerdOfCode Jan 7 '18 at 0:35
  • 1
    No, passing yy "forces a refresh of all package databases". You don't need to do this every time you upgrade. Just use -Syu. – jasonwryan Jan 7 '18 at 0:37
  • and what does just -y do? – NerdOfCode Jan 7 '18 at 0:38
  • 3
    LIke I said, it is unnecessary, and it creates additional load on the mirrors (which someone has to pay for). It is also bad practice to default to force for any operation; you should understand what you are doing and apply force only when it is necessary. – jasonwryan Jan 7 '18 at 0:47
  • 1
    Without forcing, it downloads the package database files only if they have changed since you last downloaded them. With forcing, it always downloads them. This puts an extra, completely unnecessary load on the archive servers, and additional bandwitdh fees for the operators. – cas Jan 7 '18 at 1:40

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.