I'm finding myself working on Linux laptop with Ubuntu 19.04 more often than I expected – sometimes I spend most of my day research and preparing Unix Tutorial posts in Linux instead of macOS. Today I got an opportunity to improve my screenshotting productivity a bit more.[Read more…] about Assign Keyboard Shortcut to Screenshot in Ubuntu
Now and then you may notice that apt-get upgrade command keeps a few packages back, meaning they don't get upgraded. This quick post shows what you can do about it and how to get all the packages upgraded.
How apt-get Keeps Packages Back
This is how keeping packages back will look like:
greys@xps:~ $ sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages have been kept back: linux-generic linux-headers-generic linux-image-generic 0 to upgrade, 0 to newly install, 0 to remove and 3 not to upgrade.
Why Packages Are Kept Back by apt-get
Most likely reason for keeping packages back is that upgrading them means installing new packages or removing existing ones. apt-get upgrade strictly upgrades existing packages, without removing or installing anything.
Since the command you're giving to apt-get is upgrade and not to install new packages, packages that require some old packages removed or new packages installed are kept back.
How To Upgrade Packages That Were Kept Back
Simply use the dist-upgrade option of apt-get, which will resolve dependencies and install/remove dependent package as needed:
greys@xps:~ $ sudo apt-get dist-upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following NEW packages will be installed linux-headers-5.0.0-20 linux-headers-5.0.0-20-generic linux-image-5.0.0-20-generic linux-modules-5.0.0-20-generic linux-modules-extra-5.0.0-20-generic The following packages will be upgraded: linux-generic linux-headers-generic linux-image-generic 3 to upgrade, 5 to newly install, 0 to remove and 0 not to upgrade. Need to get 67.0 MB of archives. After this operation, 334 MB of additional disk space will be used. Do you want to continue? [Y/n] y
That's it for todat, enjoy!
It appears there's a long-standing malfunction of various microSD card readers running Linux. In my particular case, the issue happens on XPS 13 9380 laptop running latest Ubuntu 19.04 with all the updates as of early July 2019. I'll update this post once I confirm the fix.
Card Reader Device on Dell XPS 13 9380
I believe this is the device I have have:
root@xps:~ # lspci | grep -i reader 01:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)
mmc0: error -110 whilest initialising SD card
The error message is a bit strange: I'm not trying to initialise my SD card, but instead want to read it. It's a pretty standard 128GB microSD by SanDisk, but I think part of the problem is that it's a high-speed SDXC card and the issue is that card reader can't support the card because it's running on slower speeds by default.
Here's how the error looks:
Jul 2 14:02:43 xps kernel: [18743.768947] mmc0: error -110 whilst initialising SD card Jul 2 14:02:44 xps kernel: [18745.108865] mmc0: error -110 whilst initialising SD card Jul 2 14:02:46 xps kernel: [18746.452902] mmc0: error -110 whilst initialising SD card
Reloading SDHCI Kernel Module with debug_quirks
One of the common fixes for the problem is to reload kernel module sdhci with debug parameters that assist with improved voltage required for higher speeds.
Unfortunately, this fix didn't work for me:
$ sudo modprobe sdhci debug_quirks2="0x80000000"
Syslog reports that module has been reloaded:
Jul 06 12:22:01 xps kernel: sdhci: Secure Digital Host Controller Interface driver Jul 06 12:22:01 xps kernel: sdhci: Copyright(c) Pierre Ossman
… but when I insert the code I still get the same error:
Jul 06 12:24:43 xps kernel: mmc0: error -110 whilst initialising SD card
Jul 06 12:24:45 xps kernel: mmc0: error -110 whilst initialising SD card
Jul 06 12:24:46 xps kernel: mmc0: error -110 whilst initialising SD card
I'm glad I also have an external card reader with USB-C interface, it works just fine with perfect access to the same microSD card. But ideally I want to fix this issue for the build-in card reader.
- Unix Tutorial Projects
- Projects: Install Ubuntu 19.04 on Dell XPS 13 9380
- Keyboard Backlight in Linux on Dell XPS laptop
Pretty cool! Next version of Ubuntu, 19.04 (Disco Dingo) has just been released. I couldn't wait to try it in my VirtualBox setup – seems there are lots of performance improvements that are noticeable even in a virtual machine!
Seems 2GB is the minimum RAM for Ubuntu 19.04
The installer kept freezing on me, I coudln't understand why. I even upgraded VirtualBox from 6.0.4 to 6.0.6 – quite a few bugs fixed, you know. But this didn't help with my issue and eventually I realised: Ubuntu 19.04 needs more than 1GB of RAM to work properly. Once I upgraded VM RAM to 2GB, the installer worked just fine:
Ubuntu 19.04 runs on Linux Kernel 5.0.0
One of the reasons Ubuntu 19.04 is promised to be such an improvement performance wise: it's running on Linux Kernel 5.0.0:
Have you installed Ubuntu 19.04 yet? What do you think?
It is possible that removing some packages on your Debian, Ubuntu or Mint Linux system will leave a number of software packages behind. Although they are not required by any existing package, they are still kept until you implicitly remove them.
Packages That Are No Longer Required
The following packages were automatically installed and are no longer required: ... Use 'sudo apt autoremove' to remove them.
This happens when you run apt/apt-get for any reason. For instance, I'm trying to install a PCAP library, but look at all the packages that can be autoremoved:
greys@xps:/home/greys$ sudo apt install libpcap-dev Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: adobe-flashplugin cabextract chromium-codecs-ffmpeg-extra gstreamer1.0-vaapi libaribb24-0 libavcodec-extra libbasicusageenvironment1 libcddb2 libdrm-dev libdvbpsi10 libebml4v5 libegl1-mesa-dev libgl1-mesa-dev libgles1 libgles2-mesa-dev libglu1-mesa-dev libglvnd-core-dev libglvnd-dev libgroupsock8 libhal1-flash libhunspell-dev libjs-jquery libjs-jquery-scrollto liblivemedia62 liblua5.2-0 libmad0 libmatroska6v5 libmicrodns0 libminizip1 libmspack0 libnfs11 libopengl0 libopenmpt-modplug1 libplacebo4 libprotobuf-lite10 libpthread-stubs0-dev libresid-builder0c2a libsdl-image1.2 libsidplay2 libssh2-1 libunshield0 libupnp6 libusageenvironment3 libva-wayland2 libvlc-bin libvlc5 libvlccore9 libwayland-bin libwayland-dev libx11-dev libx11-xcb-dev libxau-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-glx0-dev libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb1-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxshmfence-dev libxxf86vm-dev mesa-common-dev qt5-qmake qt5-qmake-bin qtchooser sigil-data unshield vlc-bin vlc-data vlc-l10n vlc-plugin-base vlc-plugin-notify vlc-plugin-video-output x11proto-core-dev x11proto-damage-dev x11proto-dev x11proto-fixes-dev x11proto-xext-dev x11proto-xf86vidmode-dev xorg-sgml-doctools xtrans-dev Use 'sudo apt autoremove' to remove them. The following additional packages will be installed: libpcap0.8-dev The following NEW packages will be installed: libpcap-dev libpcap0.8-dev 0 upgraded, 2 newly installed, 0 to remove and 251 not upgraded. Need to get 221 kB of archives. After this operation, 748 kB of additional disk space will be used. Do you want to continue? [Y/n] n Abort.
Use apt autoremove to uninstall software packages
As suggested, this is what happens when I run apt autoremove:
greys@xps:/home/greys$ sudo apt autoremove Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: adobe-flashplugin cabextract chromium-codecs-ffmpeg-extra gstreamer1.0-vaapi libaribb24-0 libavcodec-extra libbasicusageenvironment1 libcddb2 libdrm-dev libdvbpsi10 libebml4v5 libegl1-mesa-dev libgl1-mesa-dev libgles1 libgles2-mesa-dev libglu1-mesa-dev libglvnd-core-dev libglvnd-dev libgroupsock8 libhal1-flash libhunspell-dev libjs-jquery libjs-jquery-scrollto liblivemedia62 liblua5.2-0 libmad0 libmatroska6v5 libmicrodns0 libminizip1 libmspack0 libnfs11 libopengl0 libopenmpt-modplug1 libplacebo4 libprotobuf-lite10 libpthread-stubs0-dev libresid-builder0c2a libsdl-image1.2 libsidplay2 libssh2-1 libunshield0 libupnp6 libusageenvironment3 libva-wayland2 libvlc-bin libvlc5 libvlccore9 libwayland-bin libwayland-dev libx11-dev libx11-xcb-dev libxau-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-glx0-dev libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb1-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxshmfence-dev libxxf86vm-dev mesa-common-dev qt5-qmake qt5-qmake-bin qtchooser sigil-data unshield vlc-bin vlc-data vlc-l10n vlc-plugin-base vlc-plugin-notify vlc-plugin-video-output x11proto-core-dev x11proto-damage-dev x11proto-dev x11proto-fixes-dev x11proto-xext-dev x11proto-xf86vidmode-dev xorg-sgml-doctools xtrans-dev 0 upgraded, 0 newly installed, 88 to remove and 251 not upgraded. After this operation, 131 MB disk space will be freed. Do you want to continue? [Y/n] y (Reading database ... 270228 files and directories currently installed.) Removing adobe-flashplugin (1:20190212.1-0ubuntu0.18.04.1) ... Removing cabextract (1.6-1.1) ... Removing chromium-codecs-ffmpeg-extra (71.0.3578.98-0ubuntu0.18.04.1) ... Removing gstreamer1.0-vaapi:amd64 (1.14.1-1~ubuntu18.04.1) ... Removing vlc-plugin-base:amd64 (3.0.4-1ubuntu0.2) ... Removing libaribb24-0:amd64 (1.0.3-1) ... Removing libavcodec-extra (7:3.4.4-0ubuntu0.18.04.1) ... Removing libbasicusageenvironment1:amd64 (2018.02.18-1) ... Removing libcddb2 (1.3.2-5fakesync1) ... Removing libgles2-mesa-dev:amd64 (18.2.2-0ubuntu1~18.04.2) ... Removing libegl1-mesa-dev:amd64 (18.2.2-0ubuntu1~18.04.2) ... Removing libglu1-mesa-dev:amd64 (9.0.0-2.1build1) ... Removing libgl1-mesa-dev:amd64 (18.2.2-0ubuntu1~18.04.2) ... Removing mesa-common-dev:amd64 (18.2.2-0ubuntu1~18.04.2) ... Removing libdrm-dev:amd64 (2.4.95-1~18.04.1) ... Removing libdvbpsi10:amd64 (1.3.2-1) ... Removing libmatroska6v5:amd64 (1.4.8-1.1) ... Removing libebml4v5:amd64 (1.3.5-2) ... Removing libglvnd-dev:amd64 (1.0.0-2ubuntu2.2) ... Removing libgles1:amd64 (1.0.0-2ubuntu2.2) ... Removing libglvnd-core-dev:amd64 (1.0.0-2ubuntu2.2) ... Removing libgroupsock8:amd64 (2018.02.18-1) ... Removing libhal1-flash (0.3.3-2) ... Removing libhunspell-dev:amd64 (1.6.2-1) ... Removing libjs-jquery-scrollto (2.1.2+dfsg-4) ... Removing libjs-jquery (3.2.1-1) ... Removing liblivemedia62:amd64 (2018.02.18-1) ... Removing liblua5.2-0:amd64 (5.2.4-1.1build1) ... Removing libmad0:amd64 (0.15.1b-9ubuntu18.04.1) ... Removing libmicrodns0:amd64 (0.0.8-1) ... Removing libminizip1:amd64 (1.1-8build1) ... Removing libmspack0:amd64 (0.6-3ubuntu0.2) ... Removing libnfs11:amd64 (2.0.0-1~exp1) ... Removing libopengl0:amd64 (1.0.0-2ubuntu2.2) ... Removing libopenmpt-modplug1:amd64 (0.3.6-1) ... Removing vlc-plugin-video-output:amd64 (3.0.4-1ubuntu0.2) ... Removing libplacebo4:amd64 (0.4.0-2) ... Removing libprotobuf-lite10:amd64 (3.0.0-9.1ubuntu1) ... Removing libx11-xcb-dev:amd64 (2:1.6.4-3ubuntu0.2) ... Removing libxxf86vm-dev:amd64 (1:1.1.4-1) ... Removing libresid-builder0c2a (2.1.1-15ubuntu1) ... Removing libsdl-image1.2:amd64 (1.2.12-8) ... Removing libsidplay2 (2.1.1-15ubuntu1) ... Removing libssh2-1:amd64 (1.8.0-1) ... Removing unshield (1.4.2-1) ... Removing libunshield0:amd64 (1.4.2-1) ... Removing libupnp6:amd64 (1:1.6.24-4) ... Removing libusageenvironment3:amd64 (2018.02.18-1) ... Removing libva-wayland2:amd64 (2.1.0-3) ... Removing vlc-bin (3.0.4-1ubuntu0.2) ... Removing libvlc-bin:amd64 (3.0.4-1ubuntu0.2) ... Removing libvlc5:amd64 (3.0.4-1ubuntu0.2) ... Removing vlc-plugin-notify:amd64 (3.0.4-1ubuntu0.2) ... Removing libvlccore9:amd64 (3.0.4-1ubuntu0.2) ... Removing libwayland-dev:amd64 (1.16.0-1ubuntu1.1~18.04.1) ... Removing libwayland-bin (1.16.0-1ubuntu1.1~18.04.1) ... Removing libxcb-dri2-0-dev:amd64 (1.13-1) ... Removing libxcb-dri3-dev:amd64 (1.13-1) ... Removing libxcb-glx0-dev:amd64 (1.13-1) ... Removing libxcb-present-dev:amd64 (1.13-1) ... Removing libxcb-randr0-dev:amd64 (1.13-1) ... Removing libxcb-xfixes0-dev:amd64 (1.13-1) ... Removing libxcb-render0-dev:amd64 (1.13-1) ... Removing libxcb-shape0-dev:amd64 (1.13-1) ... Removing libxcb-sync-dev:amd64 (1.13-1) ... Removing libxdamage-dev:amd64 (1:1.1.4-3) ... Removing libxext-dev:amd64 (2:1.3.3-1) ... Removing libxfixes-dev:amd64 (1:5.0.3-1) ... Removing libxshmfence-dev:amd64 (1.3-1) ... Removing qt5-qmake:amd64 (5.9.5+dfsg-0ubuntu1) ... Removing qt5-qmake-bin (5.9.5+dfsg-0ubuntu1) ... Removing qtchooser (64-ga1b6736-5) ... Removing sigil-data (0.9.12+dfsg-1ubuntu1804) ... Removing vlc-data (3.0.4-1ubuntu0.2) ... Removing vlc-l10n (3.0.4-1ubuntu0.2) ... Removing x11proto-damage-dev (1:2018.4-4) ... Removing x11proto-xf86vidmode-dev (2018.4-4) ... Removing x11proto-xext-dev (2018.4-4) ... Removing x11proto-fixes-dev (1:2018.4-4) ... Removing libx11-dev:amd64 (2:1.6.4-3ubuntu0.2) ... Removing libxcb1-dev:amd64 (1.13-1) ... Removing libpthread-stubs0-dev:amd64 (0.3-4) ... Removing libxau-dev:amd64 (1:1.0.8-1) ... Removing libxdmcp-dev:amd64 (1:1.1.2-3) ... Removing x11proto-core-dev (2018.4-4) ... Removing x11proto-dev (2018.4-4) ... Removing xorg-sgml-doctools (1:1.11-1) ... Removing xtrans-dev (1.3.5-1) ... Processing triggers for sgml-base (1.29) ... Processing triggers for mintsystem (8.4.1) ... Processing triggers for libc-bin (2.27-3ubuntu1) ... Processing triggers for man-db (2.8.3-2ubuntu0.1) ... Processing triggers for hicolor-icon-theme (0.17-2) ... greys@xps:/dist/wireshark/wireshark-ninja$
Just to finish this brief example, here's what happens when I try the same apt install command again. Note how there are no more packages suggested for auto-remove:
greys@xps:/home/greys$ sudo apt install libpcap-dev Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libpcap0.8-dev The following NEW packages will be installed: libpcap-dev libpcap0.8-dev 0 upgraded, 2 newly installed, 0 to remove and 251 not upgraded. Need to get 221 kB of archives. After this operation, 748 kB of additional disk space will be used. Do you want to continue? [Y/n]
Great stuff, I have just installed Linux Mint 19.1 on my Dell XPS 13 laptop! Naturally, one of the first things to be run is the screenFetch utility.
Install screenFetch on Linux Mint
Based on Ubuntu Linux, Linux Mint enjoys abundant software repositories, which means it's super easy to install screenFetch on the new system:
root@xps:~# apt-get install screenfetch Reading package lists... Done Building dependency tree Reading state information... Done Recommended packages: scrot The following NEW packages will be installed: screenfetch 0 upgraded, 1 newly installed, 0 to remove and 245 not upgraded. Need to get 50.6 kB of archives. After this operation, 236 kB of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu bionic/universe amd64 screenfetch all 3.8.0-8 [50.6 kB] Fetched 50.6 kB in 0s (308 kB/s) Selecting previously unselected package screenfetch. (Reading database ... 249721 files and directories currently installed.) Preparing to unpack .../screenfetch_3.8.0-8_all.deb ... Unpacking screenfetch (3.8.0-8) ... Setting up screenfetch (3.8.0-8) ... Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
screenFetch in Linux Mint 19.1
This is the output of screenFetch on my laptop:
I have a tiny server in home office, it used to be a Window 8 based entertainment box but I reinstalled it with Ubuntu 18.10 recently enough to run home automation. There has't been any particular function assigned to this server but I have finally decided what role it will play: it will be an always-on Ubiquiti UniFi controller for my home office network!
My Ubuntu 18.10 server parameters
Like I said, it's a fairly modest hardware and not a server grade at all. But thanks to 64-bit support (UEFI 32-bit boot though!) and low power consumtion, this is a perfect system for the always-on server:
- Processor: Intel(R) Atom(TM) CPU Z3735F @ 1.33GHz – quad-core
- RAM: 2GB 1333Mhz
- Storage: internal 32GB flash storage
- Operating System: custom Ubuntu 18.10 (64-bit OS but with 32-bit boot loader)
UniFi Network Management Controller
Ubiquiti have a few ranges of hardware, and I'm a big fan of the UniFi series of Software-Defined Networking (SDN) – very easy to setup and manager, plus you get quite a few updates via firmware, without having to change the hardware.
Network Management Controller is a piece of software or hardware that is running UniFi controller software that keeps track of all your UniFi devices and configurations. It has its own database for keeping track of settings and states and accepts network (browser or app) connections for remote management.
The mobile app for remote management is pretty cool.
UniFi Appliances I use in my Home Office
Ubiquiti Security Gateway (USG)
Wonderful little device for powerful traffic management, remote access (VPN) deployment and deep packet inspection (DPI) for visual understanding of how your network clients are consuming Internet traffic.
Ubiquiti UniFi Switch 8 60W (US-8-60W)
I have a number of switches like this, they're great for building out a small office network and integrate with Network Management Console – meaning you see traffic and port status.
I also really like that this switch has 4 PoE (Power over Ethernet) ports, so you can plug in IP cameras and WiFi hotspots that support PoE – means you don't need to run a separate power cable for them.
Installing UniFi Controller with installation scripts
Although there are official software repositories and RPM/DEB file downloads available from Ubiquiti, they're kind of awkward to use: you still need to resolve software dependencies and preinstall a bunch of stuff.
So after a bit of researching online, I found that Glenn R from Ubiquiti's community forums has prepared scripts for automatic installation of UniFi controller: UniFi Installation Scripts.
There's a script available for the most recent Debian and Ubuntu builds, so if you want to install controller software on Ubuntu 16.04, Ubuntu 18.04, Ubuntu 18.10, Debian 8 or Debian 9 – there's no better way that using one of these scripts.
The procedure is simple:
- Go to the UniFi Installation Scripts page
- Download the script for your controller version (5.9.x is the stable branch) and operating system
- Make the downloaded script executable (chmod +x unifi-5.9.29.sh)
- Execute the script as root
- Enjoy! (browse to your server's IP address and port 8443)
Here's how my end result looks:
Do you use UniFi? Want to learn more about configuring or managing UniFi solutions? Let me know and I will wite a few follow-up posts.
If you're ever looking for a specific list of files included with one of the packages on your Ubuntu/Debian/Mint Linux setup, here's how you can do it using the dpkg command:
# dpkg --listfiles libcurl4-openssl-dev /. /usr /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/pkgconfig /usr/lib/x86_64-linux-gnu/pkgconfig/libcurl.pc /usr/lib/x86_64-linux-gnu/libcurl.a /usr/lib/x86_64-linux-gnu/libcurl.la /usr/share /usr/share/doc /usr/share/doc/libcurl4-openssl-dev /usr/share/doc/libcurl4-openssl-dev/copyright /usr/share/man /usr/share/man/man1 /usr/share/man/man1/curl-config.1.gz /usr/share/aclocal /usr/share/aclocal/libcurl.m4 /usr/include /usr/include/curl /usr/include/curl/curlver.h /usr/include/curl/mprintf.h /usr/include/curl/stdcheaders.h /usr/include/curl/easy.h /usr/include/curl/curlrules.h /usr/include/curl/multi.h /usr/include/curl/curlbuild.h /usr/include/curl/typecheck-gcc.h /usr/include/curl/curl.h /usr/bin /usr/bin/curl-config /usr/lib/x86_64-linux-gnu/libcurl.so /usr/share/doc/libcurl4-openssl-dev/changelog.Debian.gz /usr/share/doc/libcurl4-openssl-dev/NEWS.Debian.gz
The same can also be done with the shorter version of the command line option: dpkg -L
One of the most typical things to check next would be to verify the integrity of all these files in the package – usually dpkg keeps checksums for all the files installed.
Verifying integrity of files instlaled by the package:
# dpkg --verify libcurl4-openssl-dev ??5?????? /usr/include/curl/curl.h
In this example I have gone and edited the comment in the curl.h header file, just to change it enough for dpkg to pick it up. Since checksums are used for highlighting differences and also because most of package installed files are binaries or special non-cleartext formats, you don't see the text-based diff but instead just get an indication that certain file differs from the original version installed by dpkg.
The shorter version of the same is dpkg -V.
Quite recently I came across a very interesting issue: while configuring passwordless SSH (it's public key based, so depending on you have it configured it may not be completely passwordless) access to some of my VPS servers, I found that the same keypair just wouldn't work on one of the servers.
Not only that, but the behaviour was quite bizzare: upon my first attempt to connect the public key would get rejected and a regular password would be requested by the ssh session. But once I successfully logged in with my password, any subsequent ssh connections would happily authenticate by my public key and would let me in without a problem.
Those of you using home dir encrypiton in Ubuntu are probably smiling right now! 🙂 But becase I have never consciously configured or used this feature, it took me a good few hours to troubleshoot the issue and come up with the fix.
There comes a time (a couple of times a year, actually) when you may want to upgrade your Ubuntu distro (read here for instructions on confirming your version of Linux: Find Out Linux Version)
Once that's done, you can use do-release-upgrade for a hassle free upgrade.
IMPORTANT: are you can see, I've used a really old Ubuntu server with 8.10, hence your procedure for upgrading more recent Ubuntu versions may be slightly different. For example, later upgrades will warn you if you're doing a release upgrade over ssh.
What do-release-upgrade is and when you should use it
do-release-script is a Python script which automates the process of updating multiple packages. It relies upon Ubuntu's core package management functionality.
Apart from downloading and installing updated versions of packages found on your system, this command attempts to take care of all the necessary Ubuntu-release related file changes.
Step 1: Run do-release-upgrade
Once you type the do-release-upgrade command name and press Enter, you should see how vital information about packages currently installed is being collected:
Checking for a new ubuntu release Done
Upgrade tool signature Done
Upgrade tool Done
authenticate 'jaunty.tar.gz' against 'jaunty.tar.gz.gpg'
Checking package manager
Reading package lists: Done
Reading state information: Done
Updating repository information
Done http://archive.ubuntu.com jaunty Release.gpg
Done http://archive.ubuntu.com jaunty-updates Release.gpg
Done http://security.ubuntu.com jaunty-security Release.gpg
Done http://us.archive.ubuntu.com jaunty-backports Release.gpg
Done http://security.ubuntu.com jaunty-security Release
Checking package manager
Reading package lists: Done
Packages: 98 2
Reading state information: Done
Reading state information: Done
Reading state information: Done
Calculating the changes
2. Confirming what upgrading will do
This is your last change to change your mind. All the necessary information about your current Ubuntu release is collected, and now you're presented with the exact upgrade details: how many packages will be removed, how many new ones will be installed, how many will be upgraded. You also are given details about the required amount of data to be downloaded should you decide to proceed with the upgrade;
Do you want to start the upgrade?
1 package is going to be removed. 23 new packages are going to be installed. 420 packages are going to be upgraded.
You have to download a total of 248M. This download will take about 7 minutes with your connection.
Fetching and installing the upgrade can take several hours. Once the download has finished, the process cannot be cancelled.
Continue [yN] Details [d]
Ready? Press y for yes!
3. Downloading all the packages
Just like with apt-get, you will now see the progress of downloading all the updated packages for your Ubuntu OS. At the bottom of the screen you will see the overall completeness of the download (22% in my example), the current download speed (598kB/s in my case) and the ETA:
Done http://archive.ubuntu.com jaunty-updates/main libbz2-1.0 1.0.5-1ubuntu1.1
Done http://archive.ubuntu.com jaunty/main libdb4.7 4.7.25-6ubuntu1
Done http://archive.ubuntu.com jaunty/main libncursesw5 5.7+20090207-1ubuntu1
Done http://archive.ubuntu.com jaunty-updates/main libssl-dev 0.9.8g-15ubuntu3.6
Done http://archive.ubuntu.com jaunty-updates/main libssl0.9.8 0.9.8g-15ubuntu3.6
Done http://archive.ubuntu.com jaunty/main python2.6 2.6.2-0ubuntu1
[23%] 598kB/s 5min17s
Once package are downloaded, they will get installed once by one, with package-specific questions asked for software like postfix or apache.
To finalize the distro upgrade, you will need to do a reboot. Once completed, you should have a shine next release available.