Thursday, May 5, 2011
5:05 PM

How to painlessly switch from Ubuntu to Fedora

Ubuntu and Fedora are arguably the most popular Linux distros out there today. They both make a huge impact on the Linux community release after release, but are somewhat opposite philosphies at times. Fedora, the RedHat-sponsored community project is adamant of RPM packages, while Ubuntu is based on Debian and therefore uses DEB packages. Fedora maintains that RedHat corporate environment vibe to it, more like a specialised distro, the perfect choice for developers. Ubuntu, on the other hand, based its strategy around creating "Linux for human beings", a friendly desktop environment that is accessible to all kinds of users.

One of the common things they had up until their latest release was the default desktop manager of choice. Both offered GNOME as their main option, along with fairly good implementations of KDE and other alternatives. Unfortunately (or fortunately, depends on how you look at it), that is no longer the case. Come their April/May releases Fedora will become the flagship implementation of GNOME3 and GNOME Shell, while Ubuntu will step into uncharted territory with its own developed Unity interface.

It is clear that many will reject both and stick with other distros which remain loyal to classic GNOME2.x. It is highly unlikely that many Fedora users will reject GNOME Shell to embrace Unity, though, but not so much that some Ubuntu users shall decide to ditch Unity to use GNOME3 and GNOME Shell instead. Because Fedora is currently the best and most current implementation of GNOME Shell, many are already attempting the switch.

"NO BIG DEAL, IT'S LINUX AFTER ALL..."

Indeed, Ubuntu made a big impact on the Linux World and, for many of us, it was the host that introduced us to the exciting "Free as in beer and free as in free speech" OS. Users whose Linux experience is limited to Ubuntu and its derivatives may assume switching to Fedora should be smooth sailing, but that is not exactly true and can lead to frustration in the long run.

Fedora and Ubuntu are in fact different in many ways, so I wanted to provide a few guidelines which may help those of you making the transition. Please note that these guidelines are (despite the length of this article) somewhat high level. I limited the scope to a few areas that I consider essential for desktop users, which boil down to:

  1. Considerations before installing
  2. Sudo, Su and Root
  3. Add/Remove Software: RPMFusion, GPK and yum
  4. Make yourself at home
  5. GNOME Shell tricks and customization
  6. Hardware support and troubleshooting
  7. A bit about SELinux

So without further ado, let's get to it.

CONSIDERATIONS BEFORE INSTALLING

First thing to keep in mind: It's always a good idea to make it a progressive transition. If you made the move from Windows to Ubuntu in one radical jump, I am sure you got your fair share of frustration as you learned the hard way. If, on the other hand, you kept Windows alive and only moved to Ubuntu when you were confident you had everything you needed, learning one step at a time and keeping a fully functional system available, things were probably smooth and satisfactory.

Once again, Fedora and Ubuntu are siblings, but they certainly are different in many ways, so you don't want to trash a solid Ubuntu installation to install Fedora. Anything from installing Fedora on VirtualBox to doing so on a USB drive (recommended) is better than attempting to jump with no parachute.

SUDO, SU & ROOT

One of the first things that will feel different to Ubuntu, which is a pretty fundamental change, is the fact that Fedora does rely on the root account for administrative tasks. As a result, you will be asked to assign a password to root as part of the installation process and only when you boot for the first time, will you be asked to create standard user accounts.

The default Ubuntu installation includes a disabled root account, encouraging the use of sudo for all things administrative. In other words, an administrator can do pretty much anything using her/his own password, both from the CLI and from the GUI. Some claim this is a security issue (perhaps you have read one of those endless discussions on su versus sudo?). On the opposite side of the spectrum, Fedora sports an active root account while disabling all kind of default sudo access.

What does this actually mean for an Ubuntu user landing on Fedora soil, you may ask? Well, impact varies depending on the interface in question. Command line users will notice quite a significant difference, being forced to impersonate themselves as root every time they need to complete an administrative task. The GUI impact is not as obvious, but might still get a bit confusing for users with an administrator profile, for they will be asked to enter their own or root's password depending on the task to be completed.

In terms of system administration, limiting administrative rights to the root account is obviously not as flexible as managing a sudoers list, but it is probably more secure and less prone to human error. Ultimately, both approaches have pros and cons, the most important thing is that both are available regardless of whether you are using Ubuntu or Fedora.

Let's see how it works with some real examples:

To become root, one needs to use the su command, as follows:

su root or su -

From that point on, the end user would be on a root bash session, sitting on root's home folder, etc. Of course, becoming root is not a good idea unless it is strictly happening for very specific administrative tasks. In other words, you should not become root for day to day tasks, even if that feels more convenient at times. There also is a way to use su for a single command:

su -c 'yum update'

Such command would still require root's password every time it is run, but would preserve the user session as it was. We will see what that specific command does shortly.

ADD/REMOVE SOFTWARE: SYSTEM UPGRADE

Alright, you have now installed Fedora and understand how to perform administrative tasks, next stop is to install your favorite applications and make yourself at home. Unfortunately, Ubuntu's Software Center or Synaptic are nowhere to be found, apt-get does not work and even after finding a way to install things, you can't find the applications you are after... What do you do?

First off, it is always a good idea to update your system to the latest, most up to date version. In order to do so, you have a number of options. On the GUI side of things, there is your typical Update Manager, labelled Software Update under Applications > System Tools. If you are the CLI kind, it's time to get to know yum. Ubuntu users will be familiar with apt-get or perhaps aptitude commands. Fedora users use yum instead, which I find better in some ways. To learn more about yum, type the following from a terminal:

yum --help | less

That's about as much as you will be able to do as a standard user. Updating your system will require admin rights, I usually do it like this:

su -c 'yum update'

See? We now understand what that command I mentioned earlier was meant to do.

ADD/REMOVE SOFTWARE: RPMFUSION

One of the steps that is going to satisfy standard users the most in the long run is the addition of RPMFusion repositories. Fedora users are lucky to have RPMFusion, which includes a huge catalog of software and lowers the need to add as many PPAs as Ubuntu users are sometimes forced to. On top of that, Fedora users enjoy very current software in general, as opposed to the Ubuntu policy of freezing applications for every six month release window.

From RPMFusion own Website:

"RPM Fusion provides software that the Fedora Project or Red Hat doesn't want to ship. That software is provided as precompiled RPMs for all current Fedora versions and Red Hat Enterprise Linux 5; you can use the RPM Fusion repositories with tools like yum and PackageKit."

To add RPMFusion to your system, follow the instructions HERE.

ADD/REMOVE SOFTWARE: GPK & YUM

With RPMFusion enabled, it is time to start modifying your system to your heart's content. There are two main ways to do this, from the GUI using PackageKit (labelled Add/Remove Software under Applications > System Tools) or from the command line using yum. The GUI way to do it is pretty straight forward, and while PackageKit is nowhere near as user friendly as Ubuntu Software Center (as shown below), it should be easy enough for any kind of user.


Click on image to enlarge.

As you may imagine, I personally tend to use yum instead. PackageKit is fine, but I tend to do things faster from the command line, specially when setting up my computer for the first time like we are doing here.

MAKE YOURSELF AT HOME

Time for installation frenzy! Behold the power of the command line as I install pretty much everything I need in one go:

su -c 'yum -y install gnome-tweak-tool gstreamer-plugins-bad gstreamer-plugins-bad-free-extras gstreamer-plugins-bad-nonfree gstreamer-plugins-ugly gstreamer-ffmpeg audacious audacious-plugins unrar java-1.6.0-openjdk java-1.6.0-openjdk-plugin gparted vlc gimp gimp-data-extras gimp-fourier-plugin gimp-lqr-plugin gimp-resynthesizer gimpfx-foundry yum-plugin-fastestmirror'

Wow, that's a long line! It may look scary, but it's all for a good cause. The applications that this command will install include:

  • Gnome Tweak Tool: An absolute must under GNOME Shell, it will get you close to the amount of customization you were allowed in GNOME 2.x.
  • Gstreamer plugins: All kinds of codecs that will allow you to play about any media format under the sun.
  • Audacious and plugins: A great light-weight audio player, very similar to Winamp.
  • Unrar: Can't handle .rar files without it, another must for me.
  • Java and the Java plugin: Once again, pretty essential.
  • Gparted: The awesome Gnome Partition Editor.
  • VLC: Top Video Player in my list.
  • GIMP and plugins: Priceless.
  • Fastest Mirror plugin for yum: Install faster!.

Obviously, there are several quite important bits and pieces that were not included. Here's how to get some of them:

NOTE: In order to configure some of the required repositories, the wget command is required, install it as follows: su -c 'yum -y install wget'

Flash Plugin

Start by installing the Adobe repositories.

rpm -ivh http://linuxdownload.adobe.com/adobe-release/adobe-release-i386-1.0-1.noarch.rpm

Now install the plugin as follows:

su -c 'yum -y install flash-plugin'

NOTE: You could always download and install the RPM from Adobe's site if Flash plugin is all you plan to install. Might as well be easier.

Chromium Browser

Start by adding the repository to your sources:

su -c 'wget http://repos.fedorapeople.org/repos/spot/chromium/fedora-chromium.repo -O /etc/yum.repos.d/chromium.repo'

Now proceed to install:

su -c 'yum -y install chromium'

Google Chrome

This one is a bit more involved, but still easy enough. First off, let's create a local yum repository file for Google. Become root and open a gedit session as follows:

gedit /etc/yum.repos.d/google.repo

Once gedit opens, enter the following code and save the file:

32 Bits Architecture:

[google]
name=Google - i386
baseurl=http://dl.google.com/linux/rpm/stable/i386
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

64 Bits Architecture:

[google64]
name=Google - x86_64
baseurl=http://dl.google.com/linux/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

Now install using the following command:

su -c 'yum -y install google-chrome-stable'

NOTE: According to my testing, the Google Chrome version on those repositories is pretty outdated. Probably best to download and install manually from Google.

Dropbox

Download the RPM from the application official SITE, installation is the same as in Ubuntu, but the notification icon appears in the intelli-hiding panel below in GNOME Shell.

Skype

Once again, the creation of a specific repository file is required, so open a gedit session as root as shown below:

gedit /etc/yum.repos.d/skype.repo

Now enter the following code and save the file:


[skype]
name=Skype Repository
baseurl=http://download.skype.com/linux/repos/fedora/updates/i586/
gpgcheck=0

Now install using the following command:

su -c 'yum -y install skype'

DVD Playback Support

Install the following two packages first:

su -c 'yum -y install libdvdread libdvdnav'

Now, download and install libdvdcss.

32 Bits Architecture:

su -c 'rpm -ivh http://rpm.livna.org/repo/15/i386/libdvdcss-1.2.10-1.i386.rpm'

64 Bits Architecture:

su -c 'rpm -ivh http://rpm.livna.org/repo/15/x86_64/libdvdcss-1.2.10-1.x86_64.rpm'

...There's more!

I think those few apps make for quite a good start, but in case you want more, you can find a very exhaustive list (albeit in Spanish) HERE. Thanks to the guys at FEDOREANDO for their awesome work through the last couple of years!

GNOME-SHELL TRICKS & CUSTOMIZATION

Ok, The jump from Ubuntu to Fedora can be a bit more difficult nowadays, as both are introducing new GUI interfaces. In my experience, appreciating Fedora 15 has a lot to do with getting comfortable with GNOME Shell. Let's see some things that will surely help in getting used to the latest and greatest from GNOME camp.

Tweak Tool

If you followed the previous section, you should already have Tweak Tool installed. This little application can cover lots of ground and make the transition from classic GNOME 2.x to GNOME Shell less traumatic.

As is the case with many GNOME 3 components and applications, there is a lot of development activity going on at the moment, probably getting things ready for the upcoming Fedora 15 final release. Tweak Tool is no exception, having gone through a few updates in the recent weeks. The latest version includes a five category menu:

  • File Manager: Turn on this feature if you want to be able to manage the desktop as you used to in classic GNOME (Icons are visible, active right-click, etc.)
  • Interface: Icon changes, theme changes... All good and fun.
  • Fonts: Self explanatory enough.
  • Shell: Clock, date and other settings... You can even bring the minimize button back!
  • Windows: Window themes, title bar actions, etc.

GNOME Shell Themes

As I mentioned in a recent article, DevianArt's half-left is putting together some very impressive themes, all of which are now compatible with GNOME Shell final. Installation instructions are available on each of them, which you can download from HERE.

GNOME Shell Extensions

A few pretty cool changes that bring back some of the classic GNOME 2.x functionality to the new Shell. Anything from good old Alt+Tab window switching to displaying the Power Off option in the menu by default is included here. You can see a list of the extensions available running this command:

yum search extension | grep gnome-shell

YES! yum offers a very cool search feature!

Install at your convenience, I personally recommend gnome-shell-extensions-alternative-status-menu.

HARDWARE SUPPORT & TROUBLESHOOTING

Fedora is not as sleek as Ubuntu when it comes to hardware support. Having both run on the same machine, Ubuntu automatically detected proprietary hardware (My HP2740p Broadcom Wireless card) and suggested the download of the necessary drivers. Fedora would simply show Wireless as not available. Unfortunately, this seems to be an ongoing problem that is impacting other users (see the following Fedora Forum THREAD for further info) and the solutions available don't seem to work reliably. I personally couldn't get wireless to work on that machine.

Similarly, I had problems with Bluetooth (apparently an ongoing bug since F14), which was apparently detected, but not properly working. Here's what I did to fix it (as root):

systemctl enable bluetooth.service

Now start it:

systemctl start bluetooth.service

(That's assuming your Bluetooth device was properly detected, of course)

I also had problems after installing Dropbox, which completely messed up my repositories and pretty much rendered yum useless. As root again, open the Dropbox repository file as follows:

gedit /etc/yum.repos.d/dropbox.repo

Now, edit the code in there, it should end up looking something like this (no repositories seem to be available for F14 nor F15):

[Dropbox]
name=Dropbox Repository
baseurl=http://linux.dropbox.com/fedora/13/
gpgkey=http://linux.dropbox.com/fedora/rpm-public-key.asc


A BIT ABOUT SELINUX

Given the length of this article, I will keep this one very brief. The idea is that SELinux may have an impact on your system performance. I haven't experienced that in Fedora 15, but did in F14 and specially in F13. If you are experiencing poor performance, you may want to check what the current SELinux status is by using the sestatus command:

[shred@Fedora15 ~]$ sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: permissive
Mode from config file: permissive
Policy version: 24
Policy from config file: targeted



Click on image to enlarge.

Aside from performance issues, SELinux could also be blocking some of the applications you use (I had issues with empathy, as shown above), so if you want to change it to permissive mode as I did, or simply disable SELinux altogether (not recommended), you can easily do it as follows:

gedit /etc/selinux/config

Then simply change the SELINUX value from enforcing to either permissive or disabled.

NOTE: The same can be achieved from the GUI, using system-config-selinux (part of policycoreutils-gui package).

FEDORA IS NO FOE

Previous versions of Fedora suffered a bit from a somewhat poor and not very polished GNOME implementation, which felt a bit archaic when compared to Ubuntu and its derivatives. As the leading GNOME 3 developing distro, Fedora now enjoys a bleeding edge implementation of the GNOME Shell, which, on top of all the great changes coming with Fedora 15, sets the stage for a very successful release.

After testing Ubuntu 11.04 and Fedora 15 intensively in the last few days, I have come to appreciate the latter more and more. While Ubuntu developers have done an incredible job getting Unity (somewhat) ready in just a few months, it still feels immature. In addition, probably as a result of all that frantic development for Unity, Natty Narwhal is one of the less stable Ubuntu releases I remember. Fedora 15, on the other hand, is surprisingly stable for a Beta release.

My choice (at least until Unity grows mature enough) is pretty clear by now after getting to grips with Fedora in the past few weeks. It's a no brainer, really, as I now enjoy the best possible GNOME Shell implementation... and can't say I miss a thing from Ubuntu!

NOTE: Just to clarify, I have kept and still actively use my Ubuntu 10.10 and derivatives installations, I am just talking here about the idea of upgrading or installing Ubuntu 11.04.

0 comments:

Post a Comment