Table of Contents

  1. Description
    1. Requirements
    2. Supported Platforms
  2. Obtaining ShellPAK
    1. Alternate Repositories
  3. Installation
    1. Other setup options
  4. Bugs
  5. Author
  6. Copyright


ShellPAK allows for the automatic installation and configuration of my personal GNU Bash shell environment as well as the configuration of the following programs:

This code is specific to my own needs and is here in the hopes it will be useful as a reference.


  • GNU Bash version 4.0 or greater
  • GNU Emacs 27.1 or greater
  • GNU Make
  • rsync

Supported Platforms

The following operating systems are supported:

  • CentOS
  • macOS (Mac OS X)
  • NetBSD
  • OpenBSD
  • Ubuntu
  • openSUSE
  • MS-Windows (experimental! (Emacs only))

Obtaining ShellPAK

As of <2014-07-30 Wed>, ShellPAK is managed by the Fossil distributed version control system. To check out a repository:

# Clone the repository
$ fossil clone ~/shellpak.fossil

# Check out the repository
$ mkdir shellpak
$ cd shellpak
$ fossil open ~/shellpak.fossil

Further information on Fossil can be found at this Quick Start Guide.

Alternate Repositories

ShellPAK is also available for checkout from the following locations:

Be aware that portions of the ShellPAK infrastructure relies on Fossil. Conversion to support the conventions of an alternative revision control system is an exercise left to the user.


# Install ShellPAK
$ ./

Note that during installation, ShellPAK will store dot-files (e.g., bashrc, bash_profile, etc) in ~/Backup/shell (or whatever is specified by the -b flag). These files will be restored during un-installation (via the -u flag)

Other setup options

# Perform a dry-run
$ ./ -r

# Install into another directory
$ ./ -d /path/to/directory

# Do not automatically link files during installation
$ ./ -n

# Set up go programming environment
$ ./ -g

# Set up Perl::LanguageServer
$ ./ -l

# Set up python development environment
$ ./ -p

# Set up python3 development environment

# Remove ShellPAK
$ ./ -u

# Remove ShellPAK & go environment
$ ./ -u -g

# Change backup directory
$ ./ -b /path/to/directory

# List runtime options
$ ./ -h

Previous versions of provided options for installation of Emacs packages. This is no longer required as Emacs will now automatically install necessary packages on startup.


Please report any bugs or feature requests by filing a ticket via the ShellPAK repository website.


Christopher M. Fuhrman


Copyright (c) 2000-2024 Christopher M. Fuhrman All rights reserved.

All files contained herein can be redistributed and/or modified under the terms of the Simplified BSD License (also known as the "2-Clause License" or "FreeBSD License".) unless otherwise noted.