CentOS 7.4 upgrade - Still got it

Updated: April 7, 2018

I have not updated the CentOS instance on my Lenovo G50 laptop since mid-2016, more or less. But then, a few days ago, I decided to revisit the distro, both to see how it fares, performance and relevance wise, and also to update its package set to the latest 7.4 build. We're talking 18 months of backlog, tons of customization.

If your memory is a bit dusty, I am really fond of CentOS, and despite the fact it's a server distro, it still offers great value in home setups. Specifically on the G50 machine, I had it installed and then tested the KDE, Gnome, Xfce, and MATE desktops individually, plus added a whole of pimping and extra software. You may wonder, will all this work get in the way of a version update? Let's check.

Teaser

KDE first

I booted into the default  KDE desktop and ran yum update. This didn't work well. The system complained about all sorts of errors and duplicates and whatnot. It even complained about the checksum of various packages, and this is probably because the Nux repo hasn't been updated. Maybe.

Error: Rpmdb checksum is invalid: pkg checksums: binutils-0:2.23.52.0.1-55.el7.x86_64

My next step was to disable some third-party sources and try again. I left EPEL in place, but still CentOS didn't like my choices. As it turns out, VLC - and several other programs I had installed - are not available through EPEL, and this caused the system to grumble.

Error: Package: 1:vlc-core-2.2.2-4.el7.nux.x86_64 (@nux-dextop)
    Requires: libdvbpsi.so.7()(64bit)
    Removing: libdvbpsi-0.2.2-3.el7.nux.x86_64 (@nux-dextop)
        libdvbpsi.so.7()(64bit)
    Updated By: libdvbpsi-1.3.0-3.el7.x86_64 (epel)
        ~libdvbpsi.so.10()(64bit)
Error: Package: libgpod-0.8.3-7.el7.x86_64 (@epel)
    Requires: libusbmuxd.so.2()(64bit)
    Removing: usbmuxd-1.0.8-11.el7.x86_64 (@base/$releasever)
        libusbmuxd.so.2()(64bit)
    Obsoleted By: usbmuxd-1.1.0-1.el7.x86_64 (base)
        Not found
...

I tried removing usbmuxd, but this seems to be an important package, and it would literally delete everything. In the end, I settled for removing libgpod, which also removed rhythmbox, as well as VLC. Then, finally, the system was able to continue.

...
webkitgtk4                     x86_64 2.14.7-3.el7              updates  20 M
webkitgtk4-jsc                 x86_64 2.14.7-3.el7              updates 4.0 M
webkitgtk4-plugin-process-gtk2 x86_64 2.14.7-3.el7              updates 8.7 M
xmlsec1                        x86_64 1.2.20-7.el7_4            updates 177 k
xmlsec1-openssl                x86_64 1.2.20-7.el7_4            updates  76 k

Transaction Summary
===============================================================================
Install   24 Packages (+87 Dependent packages)
Upgrade  943 Packages

Total download size: 1.1 G

The update took about a full hour, during which roughly 2,000 packages were updated, cleaned up and verified, and the system was fairly slow during this time. But then, it completed, I rebooted into the main distro controlling the boot sequence, update the GRUB, and then went back to CentOS.

Upgrade running

Any good?

Well, I had the login screen. Good start. Logged into the desktop. So far, so good. No visible errors, no problems, and everything seemed to be working just fine. It was my familiar layout, with some fancy icons and decorations and lots of extra programs. Not Plasma 5 mind, but still.

KDE desktop

At this point, I decided to add RPM Fusion, both free and non-free repos, and reinstall VLC, which is an essential part of my desktop setup.

yum install https://download1.rpmfusion.org/free/el/ -> 
-> rpmfusion-free-release-7.noarch.rpm
yum install https://download1.rpmfusion.org/nonfree/el/ ->
-> rpmfusion-nonfree-release-7.noarch.rpm

Once this step was done, I installed VLC. There were some errors with some of the mirrors, but eventually, it all worked just fine. I had VLC back in the distro. And that, pretty much, concluded the actual update process.

ffmpeg-libs-2.8.13-2.el7.x86_6 FAILED                                         
https://download1.rpmfusion.org/free/el/updates/7/x86_64/f/
ffmpeg-libs-2.8.13-2.el7.x86_64.rpm: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.
To address this issue please refer to the below wiki article

https://wiki.centos.org/yum-errors

If above article doesn't help to resolve this issue please use https://bugs.centos.org/.

(3/8): x264-libs-0.148-11.20160614gita5e06b9.el7.x86_64.r | 556 kB   00:00    
(4/8): live555-2016.07.19-3.el7.x86_64.rpm                | 354 kB   00:01    
ffmpeg-libs-2.8.13-2.el7.x86_6 FAILED                                         
http://mirror.host.ag/rpmfusion/free/el/updates/7/x86_64/f/
ffmpeg-libs-2.8.13-2.el7.x86_64.rpm: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.
...

Tell me more

So yes, it worked fine. Firefox ESR is now 52.6.0, and Chrome at version 65, which is the latest and greatest this browser offers (when I wrote this piece). Both Adobe and Chrome repos survived the 7.4 update without any issues. Skype remained at the older 4.3 release, but I had that rectified easily.

Upgraded browsers

Customization

I spent a little bit of time playing here. It's possible to make KDE4 look great, but like I said, it ain't no Plasma. You can definitely feel the ergonomic differences, and there's no denying how much the KDE framework has advanced in the last several years. But CentOS being the server player, it needs the old and stable stuff.

Customize

New icons

Gnome desktop

I decided to test the Gnome desktop next. It looks all right, especially with the mandatory extras needed for day-to-day productivity and efficiency. In addition to the Breeze theme and Papirus icons, I also installed the superb Dash to Panel (D2P) extension, giving me a classic desktop layout complete with the Show desktop button. I've already tweaked many other aspects of the Gnome desktop via Gnome Tweak Tool. But then, together with modern programs, it's a capable, relevant system.

Gnome desktop

BTW, if you're wondering how to check what CentOS release you're running, then:

cat /etc/centos-release

And behold!

Release

More pretty pictures:

Nice 1

Nice 2

Nice 3

Conclusion

The upgrade of CentOS to 7.4 (1708) worked fine. I did hit a few snags, but they were entirely due to my own use of third party sources. Once I had that ironed out, the process was robust. Even my extra programs were correctly carried over, all except Skype. Not bad, given that I have a beautiful, slick, and fully functional desktop with ten years of stability and support.

Now, not all is golden. The old kernel 3.X is not as fast as the new 4.X stuff, and you can feel it. CentOS is pretty nimble, but modern distros are nimbler. And Plasma 5 is superior to KDE 4. Which is in fact my next project. See if I can get a custom kernel running and perhaps even grab Plasma. I'm not in the mood for excessive manual labor and compilations, but this might be doable.

All in all, for those comfortable with running a somewhat conservative server distro with top-notch stability and many years of updates, and who do not mind not having always the latest and greatest stuff, CentOS 7.4 makes for an almost ideal candidate. Actually, the ideal candidate would have kernel 4.15 and Plasma, but that's a story for another time. Anyway, 18 months of neglect have got nothing on CentOS. Linux on.

Cheers.