Updated: May 22, 2013 by Maxwell Spangler
This is my personal guide for transforming a fresh install of Fedora 18 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:
# | Description | Type | Size |
---|---|---|---|
1 | Kernels and initrd images for booting | ext2 | 500 MB |
2 | All remaining space | LVM2 Physical Volume | All |
Description | Mount point/th> | Logical Volume Name/th> | Type | Size |
---|---|---|---|---|
System files only, 32 is normally plenty | / | lv_root | ext4 | 32 GB |
Log files and KVM virtual machines | /var | lv_var | ext4 | 4 - 128GB |
User files | /home | lv_home | ext4 | Remaining space |
Swap support | swap | lv_swap | swap | 1x - 2x memory |
Unallocated LVM space for snapshots | Unallocated | n/a | n/a | 5% |
Use the tables above to calculate filesystem sizes based on your actual system.
At this point you can either create all partitions manually or click the blue "Click here to create them automatically" feature. On legacy BIOS systems "create them automatically" creates /boot, / (root) and swap partitions that you can resize and modify. On EFI systems an additional /boot/efiboot partition is created. If you choose this method, skip to step 16.
I choose to manually follow steps 11-19 to make my own partitions.
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 removes these:
It installs these:
Critical Appplications
General Applications
Multimedia
Networking
Development
Utilities
Adminstration
Virtualization
Services
Application Dependencies
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 localinstall ~/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*
Update: Looks like Google Earth has some Fedora 18 issues so as of February 2013, I'm leaving this one off my systems for a bit.
# yum localinstall google-earth*
SELinux is a policy based security system included with Fedora and enabled by default in a restrictive mode called "Enforcing."
SELinux, by default, blocks many activities that have not been explicitly authorized first. This causes difficulty to even advanced users as they try to configure services only to have them blocked -- often quietly -- by SELinux. As a result, for years I have recommended reconfiguring SELinux to "permissive" mode which does not block anything.
After a talk by SELinux developer Dave Quigley I'm going to start operating with SELinux enabled in enforcing mode. While the recommendation still stands for most users to use permissive mode, I will be adding future content to these guides with SELinux configuration information.
To put SELinux into permissive mode, edit 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:
If your Gnome 3.6 based system only has one user you can log-in, but you can't log-out. I find this really stupid, so the work-around is to simply create a guest user and then the "Log Off" menu option is restored.
To create a guest user, go to System Settings -> User Accounts, then click on the "+" icon and make a guest user. If you don't set a password on it, no one can login. If you do set a password, you've got a guest account others can use.
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-7u15-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:
Java is regularly being updated to fix security issues, so please revisit this step on a regular basis to keep your Java updated.
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
Note that in Fedora 18, externally mounted drives are now at /run/media/(user)/(medianame) instead of /media/(medianame) so edit your old Samba files accordingly.
Music files shared from the host to others:
[music] comment = Music share path = /run/media/maxwell/music/ browseable = yes writeable = yes valid users = maxwell
This is a single folder in my home directory shared to VMs when I don't want to share my full home directory:
[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
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:
Use the Alacarte GNOME menu editor to change the "Files" alias to use the Nemo file manager instead of Nautilus.
Now, when you launch the file manager with "Files" the Nemo file manager will run. Several important features like Tree view were removed in Fedora 18 which makes Nemo a superior file manager to Nautilus. Nautilus remains available as "Nautilus"
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.
2013-02-18: Waiting for this to be updated to GNOME 3.6" 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.
Yes, other people just restore their entire home directory into the new home directory of this freshly installed system but I've traditionally let some programs create new configuration files and restored only what I need. This is an old hold-over from much less stable days with Linux.
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