v2.0, February 2013 by Maxwell Spangler
This is my personal guide for transforming a fresh install of Fedora 17 Linux into a customized workstation environment tailored specifically for my needs.
Using this script allows me to perform this tailoring process quickly and reliably while also reinforcing the methods used and components involved.
At this point, reboot the system and verify that everything comes up clean and works correctly.
Some basic notes on how I perform my installs:
# | Type | Size | Encrypted | Description |
---|---|---|---|---|
1 | ext2 | 500 MB | no | Kernels and initrd images for booting |
2 | LVM2 Physical Volume | All | yes | All remaining space |
Description | Mount Point/th> | File System Type | Logical Volume Name | Size |
---|---|---|---|---|
System files only, 32 is normally plenty | / | ext4 | lv_root | 32 GB |
Log files and KVM virtual machines | /var | ext4 | lv_var | 4 - 128GB |
User files | /home | ext4 | lv_home | Remaining space |
Swap support | swap | swap | lv_swap | 1x - 2x memory |
Unallocated LVM space for snapshots | Unallocated | n/a | n/a | 5% |
The following additions to /etc/bashrc configure a more comfortable command line environment for all users.
# Bash: use vi editing set -o vi # aliases from my Unix days alias l="ls -l" alias lf="ls -CF" # uncomment this after vim-enhanced is installed #alias vi="vim"
Append these lines when in a corporate environment requiring a proxy server. Some command line applications will observe these environment variables and use their proxy.
# proxy variables for command line programs. export http_proxy=proxy-server-id.company.com:8080 export https_proxy=$http_proxy export no_proxy=localhost,.subnet1,.subnet2,10.0.0.0/8 unset ftp_proxy
Of course, make sure you modify them to the proxy server and subnets of your own environment!
These settings configure the vim editor to be more comfortable for my tastes.
# set tab space at 4 characters set tabstop=4 # enable line numbering set number
For wired: Verify via Network Manager that a DHCP connection is established.
For wireless: Use Network Manager to select a wireless access point and provide WPA keys.
Both: Verify you can use Firefox to access any well known website.
Several steps are required to enable internet access when Fedora is used in an environment requiring proxy servers.
Within Firefox, set http and https proxies to the local proxy that serves your traffic. Specify any local domains which should not be handled by the proxy.
Manual proxy configuration: my-proxy-server.network Port: 8080 SSL Proxy: my-proxy-server.network Port: 8080 FTP Proxy: (blank) Port: 0 SOCKS host: (blank) Port: 0 No proxy for: localhost, 127.0.0.1, .mynetwork, .labnetwork
Navigate to the GNOME Network control panel applet and configure proxies for http and https traffic. Specify any local domains which should not be handled by the proxy.
Method: Manual HTTP Proxy: my-proxy-server.network Port: 8080 HTTPS Proxy: my-proxy-server.network Port: 8080 FTP Proxy: (blank) Port: 0 Socks host: (blank) Port: 0 No proxy for: localhost, 127.0.0.1, .mynetwork, .labnetwork
Insert the following line into the [main] section in /etc/yum.conf.
[main] proxy=https://proxy-server-id.company.com:8080/
A yum plugin called "yum-plugin-fastestmirror" selects the fastest Fedora repository mirror for your location and uses that mirror for all future updates. Download it now so all future work with yum is as quick as possible.
# yum -y install yum-plugin-fastestmirror
Rpmfusion.org provides repositories for packages not included in the Fedora distribution including packages with non-free components. Enable rpmfusion support now so packages can be installed from it later.
Enable the free and non-free repositories on rpmfusion.org
Click here to enable the free repository on rpmfusion.org
Click here to enable the non-free repository on rpmfusion.org
The packages installed using the installation media may have been replaced by updated versions with bug fixes or security enhancements. Run yum update now to update all packages.
# yum -y update
After installing the base OS from the LiveCD, LiveDVD or other media source, I add additional packages and remove a few of the unwanted base packages. I've written a script called fedora-desktop-packages to automate this for me.
fedora-desktop-packages contains a set of pre-defined packages to be installed or removed to a Linux system. When it runs, it examines what is already installed and takes action to install what is missing.
Right click on fedora-desktop-packages, save it locally then make it executable in order to run it:
$ chmod u+x fedora-desktop-packages
It installs these:
These commercial applications are provided directly from their vendors and require special steps to download and install.
VirtualBox has been my primary hypervisor for running Windows virtual machines.
Install VirtualBox using yum:
# yum -y install ~/Downloads/VirtualBox
To complete the installation, run the VirtualBox application and install the license pack in File->Preferences->Extensions
I've used repositories for VirtualBox in the past, but recently found problems with their packages being tied to specific kernels. Periodic downloads from virtualbox.org is a simple way around this.
Install the official Adobe Acrobat Reader program to overcome small incompatabilities observed with the open source PDF readers.
# rpm -ivh https://linuxdownload.adobe.com/adobe-release/adobe-release-i386-1.0-1.noarch.rpm # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux
# yum -y install AdobeReader_enu
Install the Adobe x86_64 repo to enable easy access to flash player updates.
# rpm -ivh https://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 -y install flash-plugin
# wget https://dl-ssl.google.com/linux/linux_signing_key.pub
# rpm --import linux_signing_key.pub
# yum localinstall google-chrome-stable*
# yum localinstall google-earth*
These configuration changes can be made while the previous 'yum update' activity or 'packages' script activites are in progress.
The following activities can be performed interactively while other programs are being installed.
Run the System Settings program to make these changes:
Run the Advanced System Settings (Gnome Tweak Tool) program to make these changes:
The SELinux security system is included and enabled in "enforcing" mode by default in Fedora Linux. SELinux greatly restricts the operation of many programs unless the root user has explicitly configured them to be allowed. This is an excellent system for high security environments but is often a frustrating obstacle on personal workstations which do not require top security.
SELinux can be put into "permissive" mode which allows it to remain installed and enabled but causes it to warn the user in situations where it would normally restrict access. This is a simple change to make and allows users to learn more about SELinux while operating the system.
To put SELinux into permissive mode, etc the file /etc/selinux/config and replace "enforcing" with "permissive":
SELINUX=permissive
SELinux will be in permissive mode when the system is rebooted.
Leave the firewall enabled if you can and open ports as needed.
Run the Firewall (GUI application) to make these changes:
The following commercial fonts are installed by copying several individual font directories into /usr/share/fonts. Note: I don't make these fonts available, Sorry.
[maxwell@elite ~]$ ls /usr/share/fonts abattis-cantarell default msttcore wine-ms-sans-serif-fonts AdobeGaramond dejavu opensymbol wine-small-fonts AdobeMinion hp stix wine-symbol-fonts AdobeMisc liberation vlgothic wine-system-fonts AdobeMyriadPro Lucida wine-courier-fonts AppleGaramond MicroFontPack wine-marlett-fonts
Having standard Windows fonts helps websites designed for Windows look accurate and helps with importing Microsoft Office documents.
Download this archive and place the contents in /usr/share/fonts
Please do not link directly to this file!
Set the minimum font size in firefox to between 14 and 16 points to make it easier to view small text on high resolution displays (especially laptops.)
Run Firefox. Go to Edit -> Preferences -> Content -> Fonts & Colors -> Advanced and configure what works best for you.
OpenJDK works very well as a replacement for Oracle Java but there are some instances where problems can be seen. My attempts to run 3 or more HP iLO3 remote consoles simultaneously exhibit problems with OpenJDK but not with Oracle's JRE, so I use install Oracle and use that.
Navigate to the following link with Firefox and download the 64-bit JRE rpm file of the most recent version of Java.
Choose to have it open with the software installer and install it, or as root, use the rpm command to install the downloaded rpm file. Adjust this command for the filename you've downloaded.
# rpm -ivh jre-7u11-linux-x64.rpm
Next, use the alternatives command to tell Fedora to use Oracle Java instead of OpenJDK:
# /usr/sbin/alternatives --install /usr/bin/java java /usr/java/default/bin/java 20000
Then, install the Java plugin for Firefox:
# /usr/sbin/alternatives --install /usr/lib64/mozilla/plugins/libjavaplugin.so \ libjavaplugin.so.x86_64 /usr/java/default/lib/amd64/libnpjp2.so 20000
Restart Firefox and go to this page to verify Java is installed and working in your browser:
This client allows me to share my desktop at work.
Install the following Firefox plug-ins for a better firefox experience:
I install a Conserver client that can access a conserver server. The conserver system uses a central server to monitor production systems serial port output and brokers access from simultaneous clients. I only need the client on my Fedora systems. This was downloaded earlier and needs
Create a /etc/conserver/console.conf with the following information:
default config for console config * { master my-conserver.company.com; port 3109; }
Pidgin provides me with a single chat client to all the accounts I use at home and work:
Run Pidgin, then use Accounts -> Manage Accounts to set these up individually through Pidgin's user interface.
OR, copy a previously created $HOME/.purple directory into the new home directory and see if Pidgin uses the old settings.
OpenVPN is used to access a variety of secure networks in my life. Configuration is simple:
Samba provides network file sharing services to Windows clients. A Samba server running on a host enables Windows virtual machines to access the host's files.
First, set a samba password for your user:
$ smbpasswd -a New SMB password: ******** Retype new SMB password: *******
Next, edit /etc/samba/smb.conf and make the following changes:
[global] workgroup = MY-SERVER-NAME-GROUP server string = My Fedora Samba Server interfaces = lo eth0 192.168.122.0/24 192.168.56.0/24 security = user
Remove eth0 from above if you wish to ONLY share files with the virtual machines on your host and not with other computers on your network.
[homes] comment = Home Directories browseable = no writeable = yes
[music] comment = Music share path = /media/music/ browseable = yes writeable = yes valid users = maxwell
[vmxfer] comment = Virtual Machine Transfer folder path = /home/maxwell/vmxfer browseable = yes writeable = yes valid users = maxwell
As root, use systemctl to configure the system to start samba upon boot and issue two commands to start the services immediately for use.
# Configure the services to start # systemctl enable smb # systemctl enable nmb # Start the services # systemctl start smb # systemctl start nmb
Gnome Shell Extensions are powerful bits of code that change and enhance the Gnome Shell environment to suit your specific needs.
The right set of extensions turns a frustrating default Gnome Shell graphical environment into a highly tailored, powerful, graphical environment that is a true pleasure to use.
All extensions can be easily enabled and disabled via their links on the Gnome Extensions web pages. Visit the links below to learn more, enable and explore, and disable the extensions you don't want.
View the Gnome Shell Extensions your system currently has installed.(Required): This extension modifies the Dash's default behavior for launching applications so that a new instance of the application will be launched even if you're already running it at least once. The default behavior is to take you to the first instance you started. For those of us power users that want 20 gnome-terminals and three web browsers open at the same time, this is a crucial extension.
Enable Dash and Overview Click Fix(Desired): Gnome3 hides all the clutter that used to be on your computer desktop: folders, hard drives, removeable devices, trash can, network icon, computer icon. This extension provides a simple, clean drop down menu with all those resources for quick and easy access. Less clutter, same capabilities.
Enable All-in-one Places(Cleanup): This extension simply removes the bluetooth icon which is a distraction if you're not a bluetooth user.
Enable Bluetooth Icon Remover(Cleanup): This extension simply removes the Accessability Icon which is a distraction if you're not a user of these features.
Enable Remove Accesability Icon(Desired): Recent items provides a drop down menu of recently used files so you can quickly get right back to them.
Enable Recent Items.(Desired): This provides a drop down menu that lets you control several Linux media players without having to leave your busy workspace.
Enable Advanced Volume Mixer(Desired): This replaces the basic volume control with one that has more features including the ability to change audio output from monitor speakers to headphones. This is a favorite of mine and shows how you can get things done quickly with extensions instead of having to launch control panel and navigate settings.
Enable Advanced Volume Mixer(Desired): Music Integration provides subtle notifications of tracks playing from several Linux audio players.
Enable Music Integration.(Optional): Monitor status provides a drop down menu for changing monitor layout from portrait to landscape. You might like this if you have a tilt-able monitor and occasionally switch from one mode to another.
Enable Monitor Status(Optional): I install this extensions on laptops prone to over heating so I can keep an eye on how hot the chips are getting. Skipped on desktops.
Enable CPU Temperator Indicator(Optional): I use CPU Frequency to monitor my CPU's speed to ensure that my laptop's running slow when I'm not doing anything and trying its best when I think it's being slow.
Enable CPU Frequency(Optional): Workspace Indicator shows the workspace your desktop is focused on as a numbered icon on the top right panel. I've been a heavy user of workspaces for years and I'm used to having a simple way to tell which workspace my desktop is currently focused on.
Enable Workspace IndicatorNow that my system is pretty much where I want it to be, I'll start copying over my /home files from backup systems.
Here's a rough idea of what I do. This isn't documented as well as I like because the process changes from version to version and I mostly restore files as-needed when I find I need them.
Included in the restore above should have been a .tgz file containing configuration data and emails from a previous Evolution Mail application backup.
To restore these, simply launch Evolution and go to File -> Restore Evolution Data