CentOS Server and Desktop Updates

I’ve been using my previous hosting provider (PowerVPS) for over 10 years now! They had incredibly reliable service so I never switched. But for the past few years so many smaller companies have been providing much more competitive options. However I was just too lazy to make the switch.

Just for fun: the last tweet by @PowerVPS was to me from the last time I purchased a server from them!

The mistake I made was setting up a server with CentOS 5 instead of 6 at the time. So now, almost everything is way out of support.

I decided I did not need all the features a full VPS with CPanel provided (primarily a full web based administration tool and countless plugins). I know I have enough experience just to setup the critical things I cared about. After some research I decided that Linode (*) was the best balance of price and features. The best part was I could pick a clean minimal install of the latest version of CentOS!

So it took me about 2 weeks to get everything working and I still have some sites to migrate but for the most part I’m very happy with what I’ve got working. I fully intend to write up a lot of this stuff and share it.

  • All server software is from up-to-date binary packages from reliable repositories. (No more manual compiles of Apache, etc. just to be current)
  • I switched all my site development code to be deployed through a combination of ssh and git (more on this later)
  • I have fully switched over to secure sites! Have https on almost everything! Courtesy of Let’s Encrypt
  • Everything runs so much faster and smoother than I ever had in the past 5 years!

On the desktop side, I finally switched my main Linux desktop to CentOS 7 – a whole year after I intended to do it. But that really is a good thing since my CentOS 6 setup was so solid that everything worked. I was just getting tired of not being able to try out new software (more on this later). I did update to Windows 10 as well and have been playing with the Ubuntu Linux system embedded in Windows, and I must say I’m really impressed (more on this later as well).

So I’m ashamed that I stated over a year ago that I would resurrect this blog! But a recent kick in the pants finally got me working on cool stuff that I’ve always enjoyed. Greatly looking forward to writing up a lot of the stuff I’ve been working on!

(* Linode is a referral link)

Resurrecting my Linux Blog

The last 4 and half years had left me with no spare time to pursue my interests in all things Linux. Recent career choices have given me the breathing room to change that. I intend to bring up my site back to what I’ve always wanted it to be: useful to me and hopefully useful to others.

Lots has changed in the linux and open source world, but even so I’ll slowly start contributing again. (I’m really rusty)

To the countless people who have emailed me and I never replied, I am truly sorry. Thank you to all those who have sent private words of encouragement.

Fedora Desktop and Computing

Fedora 18 was released this week and I finally got around to installing it today. To be honest, on either my laptop or desktop I have not really used Fedora much since Fedora 14. I have been incredibly happy with CentOS for over a year and a half now, and I (begrudgingly) accepted Windows 7 on my laptop.

Today’s installation of Fedora 18 made me question my use of time. I switched jobs exactly 2 years ago and found myself in the precarious position of having little to no spare time. I tried my best to optimize. Giving up dual-booting in favor of virtualization (VirtualBox and KVM) helped greatly. However I could never get Fedora18 beta or RC to boot up inside KVM. But that wasn’t the problem that bothered me. Re-running through the installation multiple times using the new Anaconda installer just got me tired of trying to understand a poorly thought out workflow. I kept questioning myself if I had in fact selected the correct options. I don’t think I would ever install Fedora 18 on some of my more complex dual-boot setups in the past.

To be fair for a clean install on a new computer for most people the installer might be a joy, but for me it just wasn’t. I’m not really complaining. I have multiple computers running some form of Linux or if I must, Windows. My existing setup works fine for me. However I just don’t think Fedora’s goals and my needs line up anymore.

I was reminded of this when I was reading Richard WM Jone’s blog post on using Fedora 17 on a Chromebook. The first bullet point is what gives me pause:

Suspend pretty much doesn’t work.

I too own a Chromebook and just like many others I have quite a few things I dislike about, but where it never fails: power management. It suspends and starts up in seconds, lets me do my browsing/work and then I can close the lid and forget about it. The last time I had this experience with a laptop was with Fedora 9. After so many years, I’m disappointed problems can still exist for power management. My desktop CentOS suspends and hibernates perfectly, so I know things can be made to work, but I just don’t have the time to find out how.

Outside of work, I spend most of my time on my Android smartphone. Occasionally I monkey around with a tablet, but the Chromebook is incredibly nice for quick tasks. And then when I have the dedicated time: I will use my desktop or laptop for more major work. What do all of these devices/setups have in common? – Answer: they don’t change much. As we all know, change is the heart of Fedora – the latest and greatest software. I commend the Fedora team and all the volunteers who manage to somehow keep it all together.

If ever find the time, I would love to come back to Fedora. I finally got it working in my Virtualbox and I’ll write up some of my notes eventually. If you plan on installing Fedora 18, the official Fedora Installation Guide has evolved amazingly. I highly recommend reading it.

Downside to Enterprise Linux

(Note: For the purpose of this post CentOS is equivalent to RHEL)

It has been about 2 and 1/2 years since I built a dedicated server and chose CentOS instead of Fedora. Since I installed CentOS 5.1 I have used the upgrade process 4 times with no problems bringing me to version 5.5 with practically no re-installation, re-configuration or troubleshooting upgrade issues. This is the goal of enterprise linux. A long term stable solution with no major changes to preserve compatibility with every piece of software that was provided since it was released (in this case April 2007). In the time I’ve been on CentOS I’ve upgrade/replaced Fedora at least 5 times on other machines. Each time learning the changes to software, languages, security and many other components.

I’m very pleased with CentOS knowing that after the next yum update all my software will keep working. And everything is 100% secure.

However the exact reason enterprise linux is so great is also the exact reason why it can be a major pain. Once a main component is locked down, Red Hat will not provide updates unless needed for security or stability.

An objective for my server was for web development. The state of web as defined in 2007 when RHEL was created is coming close to obsolete. CentOS 5 includes PHP version 5.1.6. However PHP 5.2, which was released before RHEL 5, has become the default standard requirements for many PHP applications. I was updating some code to utilize JSON when I realized I would have to deviate from standard updates to install PHP 5.2 on CentOS. (This wasn’t too bad)

Another objective was a file server and backups. I’ve been playing with DropBox (*) as means of an off-site backup solution. What makes it great is it’s support for Linux! Even text-based linux which is what my server is. However the first requirement is Python 2.5. CentOS uses 2.4, and you can’t do a major update of Python in a CentOS/Fedora install without breaking many things since this is a critical component. You can do a parellel install for Python 2.5 but this is a bit annoying to maintain as you have 2 versions of python installed. (I have yet to get Dropbox working well on my server)

I also have been writing C++ software using boost. I recently realized the asio library was standard in boost 1.37 and later. I was locked to 1.33 in CentOS 5. No big deal since, the boost package was not critical for me in CentOS and it could be easily replaced. So I decided to recompile a newer Fedora boost src.rpm. However I would see errors like this:

error: unpacking of archive failed on file /home/mirandam/rpmbuild/SOURCES/boost-1.41.0-iostreams-zlib.patch;4c7880e5: cpio: MD5 sum mismatch

The above error is simply because Fedora 12 changed the RPM compression algorithm used and rendered older versions of RPM incompatible with newer packages. I don’t dare meddle with RPM as it is a core component, so I ended up compiling an older Fedora 11 version of boost 1.37 src.rpm which did the job.

Overall I’m still happy with my setup, but slowly I’m spending a great deal of time patching different pieces as my needs have slowly evolved. Interestingly Red Hat recently announced extended support lasting up to 10 years. That seems way too long considering the state of software (although everyone still uses Windows XP – now 9 years old).

I’m getting a little antsy running 3 year old software. The good news is that RHEL 6 is in beta, which means that soon after release the totally free CentOS 6 will follow as well. Which I’m eagerly waiting for, because all my issues will be addressed … at least for the time being.

(*) Affiliate link – I highly recommend Dropbox.

Fedora and Linux Blogs

I know the trend now is “status updates”, but I still enjoy reading blogs more. And I’ve been doing lots more reading and far less writing lately.

I thought I might share the Fedora and Linux blogs that I enjoy. (Sorry I don’t have an OPML link).


CentOS / Red Hat related

Linux miscellaneous

If you don’t know about Planet Fedora its a great place to peruse through some blogs. The volume is way too high to subscribe.

There are few other Fedora/Linux blogs but they either seem dead or their authors have moved onto other things. Right now, I like my mix of technical snippets as well as general Fedora discussion – especially from the people who put their dedicated effort into it.

ps. Even though I generally don’t read many “Howto” style blogs, I am always interested in recommendations.

All-In-One Configuration Tools

As I mentioned previously, I run many sites on my web server. Yesterday I decided to clean up some sites that their owners had neglected or not used. One such site was running Apache Tomcat Java Server, which I did not care to leave running.

Now I, like many users of commercial hosting plans, pay for cPanel/WHM which includes a myriad of options/configurations/settings to do almost everything on the server. Back in 2007, I had used the cPanel Addon to install Tomcat. It was an incredibly easy “1-click Install”. I never checked, but I just assumed it worked. Similarly I thought it would be just as easy to uninstall Tomcat. I clicked “Uninstall” and all went well and I didn’t see any immediate problems. Or so I thought …

Last night the Apache Webserver failed. I did not realize till this morning (6 hours later). After some digging I found that it was because Apache could not find some Tomcat/Java module. So much for a proper uninstall. I did not have time to debug the issue, so what did I do? I simply re-installed Tomcat. I just could not afford any more downtime! … I know, I know: Shame on me!

This incident is like many commonly seen in the Linux world: An all-in-one graphical configuration tool can do wonders, but somewhere due to interaction between components it can causes all sorts of unforeseen problems. The root problem here is that it is incredibly difficult to know all the intricacies and nuances for administrating multiple software systems. Add to that the occasional need to manually edit config files, and you create an unmanageable mess.

Do you remember linuxconf? … Back in the day (pre-2002) Red Hat included a configuration tool called linuxconf which could manage multiple system options using a variety of graphical and non-graphical interfaces. While this worked wonders for novices performing simple tasks (mounting disk partitions, adding users, setting network addresses), it caused all sorts of issues for more complex services (web server, mail server, samba). Unfortunately at that time, there were very few complete comprehensive tools for configuring complex servers. Users who got burned using linuxconf, eventually learned that the only guaranteed way to setup things was to read man pages and documentation, and then editing config files manually.

Redhat did eventually abandon linuxconf with RH8.0. And while many users did complain, ultimately it was a smart decision. Software projects cannot be held accountable if some 3rd-party tool mangled their config files. Even more importantly, how can someone be certain the tool made the change they requested without looking at the config output? You can’t.

Sadly even though I expected cPanel to do its job (considering it is not free), I should have been more careful on a live production server. While I’m not saying that every single “all-in-one” tool is a failure, I am saying that trusting any tool without validation is a very poor choice.

Supported Features

Sounds like something Fedora users might relate to…

I hear many of you finally have smooth Flash support, but me and my Intel card are still waiting on a kernel patch somewhere in the pipeline before we can watch Jon Stewart smoothly.

64-bit Linux

There was some discussion on the fedora-devel list about changing the default architecture for 32-bit Fedora. Which would mean that users running 32-bit Fedora with modern CPU’s will see some improvement, while older hardware will need to be supported by some secondary means or not at all.

There are some good points in the thread, but the question I found myself asking was: “Why do I still run 32-bit Linux at all?”. For 3 years, all of my computers have been 64-bit hardware.

I thought it was the web, however …

  • Flash: Runs great using 32-bit software in 64-bit Fedora (the native 64-bit plugin is currently in beta).
  • Java: OpenJDK has had a native 64-bit browser plugin for Java for over a year (the official native 64-bit plugin for Sun Java was released almost 6 months ago) .
  • I don’t even use things like RealPlayer anymore, and most websites no longer bother to embed video directly.

I often would recommend to people that multimedia had limitations or would require work in 64-bit Linux, but all my DVD’s, music and collected media work perfectly fine! And if you’ve looked at tutorials for media playback, there is little or no difference in the work required. (FYI: I have not missed anything for NOT having the win32 binary dll’s).

The only insignificant difference is the (sometimes) 10-15% size increase in downloads and applications for using 64-bit software. However for the performance gain, the cost in hard disk or download time is well worth it.

I feel silly for installing CentOS 32-bit on my personal server last year. That is not even used for multimedia or web. I think may upgrade it.

I admit I’ve been a luddite for far too long. If your hardware supports it (almost no new hardware is pure 32bit), then you should be using 64-bit Linux. In your next update or install cycle, skip the i386 and go download the X86_64!