Sunday, January 12, 2014

Fedora 20 Developer Workstation Configuration

My hard drive crashed and I decided to switch back to fedora after using other distributions for the past few years. I'm going to document the packages I install and the customization and configurations I made to create my workstation. I primarily use my workstation for software development but also use it to listen to music, watch videos, etc. so much of what I do may be applicable to other types of users as well.

My Instructions assume 64-bit fedora 20.

Disable SELinux

SELinux always seems to cause one problem or another and so I usually just disable it. Edit /etc/selinux/config and change the line:

SELINUX=enforcing

to

SELINUX=disabled

Install Miscellaneous Utilities

gnome-tweak-tool is used to make some modification to the gnome desktop. Install it with the following command:

yum install gnome-tweak-tool

Unison is a tool I like for synchronizing files between different workstations. I use it as a simple backup tool and to keep documentation and downloads synchronized between my workstations. Install it with the following command:

yum install unison

Some other goodies:

yum install git nmap wget

Install Chrome

To install chrome (stable and 64-bit version), we need to add a repository by creating the file:

/etc/yum.repos.d/google-chrome.repo

with the following contents:

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

Install the stable version of chrome with the following command:

yum install google-chrome-stable

Add RPM Fusion and Livna Repositories

Fedora is very strict about only offering open source software. Some useful software that is not open source is still available to be installed and much of it is available in the RPM Fusing and Livan repositories. We will add these two repositories with the following commands:

yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-20.noarch.rpm

yum localinstall --nogpgcheck http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-20.noarch.rpm

rpm -ivh http://rpm.livna.org/livna-release.rpm

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-livna

Install Multimedia Applications and Codecs

Install codecs for listening to music and watching videos with the following command:

yum install gstreamer gstreamer-plugins-good gstreamer-plugins-bad gstreamer-plugins-ugly gstreamer-plugins-bad-nonfree ffmpeg ffmpeg-libs gstreamer-ffmpeg libdvdread libdvdnav lsdvd libdvdcss vlc audacity

Install Flash

In case you want/need flash, install with the following commands:

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

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux

yum install flash-plugin

Install Graphics Applications

Install various graphics applications for working with images with the following command:

yum install gimp gimp-data-extras gimpfx-foundry gimp-lqr-plugin gimp-resynthesizer gnome-xcf-thumbnailer ImageMagick nautilus-image-converter inkscape dia

Install PostgreSQL

Install PostgreSQL with the following command:

yum install postgresql-server postgresql postgresql-contrib postgresql-jdbc pgadmin3

Initialize the PostgreSQL database with the following command:

/bin/postgresql-setup initdb

Now we want to start the service and then enable it to start on reboot with the following commands:

systemctl start postgresql.service
systemctl enable postgresql.service

We can verify that PostgreSQL is started by su'ing to the postgres user and connet to the PostgreSQL database with the following command:

psql

Since we're logged in, we should set a password for the postgres user with the following command at the postgres# prompt:

alter user postgres with passpord 'new_password';

Now we can exit out with the \q command.

We want to configure PostgreSQL so that applications and users can connect to the database on localhost. To do this, we need to modify the file:

/var/lib/pgsql/data/pg_hba.conf

and change the line:

host    all             all             127.0.0.1/32            ident

to:

host    all             all             127.0.0.1/32            md5

After this change, we need to restart PostgreSQL with the following command:

sysemctl restart postgresql.service

We can now connect to the PostgreSQL database with the following command:

psql -U some_user -h localhost some_database

Install OpenLDAP

I actually gave up on this and will go back to using the OpenDS server for now even though this project seems to have gone away when Oracle bought Sun Microsystems. ApacheDS looked like an interesting option until I saw that is wants to pull in 180 dependencies.

Install the OpenLDAP server with the following command:

yum install openldap openldap-clients openldap-servers

Now we want to start the service and then enable it to start on reboot with the following commands:

systemctl start slapd.service
systemctl enable slapd.service

Install Apache

Install the Apache web server with the following command:

yum install httpd httpd-devel httpd-manual mod_ssl

Now we want to start the service and then enable it to start on reboot with the following commands:

systemctl start httpd.service
systemctl enable httpd.service

Configuration varies quite a bit depending on usage and is left as an exercise for the reader...

Install Tomcat

Install the Apache Tomcat application server with the following command:

yum install tomcat tomcat-admin-webapps tomcat-docs-webapp tomcat-javadoc tomcat-webapps tomcat-native

Now we want to start the service and then enable it to start on reboot with the following commands:

systemctl start tomcat.service
systemctl enable tomcat.service

Configuration varies quite a bit depending on usage and is left as an exercise for the reader...

Install VirtualBox

VirtualBox: when you want to try out other distro's or just have to run something in Windows.

yum install VirtualBox