29

When I do

sudo apt-get update
sudo apt-get upgrade

Sometimes the Ubuntu GUI Update Manager will still have some items left. e.g. “Complete Generic Linuux kernel”.

I know there's also sudo apt-get dist-upgrade, but that touches other things.

My question is, what's another command line option that I can use that'd update the rest of items shown in GUI update manager (but doesn't touch anything else extra). In other words, I am looking for command line equivalent.

EDIT: This question refers to the update manager which is equivalent to Software Updater in newer versions (e.g. 16.04), as @Eliah Kagan pointed out.

Xah Lee
  • 393
  • The Ubuntu update-manager package is open source so you might be able to fish through the source code to find your answer. I took a quick look, but I didn't notice anything unusual about the way they upgrade. –  Jan 26 '13 at 15:22
  • 3
    I'm pretty sure the answer is apt-get dist-upgrade. What do you mean, "that touches other things"? – Flimm Feb 05 '13 at 08:59
  • It's not clear to me after some research that there is a direct equivalent, but there is a very enlightening answer explaining the difference between apt-get and aptitude. My guess is that Update Manager is similar to apt-get in that it has a slightly more specialized set of rules that it uses for updating, except that unlike apt-get update, its ruleset allows for installing new packages in some specialized cases, such as kernel updates. Hopefully someone more knowledgeable – cha5on Feb 05 '13 at 07:25

5 Answers5

23

As Flimm commented, the answer really is sudo apt-get dist-upgrade (after running sudo apt-get update, which GUI package management tools automatically do the equivalent of). That is at least the closest thing to running the Software Updater (called Update Manager in older releases).

Running apt-get upgrade will upgrade packages that can be upgraded:

  • without installing any packages that aren't already installed in some version, and
  • without removing any packages.

The Update Manager is capable of doing both these things, so apt-get dist-upgrade is quite close to it.

  • Running sudo apt-get dist-upgrade will not, by itself, upgrade your Ubuntu system to a newer release. In fact, unlike in Debian, apt-get dist-upgrade is not a supported way to upgrade to a new release. In Debian (and in Ubuntu, though it may sometimes fail and is unsupported), changing all the repositories listed in /etc/apt/sources.list to the repositories for the next release and running sudo apt-get dist-upgrade will attempt to upgrade to the next release.

Because apt-get dist-upgrade can remove package (and install new packages you might not want), it's always best to look through the description of what it intends to do before pressing y.

So while running sudo apt-get -y upgrade is usually reasonable, the -y flag should rarely be used with dist-upgrade.

The reason you don't get new kernel versions with sudo apt-get upgrade is because they each are provided by separate, differently named packages. (The kernel version is part off the name.) This is to facilitate keeping an old kernel installed alongside a newer kernel (and being able to select between them in the GRUB menu).

The automatic offering of new kernel packages for installation is accomplished by having a metapackage (like linux-image-generic) installed. When a new kernel comes out for your Ubuntu release, your kernel metapackage is upgraded and the upgraded version fo that metapackage lists the new kernel as a dependency (without preventing the old kernel from continuing to be installed).

If you don't want to use sudo apt-get dist-upgrade, then you can always manually upgrade the individual packages that are listed as held back when you ran sudo apt-get upgrade. To do this, "install" them: sudo apt-get install packagename.

Eliah Kagan
  • 117,780
11

If you're looking to open the software update window from the command line (which is what I gathered you were getting at, mostly because that's why I searched for this and ended up here as that is my goal) in order to give yourself root access to the GUI window (I had a permission issue trying to do this from remoting in)

sudo update-manager
Tim
  • 32,861
  • 27
  • 118
  • 178
QuestionReality
  • 515
  • 7
  • 11
  • If I understand the question properly, the answer by @questionreality is the right one, at least it worked for me. Only thing is, how to proceed with the update without going trough the window prompt? I mean, a purely command line operation? – nightcod3r Jun 14 '17 at 07:56
1

I just found this answer but lost the source so I can't credit it...

The below command will install the package that has the kernel as a dependency and so will update your kernel choosing the right one to do it with.

My 14.4 install had been upgraded to 14.10 except the kernel. In my case, the kernel updated from 3.13.x to 3.16.x although it is possible that the 3.13.0.x versions may have had updates. Apparently 3.13 wasn't an LTS kernel though.

sudo apt-get install linux-image-generic
Fabby
  • 34,259
Owen
  • 11
  • 1
    if the guy who did a negative vote on this answer had some basic manners to say "why" would have helped the Linux learners like me to know why its wrong. – Clain Dsilva Jul 19 '15 at 10:14
0

Likely is the wrong place but I believe you want to do:

apt-get -f install

This will clean up outstanding dependencies

  • 1
    thanks. that doesn't seem to be it though. I did apt-get -f install then update and upgrade again, then go to the manager gui and check, still items. –  Jan 26 '13 at 06:14
0

apt command line utilities don't provide the exact same level of comfort as their gui equivalent (namely software updater). While a apt-get dist-upgrade will take care of the bulk of the upgrade, that is to say download and installation of newer packages, it will not detect the existence of a new release of ubuntu (or debian), which the ubuntu gui utility will do. The missing part is to edit /etc/apt/sources.list (or related files in /etc/apt/sources.list.d/ - but you probably don't have these), to tell apt that the new release exists, and where the repositories are.

For instance, for a dist-upgrade from utopic to vivid, you could open /etc/apt/sources.list, and do a quick search and replace of utopic to vivid, and then run the dist-upgrade CLI command. A safer path could be to duplicate the lines in that file, and do the search and replace only on these duplicated lines, thus keeping the utopic repositories.

For more informations, I suggest to consult the man page on sources.list which describes the file format, and how to edit it.

didierc
  • 136