OPERATING SYSTEMS
CentOS is the primary operating system I use on my system at work. It is an open source build of Red Hat Enterprise Linux sources, so it provides complete compatibility with RHEL apps and tools. I run additional operating systems within VirtualBox sessions for working with and testing legacy software:
CentOS for current development
Fedora 12-14 for previous development
Fedora Core 3 and Red Hat Linux 7.3 for some (old) legacy code
Windows XP for office tools (word processing, email, spreadsheets, etc.)
Fedora Linux was the primary operating system that I used on my system at work.
Ubuntu Linux is my personal preference for Linux, for a number of reasons:
The user interface seems to be the most complete and 'user friendly' of the versions of Linux I have tried
You have the choice of staying current with the latest releases, or remaining stable for longer periods of time by staying with LTS (Long Term Support) releases.
Unfortunately, the /boot partition can fill up pretty quickly from O/S updates; this can result in in-place upgrades being denied because of lack of space. Following the directions on how to free up space by deleting unused older Linux kernels from Mark McBride can fix the problem
Kali Linux is a special version of Linux that has been modified for network penetration testing
The LiveCD List
OPERATING SYSTEMS - REPOSITORIES
Red Hat / Fedora / CentOS / Scientific Linux
If you have flagged a repository for exclusion from default 'yum' updates but want to use it for a one-time use, you can use the following command:
# yum --enablerepo=[repo1[,repo2[, ... repoN]]] update
city-fan.org yum repositories contain number of Red Hat and Fedora packages that are more current than the officially released versions. This page also contains instructions for how to add city-fan.org to the repositories that the 'yum' command will search for updates
CentOS
Available Repositories for CentOS is a web page that containis a number of links to additional official, semi-official and unofficial repositories for CentOS packages
OPERATING SYSTEMS - FIREWALLS
IPcop is an open source firewall that I had used in the past on an old system at home. It included an easy-to-use (relatively, anyway) web-based admin interface for configuring, maintaining and updating the firewall.
Sphirewall is a Debian-based firewall that also provides some network management tools. (I found out about this one in a TechRepublic review.)
SOFTWARE DEVELOPMENT TOOLS
Meld is a GUI 'diff' tool for comparing and merging two versions of a file. (Can be installed using 'yum install meld'.)
Cervisia (installable through 'add software', search for 'cervisia') is a GUI front end to CVS, a version control system for software development.
Cervisia requires the installation of the KDE Help Center (khelpcenter) in order to use the Cervisia handbook (under 'Help'). To do so, you can run (from the command line) 'yum install kdebase'.
While not strictly a development tool, the document "GNU Coding Standards" describes recommended practices for developing software. Included in the document is a description of how to create a 'configure' script using 'autoconf' and 'automake' to build the software.
SOFTWARE DOCUMENTATION TOOLS
Aspell is a command line spell checking tool that can be used to check spelling in LaTeX files. The following two commands need to be executed to install a usable version of aspell:
yum install aspell
yum install aspell-en
Doxygen is an open source tool that allows you to insert comments directly into source code that can then be used to generate HTML pages, LaTeX documents, PDF documents, and even Microsoft help files (.CHM):
yum install doxygen
LaTeX is a document generation application utilized by Doxygen to generate LaTeX and PDF documents. 'tex' is the equivalent, compatible tool for Linux. To install tex (if it is not already installed by default):
yum install texlive texlive-latex texlive-dvips
SERIAL PORT TOOLS: Yes, there are still products that make use of RS232 serial interfaces. As a result, I had a need for an application that provides similar functionality to (Microsoft Windows) HyperTerminal. I found several, all of which I could install from the Fedora 12 command prompt using the command 'yum install <app-name>':
SECURITY RELATED SOFTWARE
IPsec
Openswan works with the 2.0, 2.2, 2.4 and 2.6 versions of the Linux kernel with support for x86, ARM and MIPS processors; it was forked from the now-defunct FreeS/WAN project
StrongSwan works with both the 2.4 (KLIPS IPsec) and 2.6 (NETKEY IPsec) versions of the Linux kernel
IPsec-Tools is a port of the IPsec utilities for Linux 2.6 that were part of the now-defunct KAME project
OTHER SOFTWARE
alacarte is an app that provides the ability to modify the application menus:
yum install alacarte
Adobe Reader is no longer supported on current versions of Linux, but there are ways around that:
For Ubuntu Linux, there are instructions for loading an older version of Adobe Reader (9.5.5) on Ubuntu 14.04 LTS. These instructions show how to download and install the Adobe Reader 9.5.5 Debian package in Ubuntu.
antiwordxp.rb is a Ruby script that can be used to search for text in Microsoft Word .DOC and .DOCX files from the command line. The following is the process for installing the script:
Install Ruby: yum install ruby
Install Ruby gems addon: yum install rubygems
Install Ruby zip filesystem module: gem install rubyzip
Flag it as executable and move it into your path
cups-pdf can provide a Linux system with the ability to print any document to a PDF file. I did find a few different sites that suggested how to install, but the following is what worked for me:
Run the following command (as root) to install the package:
yum install cups-pdf
Edit /etc/cups/cups-pdf.conf:
To specify a different output location other than the desktop, change "Out ${DESKTOP}" to "Out <your_directory_name>".
To make sure that output filenames are are unique, change "Label 0" to "Label 1".
To force using command line parameters for naming the file, change "TitlePref 0" to "TitlePref 1".
Restart the cups service: /etc/init.d/cups restart
Docker is a Virtual Machine (VM) technology that can be used to isolate application packages from a host system without requiring the relatively massive overhead of a complete VM environment like VirtualBox. Instead, Docker utilizes the resources of the host system.
Docker online tutorial, where you can try out Docker hands-on with a simulator
Blog posting on how to create a Docker system package with GUI access
NX is a service from NoMachine that runs on a Linux system and allows an NX client for Linux, Mac or Windows or Linux to use the system remotely. (I read about this in a TechRepublic article.) While you can do this with X, NX has been optimized to minimize network traffic and therefore improve responsiveness and performance.
Wine (Wine Is Not an Emulator) is an open source application that allows (some) Windows programs to run on a Linux system. There are some tweaks that I've learned while using it:
Wine sets up symbolic links for standard Windows devices in ~/.wine/dosdevices. My experience was that it did not add a symbolic link for my USB serial port, so I manually added one (ln -s /dev/ttyUSB0 com1).