How to install Fedora 13 on your laptop/desktop

After installing from the livecd you should follow these steps to customise Fedora into something more comfortable for everyday use.

For Civilians

First thing's first - add youself to the wheel group...

su -
usermod -a -G wheel yourusername

Uncomment the appropriate line from the /etc/sudoers file by deleting the single # (hash) character highlighted in the extract below, on or about line 78:

EDITOR=gedit visudo

## Allows people in group wheel to run all commands
# %wheel	ALL=(ALL)	ALL

## Same thing without a password
# %wheel	ALL=(ALL)	NOPASSWD: ALL

Now close the terminal window and open a new one.

Add the following three software repositories:

sudo rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
sudo rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
sudo rpm -Uvh http://linuxdownload.adobe.com/adobe-release/adobe-release-i386-1.0-1.noarch.rpm

At this point you should update the whole system:

sudo yum update

If you have just installed, this will take a while. Wait patiently...

Install the following packages to be able to play music and videos, also from the local network:

sudo yum install gstreamer-ffmpeg gstreamer-plugins-bad gstreamer-plugins-ugly gstreamer-plugins-rtsp rhythmbox-upnp

Optional, for weedy/old systems:

sudo yum install mplayer

To play DVDs you will need a decryption library from the Livna repository:

sudo rpm -Uvh http://rpm.livna.org/livna-release.rpm
sudo yum install libdvdcss

Install the flash plugin for 32bit systems:

sudo yum install flash-plugin

...or for 64bit systems, try this:

sudo yum install flash-plugin nspluginwrapper.x86_64 nspluginwrapper.i686 alsa-plugins-pulseaudio.i686 libcurl.i686

Enable chat on the local network by dissabling the firewall (don't panic):

sudo system-config-firewall-tui

...and then running Applications > Internet > Empathy IM Client. Create a new 'People Nearby' account. Enable it.

Enable media streaming over chat:

sudo yum install telepathy-sofiasip telepathy-stream-engine

If you're wondering which programs are listening to the network:

sudo netstat -lntup

The basics: reading and 'rithmatic:

sudo yum install openoffice.org-writer openoffice.org-calc

The 3 kinds of pictures:

sudo yum install gimp inkscape pitivi

Optional, for creating and annotating PDF files:

sudo yum install scribus xournal

Enable full-text search, unless this is an old/weedy machine:

sudo yum install tracker-search-tool

Read books?

sudo yum install calibre chmsee

Optional Packages

If you like, you can install Google's Chromium web browser:

sudo gedit /etc/yum.repos.d/chromium.repo
[fedora-chromium]
name=Chromium web browser and deps
baseurl=http://repos.fedorapeople.org/repos/spot/chromium/fedora-$releasever/$basearch/
enabled=1
gpgcheck=0
sudo yum install chromium

Recommended: AdBlock

If you like, you can install Skype:

sudo gedit /etc/yum.repos.d/skype.repo
[skype]
name=Skype Repository
baseurl=http://download.skype.com/linux/repos/fedora/updates/i586/
enabled=1
gpgkey=http://www.skype.com/products/skype/linux/rpm-public-key.asc
gpgcheck=0
sudo yum install skype

Running a 64bit system? Install the 32bit libraries for the 32bit-only (for Fedora) Skype:

sudo yum install qt.i686 qt-x11.i686 dbus-qt.i686 pulseaudio-libs.i686 alsa-plugins-pluseaudio.i686 libv4l.i686 libXv.i686 libXScrnSaver.i686
sudo yum install skype
ldconfig

(This probably still doesn't work. Pull your finger out, Skype...)

Scanning and printing

Scanning?

sudo yum install gnome-scan xsane

Printing with an HP printer?

sudo yum install hpijs hplip

Never going to connect a print to this machine or print over the network? Dissable the printer daemon to save memory and speed up the boot process:

sudo chkconfig --levels 2345 cups off

Unnecessary Services

Turn off the following unnecessary services to save memory and speed boot:

sudo chkconfig atd off
sudo chkconfig livesys off
sudo chkconfig livesys-late off
sudo chkconfig netfs off
sudo chkconfig portreserve off
sudo chkconfig sendmail off
sudo chkconfig smolt off

You can fine tune these settings with a graphical interface:

sudo yum install system-config-services

...or you can quickly check which services are running:

chkconfig --list | grep :on 

Superstition

Add the following commands to the /etc/rc.local file if this is a laptop or an old/weedy machine with not enough memory:

sudo gedit /etc/rc.local
sysctl -w vm.swappiness=10
sysctl -w vm.vfs_cache_pressure=50
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
echo 5 > /proc/sys/vm/laptop_mode

Modify the /etc/fstab file with the highlighted options:

sudo gedit /etc/fstab
???   /      ext4  defaults,noatime,commit=120  1 1
???   /boot  ext4  defaults,relatime            1 2
???   /home  ext4  defaults,relatime,commit=120 1 3

tmpfs /tmp   tmpfs defaults,relatime,size=512m,nr_inodes=200k,mode=01777  0 0

User Customization

The following steps customize the user experience for one login. This only needs to be done once for each user and does not need to be repeated if you have preserved or backed up the /home directory.

Install the following Firefox plugins:

Optionally:

Show icons in the menus and buttons, as they used to be. Run the following two commmands in a terminal (Applications -> System Tools -> Terminal):

gconftool-2 --type bool --set /desktop/gnome/interface/buttons_have_icons true
gconftool-2 --type bool --set /desktop/gnome/interface/menus_have_icons true

Fix compiz for small screens (netbooks):

gconftool-2 --type bool --set /apps/compiz/plugins/move/allscreens/options/constrain_y flase

Fix the Nautilus file browser to always show useful interface elements:

gconftool-2 --type bool --set /apps/nautilus/preferences/always_use_browser true
gconftool-2 --type bool --set /apps/nautilus/preferences/always_use_location_entry true

Double-click the window title to roll it up like a window shade:

gconftool-2 --type string --set /apps/metacity/general/action_double_click_titlebar toggle_shade

Decrease the spacing around various button and menu widgets so that small laptop screens can display large dialogue windows. Add the following to the ~/.gtkrc-2.0 file:

gedit ~/.gtkrc-2.0
gtk-icon-sizes = "panel=16,16 : panel-menu=16,16 : gtk-menu=16,16 : gtk-button=16,16 : gtk-small-toolbar=16,16 : gtk-large-toolbar=16,16 : gtk-dialog=32,32 : gtk-dnd=32,32"

Add the following to ~/.bashrc, remembering to change you@example.com to your own email address.

# Support high colors in the Gnome Terminal (not console)
if [ "x$COLORTERM" == "xgnome-terminal" ]; then
    export TERM="xterm-256color"
fi

HISTSIZE=9000                     # Lots of history.
HISTFILESIZE=9000                 # Lots of history in the file.
HISTCONTROL=ignoreboth            # Ignore entries with leading white space and dupes.
HISTIGNORE="ls:ll:cd:fg:j:jobs"   # Uninteresting commands to not record in history.
PROMPT_COMMAND='history -a'       # Write history after every command.
shopt -s histappend               # Append history to file, don't overwrite.
shopt -s histverify               # Show expanded history before running it.
shopt -s cmdhist                  # Store multiline cmds as single

shopt -s dirspell
shopt -s cdspell
shopt -s no_empty_cmd_completion

FIGNORE='.o:~:.pyc:.pyo'  # Suffixes to ignore for file completion.
GLOBIGNORE='.:..:.*'      # Ignore filenames which match the following globs when tabbing.

export EMAIL="you@example.com"

alias emacsclient='emacsclient --alternate-editor="" --create-frame'
export EDITOR=emacsclient

export GREP_OPTIONS="--color=tty -d recurse \
  --exclude=*.so --exclude=*.o --exclude=*.pyc --exclude=*.class \
  --exclude-dir=.svn --exclude-dir=.CVS --exclude-dir=.git --exclude-dir=.hg"

export LS_COLORS=di=36
alias ls="ls --color=auto"

alias ll='ls -lhrtB --hide=*.pyc --hide=*.orig'
alias l='ls -B --hide=*.pyc --hide=*.orig'

alias j=jobs

For Nerds

sudo yum install bash-completion man-pages words
sudo yum install emacs emacs-el emacs-gtypsit emacs-htmlize gnutls-utils w3m-el w3m-img
sudo yum install wget htop lynx nmap unrar system-config-services

Enable SSH? If this is going to be exposed on a public network then dissable password authentication by editing the following file and setting PasswordAuthentication to no.

sudo gedit /etc/ssh/sshd_config
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication no
sudo chkconfig sshd on
sudo service sshd start

Install compilers etc.

sudo yum groupinstall 'Development Tools'

For fetching source code:

sudo yum install mercurial git bzr

For debugging:

sudo yum install valgrind wireshark nmap

For Android development:

sudo yum install eclipse

For App Engine development:

sudo yum install pychecker pylint pydb

What doesn't link against these?

sudo yum install zlib-devel openssl-devel