Thursday 29 September 2011

CentOS 6.0 Review

CentOS
Image via Wikipedia
As you all know, I had installed CentOS 6 inside VirtualBox. I was initially thinking about installing it natively on my system, but then, the thought of reinstalling the OS & configuring the settings again came to my mind and I decided to go virtual. So, here's the hardware on which I installed CentOS 6 (32-bit) :-
  • 2 virtual cores
  • 1024 MB RAM
  • 64 MB of VRAM
  • 10 GB VBOX HDD
  • Bridged network connection (so that I can manage it as a network computer)
Installation :-

I made an ISO of the DVD which I got from Linux for You. Although I had also downloaded a 64-bit image earlier, but I felt that 32-bit should suffice for the needs of the virtual machine. The installer greets you with the ultra-stable and famous Anaconda Installer from Red Hat & Fedora stables. This installer, as you know is very versatile. It asks you to check the install media. It is a good idea to do so. Once, the check is finished, it moves on to the patition management. Now, here it will provide you with a lot of options like RAID, LVM etc. If you want to setup a LVM (which I think you should if you're doing a native one-OS-per-system install), then it will guide you through the entire process. RAID is essential for the system admins & servers. But, if you don't want any of these options, then select 'Basic Storage Devices'  and move on. Now, here you can carry out standard Linux partition management.

Once, you've finished the partition & root-password, then it will ask you which packages to install. If you've a fast internet connection then you can download & install the packages later, if you haven't got your hands on high bandwidth then click on 'Customize now'  and start selecting your packages. These are the packages that I selected :-
  • GNOME 2.32
  • OpenOffice.Org (it doesn't ships LIbreOffice for now)
  • Firefox
  • Thunderbird
  • Development libraries
  • Development tools
It will automatically choose which packages you need for your hardware. Just hit install now & relax. It should install in 20-30 minutes.



The Desktop :-

The desktop of CentOS 6 depends on which desktop environment you selected. I'm a huge fan of GNOME desktop environment so I selected this. Here's the screenshot of my desktop environment :-



Package management :-

The package management is taken care by YUM. It is the default package manager of Red Hat, Fedora, CentOS & Scientific Linux now. Yum is very, very powerful tool. It can perform almost any task that you can think from a package manager. Some of it's commands are listed below :-
  • yum install package (to install package)
  • yum remove package (to remove package)
  • yum search package (to search)
  • yum update
  • package-cleanup --old-kernels (to remove old kernels)
Tip :-

Run yum install yum-presto after running your system for the first time in the terminal. It will install DeltaRPMs & Presto package that will reduce the update size by almost 90%. It is a very useful and handy tool for everybody. Conserve bandwidth people.

Additional repos for yum - You can try out some extra repositories for CentOS from here :- http://wiki.centos.org/AdditionalResources/Repositories/RPMForge

Verdict :-

CentOS 6.0 is highly recommended to anybody who is serious about the stability & security of his workstation. Although it is also good for home users, but I think that one should first have some experience with LInux before using CentOS. My rating :- 4.5/5.
Enhanced by Zemanta

One file to rule them all.

Last week I gave a try to CentOS 6.0. I installed it inside VirtualBox in Windows 7. I was simply amazed by its stability and very low memory usage. I think that ultra-stable & tested packages use much, much less memory as compared to the bleeding edge packages. So, the next task was to share the folders between CentOS & Windows. I knew I had to install SAMBA package for this. I installed the SAMBA packages but turns out, setting up SAMBA on CentOS is quite tough. The first and foremost headache about CentOS is the dreaded SELinux. This may be very, very useful to the enterprises etc. But I don't see a single reason why it should be kept on it's default (on) settings for the home user. Whenever I tried to do something regarding networking & other stuff, the dreaded SELinux would take over and wouldn't let me do so. So, I had to disable it.

#
# /etc/rc.conf - Main Configuration for Arch Linux
#

# -----------------------------------------------------------------------
# LOCALIZATION
# -----------------------------------------------------------------------
#
# LOCALE: available languages can be listed with the 'locale -a' command
# DAEMON_LOCALE: If set to 'yes', use $LOCALE as the locale during daemon
# startup and during the boot process. If set to 'no', the C locale is used.
# HARDWARECLOCK: set to "UTC" or "localtime", any other value will result
#   in the hardware clock being left untouched (useful for virtualization)
#   Note: Using "localtime" is discouraged.
# TIMEZONE: timezones are found in /usr/share/zoneinfo
# KEYMAP: keymaps are found in /usr/share/kbd/keymaps
# CONSOLEFONT: found in /usr/share/kbd/consolefonts (only needed for non-US)
# CONSOLEMAP: found in /usr/share/kbd/consoletrans
# USECOLOR: use ANSI color sequences in startup messages
# VERBOSE: Verbose level (from 1 to 8). man 3 syslog for level info
#
LOCALE="en_US.UTF-8"
DAEMON_LOCALE="no"
HARDWARECLOCK="localtime"
TIMEZONE="Asia/Kolkata"
KEYMAP="us"
CONSOLEFONT=
CONSOLEMAP=
USECOLOR="yes"
VERBOSE="3"

# -----------------------------------------------------------------------
# HARDWARE
# -----------------------------------------------------------------------
#
# MODULES: Modules to load at boot-up. Blacklisting is no longer supported.
#   Replace every !module by an entry as on the following line in a file in
#   /etc/modprobe.d:
#     blacklist module
#   See "man modprobe.conf" for details.
#

#MODULES=(vboxdrv vboxnetflt)
MODULES=(powernow-k8 cpufreq_ondemand cpufreq_powersave vboxdrv vboxnetflt )
# Udev settle timeout (default to 30)
UDEV_TIMEOUT=30

# Scan for FakeRAID (dmraid) Volumes at startup
USEDMRAID="no"

# Scan for BTRFS volumes at startup
USEBTRFS="no"

# Scan for LVM volume groups at startup, required if you use LVM
USELVM="no"

# -----------------------------------------------------------------------
# NETWORKING
# -----------------------------------------------------------------------
#
# HOSTNAME: Hostname of machine. Should also be put in /etc/hosts
#
HOSTNAME="AX-64"

# Use 'ip addr' or 'ls /sys/class/net/' to see all available interfaces.
#
# Wired network setup
#   - interface: name of device (required)
#   - address: IP address (leave blank for DHCP)
#   - netmask: subnet mask (ignored for DHCP)
#   - gateway: default route (ignored for DHCP)
#
# Static IP example
# interface=eth0
# address=192.168.0.2
# netmask=255.255.255.0
# gateway=192.168.0.1
#
# DHCP example
# interface=eth0
# address=
# netmask=
# gateway=

interface=eth0
address=192.168.1.2
netmask=255.255.255.0
gateway=192.168.1.1

# Setting this to "yes" will skip network shutdown.
# This is required if your root device is on NFS.
NETWORK_PERSIST="no"

# Enable these netcfg profiles at boot-up. These are useful if you happen to
# need more advanced network features than the simple network service
# supports, such as multiple network configurations (ie, laptop users)
#   - set to 'menu' to present a menu during boot-up (dialog package required)
#   - prefix an entry with a ! to disable it
#
# Network profiles are found in /etc/network.d
#
# This requires the netcfg package
#
#NETWORKS=(main)

# -----------------------------------------------------------------------
# DAEMONS
# -----------------------------------------------------------------------
#
# Daemons to start at boot-up (in this order)
#   - prefix a daemon with a ! to disable it
#   - prefix a daemon with a @ to start it up in the background
#
# If something other takes care of your hardware clock (ntpd, dual-boot...)
# you should disable 'hwclock' here.
#
DAEMONS=(hwclock @acpid syslog-ng network netfs dkms_autoinstaller sshd @crond @alsa dbus hal gdm @cups @cpufreq @cpu)


Secondly, I've been using Arch Linux for a while now. I like it so much that it is my default operating system now. Windows 7 is for games & FreeBSD is for learning BSD. The cool thing about Arch Linux (besides the KISS principle) is /etc/rc.conf file. This is THE file which you can use to manage your system. Here's the output of my rc.conf file.

As you guys can see, I can manage what ever I want to manage of my system. Be it networking, hostname, kernel modules, daemons etc. Whereas in System V based I had to edit various files regarding what I was configuring. This is where CentOS gets frustrating. That's why rc.conf is often regarding as One file to rule them all.